|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Convert ellipses to polylines
Зеленоград
Регистрация: 03.03.2006
Сообщений: 3
|
||
Просмотров: 10315
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Нереально. У полилинии нет эллиптических сегментов. Соответственно все варианты - это либо прямые, либо дуговые сегменты с бОльшей или меньшей степенью детализации
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Amaru.
Если эллипс уже нарисован, то можно поделить его командой "_DIVIDE" и обвести на другом слое дуговыми сегментами полилинии с использованием привязок "_nod" ("узел") и "_nea" ("бли"). Последняя привязка нужна для использования второй точки при отрисовки дуговых сегментов и большей точности. Количество точек деления влияет на точность аппроксимации. |
|||
![]() |
|
||||
Хочу быть фотографом :) Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
![]() |
Единственное, чтобы при этом получить гладкую кривую (без переломов), имитирующую эллипс, нужно правильно построить сопряжения дуг (окружностей). Необходимо, чтобы оба центра окружностей и точка пересечения дуг лежали на одной прямой..
__________________
Камень на камень, кирпич на кирпич.. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>Amaru
http://forum.dwg.ru/showthread.php?t=6557 Преобразуй эллипсы в регионы и используй команду EXP_REGION из №6 Последний раз редактировалось VVA, 14.10.2011 в 15:29. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Последний раз редактировалось VVA, 05.07.2023 в 13:32. Причина: Внесены изменения см #38 |
|||
![]() |
|
||||
проектирование автомобильных дорог Регистрация: 03.02.2009
Киев
Сообщений: 144
![]() |
классный лисп,но вот если у меня только сегмент эллипса, а лисп дорисовывает недостающие части круговыми дугами которые мне приходится впоследствие удалять,как быть?
просто задача у меня такая: есть набор линий, полилиний,частей эллипсов которые между собой последовательно соединены,мне же нужно все это превратить в полилинию,когда дохожу до эллипсов начинаються траблы помогите кто может))) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Проблема в том, что когда PELLIPSE=1, то в команде _ELLIPSE отсутствует опция _ARC (Дуга). Т.е. в режиме отрисовки эллипсов полилиниями (PELLIPSE=1) можно рисовать только полные эллипсы.
Код от GILE - Gilles Chanteau (перенесен из #8) Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 29.06.2023 в 11:06. |
|||
![]() |
|
||||
Столкнулся с эллиптическими дугами, которые нужно сшивать с полилиниями. (После воссоздания контуров штриховок).
Лисп от GILE - Gilles Chanteau их преобразует в полилинии дуговыми сегментами, но грубовато. Что можно поменять в его лиспе, чтобы вершин в заменяющей полилинии было побольше? На второй картинке обведено желтым - видно расхождение между положением конца эллиптической дуги и концом заменяющей полилинии.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
маркшейдер Регистрация: 25.09.2021
Москва
Сообщений: 189
|
Цитата:
Код:
__________________
Keep it simple, stupid. |
|||
![]() |
|
||||
Пробовал. Плачет.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
В смысле? Пяток постов выше, на этой странице, #8, от GILE - Gilles Chanteau.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Плачет.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
маркшейдер Регистрация: 25.09.2021
Москва
Сообщений: 189
|
Тогда никак. Потому что всё сидит в этих:
Код:
__________________
Keep it simple, stupid. |
|||
![]() |
|
||||
Цитата:
(defun mb:ace2arcpl ( obj / a ptlst n startparam endparam midpt anab pacc) (setq ptlst (reverse (TraceACE obj))) (setq pacc (getvar "PEDITACCEPT")) (setvar "PEDITACCEPT" 1) (setq n 0 anab (ssadd)) ; anab nil (while (< n (1- (length ptlst))) (setq startparam (vlax-curve-getParamAtPoint obj (nth n ptlst)) endparam (vlax-curve-getParamAtPoint obj (nth (1+ n) ptlst)) midpt (vlax-curve-getPointAtParam obj (+ startparam (/ (- endparam startparam) 2))) ) (setq a (vl-cmdf "_.ARC" "_none" (nth n ptlst) "_none" midpt "_none" (nth (1+ n) ptlst))) (ssadd (entlast) anab) (setq n (1+ n)) ) (setq a (vl-cmdf "_PEDIT" "_Multiple" anab "" "_Join" 0 "")) (setq anab nil) (setvar "PEDITACCEPT" pacc) (princ) (entlast) ) ; _ defun _ mb:ace2arcpl В лиспе решена проблема с неточностью получаемых полилиний - расхождений пока не заметил. К сожалению, два "но": может вылетать на цельных эллипсах и работает оч. медленно. Низкая скорость, наверное, из-за командных методов создания дуг и их сшивания. Может кто-нибудь подправить, чтобы снять эти засады? [Я не программист.]
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |