|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Экспорт в DXF из своего ПО
Регистрация: 18.09.2012
Сообщений: 23
|
||
Просмотров: 13553
|
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Посмотри здесь:
http://www.codeproject.com/Articles/...D-Format-Files |
|||
![]() |
|
||||
Цитата:
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Цитата:
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Нет
Цитата:
Код:
|
|||
![]() |
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Почему, они являются полными)) Всё расписано по отдельности, но когда начинаешь всё это увязывать вместе - общая структура файла не очень понятна, что на что ссылается не ясно. А в документации по этому поводу сухие строки, например:
Цитата:
|
|||
![]() |
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Всё что мне попадалось в свободном доступе находится на уровне
Цитата:
dxf хоть и называется "обменным", но его структура повторяет внутренние "автокадовские" структуры данных, что очень плохо для "универсального" стандарта Последний раз редактировалось zamtmn, 16.08.2013 в 20:35. |
|||
![]() |
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Цитата:
А вот у автокадаhwd, любое стороннее ПО не имеет особого смысла рассматривать. Подходы сильно отличаются - кроме ACAD'а никому нет дела до его указателей. Видимо, это просто бессмысленная коммерческая уловка. К тому же наши файлы должны читаться автокадом на стороне заказчика. P.S. trir, вот и попробуй скорми это CAD'у ![]() Олег (jr.), тема - экспорт. Чтение интересует крайне мало - с ним проблем не бывало пока. Плюс, умеющий писать - читать сумеет ![]() -------------------------- На текущий момент был взят более-менее кастрированный вариант от стороннего ПО, которое хорошо дружит с acad'ом. Читаемость acad'ом стала 100%. Но итого пара тысяч лишних строк в файле. (раз в 10 меньше, чем "пустой" dxf от самого acad'а) Может, кто-то может предложить ещё более "чистые" (короткие) варианты? Как альтернатива, есть ли ещё более удобные способы передачи данных из/в CAD, кроме dxf? (сам CAD на рабочей машине отсутствует, работа сугубо по подгрузке нужных данных, собственной обработке и выгрузке в читаемый формат) Последний раз редактировалось Аркос, 16.08.2013 в 21:39. Причина: дополнение |
|||
![]() |
|
||||
Вспомнился один мой старый фокус, который проделывал ещё в 9-14 автокадах... А текстовые данные для передачи должны быть обязательно в формате DXF? Приложения из которых\в которые производится экспорт\импорт, оба умеют выполнять код, написанный на AutoLISP?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Нет. Просто первый пришедший в голову и на практике опробованный способ.
Как-никак довольно открытый формат с хорошей документацией на чтение. Цитата:
Если есть предложения, как можно обучить autolisp'у - с удовольствием почитаю. |
|||
![]() |
|
||||
Жаль. Во времена DOS'овских версий AutoCAD, когда файлы передавались дискетами и каждый байт был на счету, я сжимал чертежи, программно генерируя исходный LISP код, воссоздающий содержимое этих чертежей. Поскольку исходный код имел текстовый формат, то такой файл сжимался весьма сильно (в отличие от DWG файла), как минимим на порядок. На сжатый файл ставил пароль, если требовалось. Т.о. там, где у других на дискету едва помещался один файл, у меня помещалось 4-5 файлов. В то время это была охренительная экономия. Причём сам LISP код, генерировавший мой LISP файл, был прост до безобразия. Сейчас под рукой нет справочника Полещука, но насколько я помню, в AutoLISP есть команда, называется entmake, которая на основе заданного списка пар воссоздаёт примитив. Т.е. к примеру, при помощи (entget(car(entsel))) получаешь список, удаляешь из него идентификаторы (так же программно) и результат подсовываешь entmake в качестве параметра. Ну и такую команду генерируешь для каждого примитива. Получается текстовый файл исходника LISP, который сжимаешь архиватором. В своё время эта штука у меня в универе (конец 90-х) была очень востребована. Вот подумал, может быть тебе можно было бы по похожему пути пойти. Реализация проста как пять копеек, даже несмотря на то, что я лисп уже не помню лет адцать, но думаю что смог бы вспомнить при желании. Тем более с этим могут справиться те, кто на лиспе пишет сейчас.
Попробовал, что-то получилось: Например, в чертеже есть линия, упрощённо (на пальцах) получаем её коды так: Код:
Цитата:
Код:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 16.08.2013 в 22:56. |
||||
![]() |
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Хм... идея неплохая. Осталось придумать, как автоматизировать запуск скрипта, а так же добавить нужные размерные стили и пр.
Боюсь, что это будет в разы сложнее. Если бы не текстовые и т.п. стили... а так придётся устроить фабрику из несвязанных приложений, одно из которых не планируется покупать ![]() или нанять бригаду телепатов для обучения заказчика хитростям исполнения appload. (т.к. стили и т.п. можно задать через (COMMAND "_...") Говоря проще, решение хорошее. Жаль, что не для нашего случая. P.S. к тому же, самые "тяжёлые" файлы наверняка в итоге будут "открываться" в разы медленнее, чем из "готового" файла. А некоторые наши файлы даже в cad'е открывались за полминуты... Опишу ситуацию подробнее. Есть наше рабочее место (ПК), на котором нет acad'а. На него приходят исходные данные в dxf из acad'а. Нужно эти данные считать, обработать в своём ПО и отдать в dxf, который бы понял acad на стороне заказчика. С acad'ом напрямую взаимодействовать никак нельзя. Его просто нет. Ни dll, ни plugin, ни autolisp. Если только их можно косвенно задействовать на стороне заказчика, где, для упрощения, сидит "бабушка", которая понимает только "двойной клик - открыть", не больше.\ acad ------> наше ПО, нет acad'а ------> acad При условии максимально неумных обезьян на обоих концах (дуракоустойчивость). pps. с entmake entupd и пр. - знаком. ---------------------------- Где-то на форуме читал, что файл dxf-файл пополнялся нужными данными "в блокноте" следующим образом: находился максимальный указатель под индексом "5", к нему прибавлось для запаса 50 и дальше новые данные шли с указателем i+1. Под "330" там же всегда ставили 1F. Кто-нибудь имел подобный опыт? Всегда ли прокатывало? Последний раз редактировалось Аркос, 16.08.2013 в 22:16. Причина: правка для ответа на правку hwd |
|||
![]() |
|
||||
подправил предыдущее своё сообщение, добавив простой пример.
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Аркос
>>Может, кто-то может предложить ещё более "чистые" (короткие) варианты? а смысл гонки за укорачиванием? Имхо лучше лделать "универсально" чтоб можно было вписывать что надо и в короткие-сторонние и в длинные-"родные". да еще и любых версий. >>Может, кто-то может предложить ещё более "чистые" (короткие) варианты? dwg? ![]() hwd >>то такой файл сжимался весьма сильно (в отличие от DWG файла) Думаю только за счет того что в нем было фактически гораздо меньше информации чем в dwg. Старые dwg были очень экономными, впрочем и сейчас "координатная" информация там хранится очень компактно, со множеством хитростей для экономии места. Это не нынешние xml)) |
|||
![]() |
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Цитата:
Цитата:
Цитата:
В любом случае уже были выиграны полметра и пара десятков тысяч строк. Думаю, дальше уже не критично. Ориентировка же идёт на 2004 в целях совеместимости со старыми версиями. Последний раз редактировалось Аркос, 16.08.2013 в 22:25. Причина: ответ zamtmn |
|||
![]() |
|
||||
Цитата:
Хрен там! Как раз таки старые DWG сжимались гораздо хуже, чем современные. Во всяком случае, насколько я помню, старый DWG не всегда сжимался даже в 2 раза, из-за этого и пришлось такого коня изобретать, ибо дискеты стоили денег и часто дохли, особенно в метро. Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 16.08.2013 в 22:38. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Аркос
>>Сугубо в целях читаемости и компактности. думаю самым верным вариантом будет найти гденибудь старенький autocad2000\2004 БЕЗ ВСЯКИХ СТОРОННИХ НАШЛЕПОК и записать файлы в нем hwd >>Генерируемый мною LISP файл по объёму получался в 3-5 раз больше я думаю он всяко не содержал всего того что есть в dwg, а только то что нужно. вот за счет этого и выигрышь. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ищу коллег-пользователей TEKLA | PiP | Tekla | 6018 | 27.08.2015 16:13 |
LISP. Пакетный экспорт настроек слоев | TararykovDG | Готовые программы | 4 | 03.04.2012 10:03 |
Подскажите - экспорт файла в Tekla 15 | Ozzz | Tekla | 1 | 10.03.2010 14:07 |
Экспорт спецификации из MechaniCS 4.5 в OpenOffice | TAL | ПО от CSoft | 2 | 28.03.2007 20:18 |