Тема: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Может было уже что нибудь подобное?

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Есть только с полилинией. Но конрертировать дуги и линии в полилинию не составит большого труда. Должны быть подгружены Новые команды для работы с полилинией

(defun C:PUK (/ ss n lin)
 (if
 (and
 (princ "\nУкажите режущую полилинию")
 (setq ss (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
 (setq lin (vlax-ename->vla-object (ssname ss 0)))
 (princ "\nВыберите полилинии")
 (setq ss nil
 ss (ssget "_:L" '((0 . "LWPOLYLINE")))
 )
 (or
 (ssdel (vlax-vla-object->ename lin) ss)
 t)
 (> (sslength ss) 0)
 )
 (progn
 (foreach item (mapcar (function vlax-ename->vla-object)
 (vl-remove-if
 (function listp)
 (mapcar (function cadr) (ssnamex ss))
 )
 )
 (if (and (setq ret (vlax-variant-value
 (vla-IntersectWith lin item acExtendNone)
 )
 )
 (> (vlax-safearray-get-u-bound ret 1) 0)
 )
 (progn
 (vl-catch-all-apply
 '(lambda ()
 (setq ret (vlax-safearray->list ret))
 (mapcar
 '(lambda (pt)
 (pl:AddVX pt (vlax-vla-object->ename item) pt)
 )
 (pl:group-by-num ret 3))))))))) ;_if and
 (princ)
)

(изменено: Yuriy, 16 декабря 2009г. 23:09:38)

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Супер !!!
протестировал в AA-2010 eng в WCS и UCS
вершины вставляются даже на замыкающих сегментах  8)

Владимир, большое спасибо :!:

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Это довесок к "Новым командам ..." Все руки не доходят кнопку нарисовать да хэлп написать. Рад что протестировал :)

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

AutoCAD 2008 RU выбираются режущая полилиния и остальные, но новых вершин нет.

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Al_geor пишет:

AutoCAD 2008 RU выбираются режущая полилиния и остальные, но новых вершин нет.

Должны быть подгружены Новые команды для работы с полилинией

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Yuriy,
Доброго времени суток!
Скажите пожалуйста, а можно добавить возможность разрыва в местах пересечения с полилинией? Чтобы она стала "режущей" в прямом смысле этого слова. Как это сказал Al_geor в посте #5

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

у Владимира (VVA) похоже и это тоже есть  :)
LISP. Разорвать объекты в точках пересечения. BreakObjects.

В архитектурном автокаде также имется режущая команда

Command: LineworkDivide
Select the first point of the dividing line or Enter to pick on screen:
...

Re: автовставка вершин в выбранных полилиниях в местах пересечения с указанной полилинией, линией, дугой

Yuriy,
Спасибо огромное!!!
сейчас посмотрю...