请问如何用lisp程序将多二维多段线转为多段线?
二维多段线转多段线过程可以是这样:先将二维多线线分解(explode命令)为直线和圆弧--->将圆弧直线用pe命令合并成多段线请求大神帮忙,跪谢!!!
像这种事情,你既然知道了过程,就这么写就是,还求助什么呢?另外,应该附样图 试试convert命令,我写了一个三维转多段线的,思路是先三转二再转多段线,早上起来看看回给你。 dragoon33333 发表于 2016-10-2 00:50
试试convert命令,我写了一个三维转多段线的,思路是先三转二再转多段线,早上起来看看回给你。
(defun C:t2( / AcadObject AcadDocument mSpace ss1 n m ename ent_data str_0 obj pts);此乃明经论坛网友的代码,版权归原作者。
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object))
(setq AcadDocument (vla-get-ActiveDocument Acadobject))
(setq mSpace (vla-get-ModelSpace Acaddocument))
(setq ss1 (ssget '((0 . "POLYLINE"))))
(setq n (sslength ss1))
(setq m 0)
(while (< m n)
(setq ename (ssname ss1 m))
(setq ent_data (entget ename))
(setq str_0 (cdr (assoc 0 ent_data)))
(while (/= str_0 "POLYLINE")
(setq ename (car (entsel "选择的实体非三维多段线,请重新选择!:")))
(setq ent_data (entget ename))
(setq str_0 (cdr (assoc 0 ent_data)))
)
(setq obj (vlax-ename->vla-object ename))
(setq pts (vlax-variant-value (vla-get-coordinates obj)))
(vla-AddPolyline mSpace pts)
(setq m (+ 1 m))
);while
(command "_erase" ss1 "")
(command "_convert" "P" "A");这行就是二维多段线转多段线。
(princ)
);转完后还是显示二维多段线,保存后再打开就成了多段线了,我也不知道为什么。 谢谢大师分享
页:
[1]