| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Алгоритм работы программы по объединению простых объктов в п

Алгоритм работы программы по объединению простых объктов в п

Ответ
Поиск в этой теме
Непрочитано 08.08.2004, 13:20 #1
Алгоритм работы программы по объединению простых объктов в п
Torino
 
Штаб
Регистрация: 21.08.2003
Сообщений: 943

Вопрос в теме.
Хочу написать программу, которая объединяет отрезки, дуги, 2д-полилинии и 3д-полилинии в одну 3д-полилинию.
Какой алгоритм можно использовать?

Или, если уже есть такая программа - поделитесь, пожалуйста.
Зачем писать то, что уже написано
Просмотров: 5060
 
Непрочитано 09.08.2004, 09:42
#2
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,268


У меня есть макрос по объединению дуг, отрезков и полилиний в одну полилинию:
Код:
[Выделить все]
^C^C_pedit;\_y;_j;_box;\\;;
1шаг. Нужно указать или отрезок или дугу, но не полилинию.
2шаг. Рамкой или секущей рамкой захватить все остальные примитивы, которые нужно объединить. Можно захватывать и "лишние" - если их присоединить невозможно они автоматически будут исключены из набора объединения.

Особенность: Если в цепочке примитивов есть дуги, то макрос иногда (но не всегда) работает некорректно. Почему? Может, Vova ответит...

С 3Д-полилиниями не пробовал за ненадобностью.
Pilot вне форума  
 
Автор темы   Непрочитано 09.08.2004, 10:36
#3
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Опция JOIN команды PEDIT работает весьма коряво и не работает с 3д полилиниями. В LDD есть команда по объединению 3д полилиний. но она тоже работает коряво (или у меня ручки корявые ). Поэтому решил написать свою программу для этих целей.
Torino вне форума  
 
Непрочитано 09.08.2004, 18:10
#4
AY


 
Сообщений: n/a


В принципе возможно считывание координат узлов (и если надо радиусов или что там у полилиний) примитивов подлежащих присоединению с последующим их удалением и модификацией по этим данным редакитруемой 3М полилинии через ENTMODE.
Хотя это вовсе не просто.
Кстати может у 3М полилинии есть метод - добавление участков?
 
 
Непрочитано 09.08.2004, 18:27
#5
AY


 
Сообщений: n/a


Кажется насчет радиусов я погорячился их вроде как не надо, но это автор темы меня сбил "дугами". А для добавления сегментов (читай вершин), посмотрел, есть метод object.AppendVertex Point. Так что можно пробовать.
 
 
Непрочитано 09.08.2004, 20:01
#6
Arkady

AutoCad Development and Support
 
Регистрация: 21.08.2003
Israel
Сообщений: 183
Отправить сообщение для Arkady с помощью Skype™


На чем писать (LISP,VBA) :?
Arkady вне форума  
 
Автор темы   Непрочитано 09.08.2004, 21:38
#7
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


На LISPe.
Это называется "тонко намекнул"
Torino вне форума  
 
Непрочитано 17.09.2004, 10:45
#8
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


А разве можно в 3D pline обрабатывать дуги? Или это появилось в 2005?

А вообще-то такое объединение (по крайней мере я попробовал с 3DPoly, pline and line) можно сделать в ToolPac (даже в 5-м).
KAI вне форума  
 
Автор темы   Непрочитано 17.09.2004, 11:14
#9
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Нет, дуги нельзя обрабатывать напрямую, но их можно преобразовать в полилинию (тем же тулпаком).
В тот раз я выкрутился с помощью Макса.
Надо подробно изучить Тулпак.
Спасибо за наводку!
Torino вне форума  
 
Непрочитано 17.09.2004, 11:21
#10
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,117


А ToolPac в Download-е есть? Я что то быстренько пробежался не нашел. Может у кого есть скините или ссылочку дадите.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 17.09.2004, 12:51
#11
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


>> Admin
Помнится я брал ToolPac 5 с данного сайта, но наверное, при смене имиджа сайта, с водой выплеснули и ребенка.
А размер-то у него не маленький (более 5 МВ).
KAI вне форума  
 
Непрочитано 25.10.2004, 12:13
#12


 
Сообщений: n/a


>>Pilot
А если заменим
^C^C_pedit;\_y;_j;_box;\\;;

с
^C^C_pedit;\_y;_j;_pick point;\\;;
- и можно последовательно
 
 
Непрочитано 11.11.2004, 14:33 PEDIT3D
#13
scj


 
Сообщений: n/a


Попробуй мой PEDIT3D.LSP от моей страны
www.black-cad.de
(на английском языке)
Пока
scj
 
 
Автор темы   Непрочитано 11.11.2004, 16:12
#14
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Спасибо!
Несколько обнаруженных глючков:
при выходе по ESC слетают привязки.
Если в наборе объединяемых объектов есть дуги, то после объединения они остаются.
Torino вне форума  
 
Непрочитано 11.11.2004, 17:52 PEDIT3D
#15
scj


 
Сообщений: n/a


О окончении программы по ESC я не подумал... Я не включил обнаружение ощибок (ERROR handling).
И нормально я рекомендую сначала изменить настоящий LAYER, так как все отдельные сегменты сохраняются на старом LAYERе.
О алгоритме:
Я использую комманду DIVIDE на дуги и сплайны (относительно от длины или углы дуги). Таким образом получу листы каждого сегмента, составшие из координатов точек. Потом я собираю эти листы по порядку первых и последных точек (иногда надо изменить порядку в листе.)
Извините мои попытки писать по-русский, но когда Вы разрешаете мне заниматься в форуме - может быть я ещё немного научусь...
Пока scj
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Алгоритм работы программы по объединению простых объктов в п

Размещение рекламы