求助。三维或者二维多段线。。。转多段线。。。
(defun C:t2()(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 "")
(princ)
楼上VBALISPER兄弟的函数。。在此感谢。。
目前可以实现三维多段线转二维多段线。。。。希望可以实现三维包括二维多段线转普通多段线。。。谢谢了。。。 分段的话 接下来就交给 CONVERTPOLY 指令接手===> LwPolyLine
;; 伪源码,需要e派工具箱(XCAD)的支持:http://xyp1964.ys168.com
(defun c:t2 ()
(if (setq ss (ssget '((0 . "*POLYLINE"))))
(progn
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq ptn (xyp-get-Vertexs s1 0)
ptn (mapcar 'xyp-3d2d ptn)
)
(if (xyp-Curve-Close s1)
(xyp-Entmake-lwPolyline ptn t)
(xyp-Entmake-lwPolyline ptn nil)
)
)
(xyp-erase ss)
)
)
(princ)
) 本帖最后由 chpmould 于 2012-7-5 22:17 编辑
刚好以前写了一个这样的函数,看你用的上不
;;测试例子:
(defun c:t2 ()
(if (setq ss (ssget '((0 . "*POLYLINE"))))
(progn
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq lst (Get_PointList s1))
(entmake (append (list '(0 . "LWPOLYLINE")
'(62 . 6)
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length lst)))
(mapcar '(lambda (pt) (cons 10 pt)) lst))))
(vl-cmdf "_erase" ss "")))
(princ)
)
chpmould 发表于 2012-7-5 22:12 static/image/common/back.gif
刚好以前写了一个这样的函数,看你用的上不
你好。。又能在2007上用的吗?可以直接转为多段线吗。。。麻烦了。。谢谢 麻烦你帮测下。。。我的场景 chpmould 发表于 2012-7-5 22:12 static/image/common/back.gif
刚好以前写了一个这样的函数,看你用的上不
麻烦你帮测下。。。我的场景 egoroom 发表于 2012-7-5 22:26 static/image/common/back.gif
你好。。又能在2007上用的吗?可以直接转为多段线吗。。。麻烦了。。谢谢
执行后反馈no function definition: GET_POINTLIST。。不知道什么意思。我的cad版本2007 我在在他原来提供的一段代码上改的.虽然由3D多段变成了2维多段.但是属性看不到.不能再用CONVERTPOLY 指令接手===> LwPolyLine
页:
[1]
2