|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как отобразить контур 2-х пересекающихся объектов?
Регистрация: 25.02.2006
Сообщений: 12
|
||
Просмотров: 6064
|
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
Пример лежит в файле
http://80.250.160.70/dxf/t.dxf Слева исходный вариант, справа то что должно получится. Таких объектов в файле ~1000, т.е. желательно это как-то автоматизировать... |
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
Таких объектов всего 3..4 разных вида... Это экспортированная из P-CAD разводка печатной платы. В результате нужно получить векторный файл с толщиной линий контура 0.001мм для запуска на плоттер. (линии другой толщины или растровое изображение плоттер не обрабатывает). А как эти объекты заново отрисовывать?
|
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Ну как... Программно конечно, не ручками же
![]() Смысл такой, что надо за что то зацепиться. Например, за блок "_DEFAULT_PAD1". Ну а дальше думать... Вопрос второй: эти блоки "_DEFAULT_PAD1" встречаются только в таких объектах, или еще где то? Вопрос третий: длина примыкающей полилинии всегда 0,1" ? Гммм... может быть, возможно ли из P-CAD экспортировать сразу с готовым контуром? Или это недоступно физически.... |
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
1) Блоки "_DEFAULT_PAD1" могут встречаться в любых объектах, так же как и похожие блоки с другими названиями.
2) Длина всех линий разная. Экспортировать из P-CAD с границами не удавалось, правда удалось путём сложных махинаций типа P-CAD->adobe illustrator->corel drow->autocad->adobe illustrator получить векторную картинку с границами в виде линий вдоль контуров каждого объекта(самих объектов небыло, зато были линии пересечений границ внутри объектов, которе тоже надо как-то удалить). Но это ненормально и повторить 2-й раз несмогу. Может есть какой-то парсер для dxf формата, который позволит как-то автоматизировать этот процесс? |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Мдя.... невесело... Прицепите к сообщению, или замыльте фрагмент реального чертежа, может что то удастся придумать.... Разумеется, ничего секретного.
Есть еще одна мысля. Вроде P-CAD должен давать список координат точек в текстовом виде (файле). Наверняка эти точки можно как то идентифицировать по названию. И просто отрисовать по этим координатам заново. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
xbt , вы не представляете, как вам сегодня умопомрачительно свезло. Я написал для вас прогу, ибо аз есмь добр днесь. Пользуйтесь на здоровье, да не забывайте каждый раз сугубо и трегубо благодарить мнея за то, что я есть.
Код:
|
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
Выкладываю 2 рисунка. Левый - то что удалось получить через P-CAD -> CorelDraw -> AutoCAD. Правый - то что мне удалось сделать за 10 минут(только левая часть схемы, 1 дорожка с 4-мя изгибами)... Собственно это и требуется сделать для всей схемы...
[ATTACH]1140982619.rar[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
Забыл выложить то-что даёт P-CAD. Площадки не обязательно могут быть круглыми, но и прямоугольными, но на местах изгиба есть круги. То что выложил Лентяй частично работает на старой схеме, но на этой неработает... Всё равно ему спасибо... Теперь есть направление для размышления...
[ATTACH]1140984431.rar[/ATTACH] |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Ну дак написать то дольше получается чем потыкать мышом
![]() ![]() Значит, создаю новый слой (синим) и делаю его активным Отрисовываю прямоугольник - типа границы платы Далее замут со штриховкой: Command: _bhatch В диалоговом окне опции как на картинке.... Тыкаю Pick points и указываю точку между границей платы и рисунком АКАД некоторое время думает, потом предлагает ткнуть еще точку - это нам не надо, значит давлю ентер. Штриховку можно сразу выкинуть - не нужна ![]() [ATTACH]1140985918.gif[/ATTACH] |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
:evil: Однако, не все так просто... Внимательно полазил по скруглениям - кое где при переходе на "радиус" обнаружил вот такую фигню....
Возможно, удастся поиграв параметрами при штриховке от этого избавится, а возможно и нет. Длина "хвостика" всего то 0.00034421 а ширина и того меньше 0.00004584 .... Может быть придется на этапе экспорта что то подправлять.... [ATTACH]1140987490.gif[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 25.02.2006
Сообщений: 12
|
После вышеописанных манипуляций получил вот что... Непонятно что делать с кружками СИНЕГО цвета, но почему-то не все удалились с помощью quick select... Хвостики особого значения не имеют, т.к. слишком малы, думаю плоттер их незаметит вовсе... Кстати кружки на исходном рисунке могут быть и как более мелкие так и более крупные. И если бы удалось это всё провернуть с исходным рисунком(там где всё залито) - то было бы вообще замечательно.
[ATTACH]1140988719.dwg[/ATTACH] |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
В предыдущем файле, который я ковырял, синие кружочки (кстати, там есть еще и полукружочки) представляли собой полилинию площдью примерно 0.0004, соответственно, выделил их фильтром < 0.0005. В последнем же файле их площадь примерно 0.0027 - надо подобрать значение фильтра.
Насчет более или менее мелких.... ну, пожалуй сделать еще пару-тройку слоев, чтоб так же фильтрами раскидать на "нужные - не нужные". Ведь и какие то мелкие могут оказаться нужными ![]() По поводу "со всем рисунком". Может сразу весь не получится, возможно придется обрабатывать частями. Создание контура бывает что глючит на слишком густо засыпаном чертеже. |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Так пайдеть?
[ATTACH]1143445552.zip[/ATTACH] Млин, файл тяжеленным выходит... ээээ.... возля 16 ножки площадка почему то не соединилась с дорожкой... хз почему... В общем, сначала _.region - выбрал все Потом _.union - опять все И наконец, _.explode Ну, думаю что дальше просто |
|||
![]() |