|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Можно-ли "Взорвать линию"?
Николаев
Регистрация: 01.12.2005
Сообщений: 76
|
||
Просмотров: 20356
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Нереал - если сделано именно типом линии.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
> Apelsinov : Если четко знаешь имя shape, то можно (кстати, не знал, спасибо). А если нет, то придется писать лисп для вставки shape и последующей конвертации их.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Взять идею Apelsinov и комманду из Exprerss'a Explode text. Сам текст команды (txtexp.lsp в папке Express) на лиспе. Если отбросить все проверки, то получится
Код:
1. Зеркалим линию по вертикали 2. К полученной зеркальной копии творим "_.WMFOUT" 3. "_.WMFIN" (правда у меня размеры немного отличаются, но думаю это можно поправить масштабом. Думаю именно этим и занимается acet-wmfin ) 4. Втавленный блок зеркалим обратно по вертикали 5. Взрываем. |
|||
![]() |
|
||||
Регистрация: 10.01.2005
Москва
Сообщений: 89
![]() |
Все понятно!! Но зачем зеркалить???? Не понял.... Два раза сделал WMFOUT-WMFIN с зеркалом и без - однохренственно!!!
Кстати, оффтопик сорри, вместо wmfout лучше использовать BetterWMF http://www.furix.com/ Не реклама, просто прога хорошая.. |
|||
![]() |
|
||||
Возникла необходимость преобразовать dwg в dmf (это формат программы Digitals). Ничего путного по поводу конвертирования не нашел (наверное потому что Digitals вроде как понимает dwg). Решал как-то аналогичную задачу для Компаса - там это реализовано наподобие команды laytrans, т.е. можно задавать типу линии dwg тип линии в компасе. Т.е. задача свелась к созданию всех используемых типов линиий в компасе и создание шаблона соответствий. В Digitals такого инструмента нет, поэтому возникла задача перевести все "сложное" в автокаде в простое. Грубо говоря взорвать все. Со сложными типами линий сразу же возник затык. Нашел готовое решение
Код:
Может кто подправить программу чтобы она работала как надо? |
||||
![]() |
|
||||
В тексте программы этот пункт присутствует.
Логика подсказывает что для линий без текста, но у которых shape имеет ориентацию нужно перед выполнением экспорта/импорта выполнять реверс линии. Линиям с текстом это не помогает. У образовавшихся в результате действия программы текстовых элементов в свойства параметр "Слева направо" стоит в "Да", видимо это как раз следствие действия команды _mirror. Чтобы вернуть тексту нормальный вид нужно отзеркаливание повторить для каждого текстового элемента в отдельности. Центром отзеркаливания д.б. центр текста (а не точка вставки). Как бы это программно реализовать? |
||||
![]() |
|
||||
Пастух Регистрация: 16.07.2012
Питер
Сообщений: 318
|
Попробуйте перед выполнением программы изменить переменную MIRRTEXT на 0
__________________
Автоматизация должна быть автоматической. |
|||
![]() |
|
||||
А эта из какой программы команда? В 2007 такой нет. Пользуюсь командой из набора Pl-tools.
p.s. Вобщем _.WMFOUT и _.WMFIN решили поставленную задачу. Правда после импорта shape который был квадратным стал кривоугольным, но с этим как-нибудь можно бороться. Главное что текст выглядит нормально. Последний раз редактировалось off, 25.10.2013 в 10:28. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Как оказалось не только реверс. Еще и mirrtext'ом нужно поиграться
В общем кое-что состряпал. Тестируйте Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.10.2013 в 17:31. Причина: ACET-SS-ZOOM-EXTENTS*SS->ACET-SS-ZOOM-EXTENTS SS |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Что такое Express Tools, для чего нужен, как доставить читай в соответствующей теме Express Tools PS Там была ошибка в логике. Обновил снова PPS Опубликовал на cadtutore http://www.cadtutor.net/forum/showth...uot-lisp/page3
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.10.2013 в 16:23. |
|||
![]() |
|
||||
Там в строчку (ACET-SS-ZOOM-EXTENTS*SS) закралась звездочка. Без нее сработало.
Если сильно не придираться то сойдет, по крайней мере меня устраивает результат. Если же подходить строго, то можно отметить что штрихи на наклонных линиях смотрят "не туда", т.е. их еще раз надо отзеркалить. Текст выглядит нормально, но буквы во-первых стоят не на тех местах где были (результат выполнения реверса) и ориентация буков на вертикальных участках линии наоборот. Последний раз редактировалось off, 25.10.2013 в 16:57. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Не понятно как она туда закралась. Поправил №17
Я тут еще про TORIENT вспомнил. Вариант без реверса, но с TORIENT'OM
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.10.2013 в 18:25. Причина: Убран реверс |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,170
|
У векторного формата WMF есть своего рода максимальная разрешающая способность, типа минимальной длины вектора, почти как у растровых форматов. Все, что мельче, загрубляется, как на приведенном рисунке.
Обоснованно сейчас не объясню, но не раз сталкивался. |
|||
![]() |
|
||||
В идеале точность при использовании методов вывода в WMF/DXB/PDF и т.д. 1/65000
Так что ошибка будет всегда. Альтернативный вариант - написание программы, которая сама будет считать положение "штрихов". Но это достаточно сложно.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
В составе ToolPac есть команда ObjExpLow - разбивает типы линий на составляющие, проблем с точностью не имеет, но некоторые косяки ей присуши - емнип теряет линии на границе примитивов, которые "какбы" выходят за AABB построенный без учета типа линий примитива.
>>В идеале точность при использовании методов вывода в WMF/DXB/PDF и т.д. 1/65000 Насколько я понимаю это чисто WMFная проблема, DXB она не касается (но он и не подразумевает хранение информации о штрихах), PDF она касается только если он получен из WMF (т.е. напечатан на виртуальном принтере) Последний раз редактировалось zamtmn, 03.07.2014 в 11:21. |
|||
![]() |
|
||||
Нет. Это проблема всего, что выводится на виртуальный принтер, т.е. любые растры и PDF.
Цитата:
Да и получается DXB (в последних >10 версиях AutoCAD) как результат печати на виртуальный принтер. Подскажи другой вариант получения PDF, который в конечном итоге не сводится к печати.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Не путаешь с DXF? В DXB не хранится информация о типах линий и соотвественно о штрихах: http://www.autodesk.com/techpubs/aut...t_al_u05_b.htm
Путаю. Вернее думал что DXB это "бинарный" вариант DXF - просветился. >>Подскажи другой вариант получения PDF, который в конечном итоге не сводится к печати. Не подскажу, но это не ограничение PDF а последствия неявного использования WMF. Думаю в линукс версиях кадов такой проблемы быть не должно (там нет WMF), попробую на досуге |
|||
![]() |
|
||||
Если более точно, то это проблема "растеризации" при печати.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,170
|
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Сравнил PDF c типом линии "изоляция" полученый в AutoCad в винде и в DraftSight линуксе, правда в автокаде печатал на PDFCreator, а в DraftSight использовал штатный экспорт.
Пдф из драфтсигна - без искажений, из автокада с явными искажениями |
|||
![]() |