一个很简单的lsp,选择两条多段线(仅仅讨论多段线),然后让其分别头尾相连:
 - (defun c:aa( / e1 e2 e1obj e2obj p1 p2 p3 p4)
- (setq e1 (car(entsel)))
- (setq e2 (car(entsel)))
- (setq e1obj (vlax-ename->vla-object e1))
- (setq e2obj (vlax-ename->vla-object e2))
- (setq p1 (vlax-curve-getstartPoint e1obj) p2 (vlax-curve-getEndPoint e1obj))
- (setq p3 (vlax-curve-getstartPoint e2obj) p4 (vlax-curve-getEndPoint e2obj))
- (command "_.line" "non" p1 "non" p3 "")
- (command "_.line" "non" p2 "non" p4 "")
- )
我本来以为,只要将选中的pline都变成顺时针或逆时针,就能达到如下图中例二、例三的效果。
(为了节约各位老大时间,我将上边程序中将选中的线统一变成逆时针走向的部分省略了,反正都是照Gu_xl老大抄的。)
但在如下图的情况中,选中的六条白色pline都是逆时针走向,但执行程序后红色的连线却不一样。为什么啊?
要怎么做才能使所有结果都符合下图中例二、例三的效果?
|