AutoCAD中用vba的方式,怎样框取多条直线(或多段线)获取相交点坐标呢?
AutoCAD中用vba的方式,怎样框取多条直线(或多段线)获取相交点坐标呢?打算用do。。。loop循环,但苦于不知道每条线的名字,没办法循环啊。望高手解答。初学者。类...
AutoCAD中用vba的方式,怎样框取多条直线(或多段线)获取相交点坐标呢?
打算用do。。。loop循环,但苦于不知道每条线的名字,没办法循环啊。望高手解答。初学者。
类似这样的,想框选白线,单选红线,求坐标 展开
打算用do。。。loop循环,但苦于不知道每条线的名字,没办法循环啊。望高手解答。初学者。
类似这样的,想框选白线,单选红线,求坐标 展开
1个回答
2017-01-11 · 知道合伙人软件行家
关注
展开全部
使用while函数来循环,下面是一个计算交点的autolisp代码:
(defun c:tes ( / &k1 &kw1 &ss1 &ss2 i x)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) )
(princ "\n请选择曲线")
(if (setq &kw1 (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE,HELIX"))))
(progn
(setq &ss1 '() i -1.0)
(while (setq &k1 (ssname &kw1 (setq i (1+ i))))
(setq &ss1 (cons &k1 &ss1));提取对象
);while
(while (and (setq &k1 (car &ss1)) (setq &ss1 (cdr &ss1)));计算这条曲线与其他对象的交点
(setq &ss2 (apply 'append (vl-remove-if '(lambda (x) (= x nil))
(mapcar '(lambda (x) (acet-geom-intersectwith &k1 x 0)) &ss1))))
;&ss2是计算得到的交点,没有交点的话是nil
);while;2
)
)
(princ)
)
更多追问追答
追问
能做成vb的吗?看不大明白lisp。
追答
不会VB,autolisp是cad专用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询