二维多段线没有顶点表,怎么提取顶点坐标呢?(注意:不是多段线)还请各位大大解答!
如图:二维多段线没有顶点表,不知道怎么在不转换成多段线的前提下直接提取坐标,要是转换成多段线,有批量的方法么?
请各位大大解答,谢谢!
学习一下。。我一般都是把二维多段线转为多段线再编辑的。 ;;返回多段线顶点表
;;From mjtd.com
;;支持2D/3D多段线
;;modfiy by edata
(defun vertexs (ename / plist pp n)
(cond
((and ename(= (cdr(assoc 0 (entget ename))) "POLYLINE"))
(progn
(setq obj (vlax-ename->vla-object ename))
(setq plist (vlax-safearray->list
(vlax-variant-value
(vla-get-coordinates obj))))
(setq n 0)
(repeat (/ (length plist) 3)
(setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)(nth (1+ (1+ n)) plist)))))
(setq n (+ n 3))
)
pp
))
((and ename(= (cdr(assoc 0 (entget ename))) "LWPOLYLINE"))
(progn
(setq obj (vlax-ename->vla-object ename))
(setq plist (vlax-safearray->list
(vlax-variant-value
(vla-get-coordinates obj))))
(setq n 0)
(repeat (/ (length plist) 2)
(setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)))))
(setq n (+ n 2))
)
pp
))
)
)
edata 发表于 2014-1-24 18:32 static/image/common/back.gif
哇,又是你啊,大大
thank you
VLAX函数看不懂,不知道哪里有VLAX函数的帮助,lisp的帮助里面没有VLAX的帮助 312735894 发表于 2014-1-24 18:43 static/image/common/back.gif
哇,又是你啊,大大
thank you
VLAX函数看不懂,不知道哪里有VLAX函数的帮助,lisp的帮助里面没有VLAX的 ...
来个修改后的。。
;返回多段线顶点表2
;;From mjtd.com
;;支持2D/3D多段线
;;modfiy by edata
(defun vertexs2 (ename / plist pp n enty obj pt_n)
(if(and ename(= (type ename) 'ENAME))
(progn
(setq enty(cdr(assoc 0 (entget ename))))
(if (= enty "LWPOLYLINE")
(setq pt_n 2)
(setq pt_n 3)
)
(if pt_n
(progn
(setq obj (vlax-ename->vla-object ename))
(setq plist (vlax-safearray->list
(vlax-variant-value
(vla-get-coordinates obj))))
(setq n 0)
(repeat (/ (length plist) pt_n)
(setq pp (append pp (list (list (nth n plist)(nth (1+ n) plist)(if(= pt_n 3) (nth (1+ (1+ n)) plist) 0.0)))))
(setq n (+ n pt_n))
)
pp
)
)
)
)
) AutoCAD LISP_VLISP函数库查询辞典(带书签)_应要求附图
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=89643&fromuid=338795
edata 发表于 2014-1-24 18:49 static/image/common/back.gif
来个修改后的。。
谢谢大大,这回稍微明白点了,我再研究下!谢谢! 原来论坛还有更简洁的。。
http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=100137&pid=571715&fromuid=338795 edata 发表于 2014-1-24 20:41 static/image/common/back.gif
原来论坛还有更简洁的。。
http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=100137&pid=5 ...
太谢谢大大您了,不知道您平时是通过什么学习lisp的
感觉没人讲太难了。。。。
呵呵,这个是我的新号,以后就用这个了!
回复用以学习 ;;;来一个固版主的:
(setq ent (car(entsel "\n选取多段线: ")))
(mapcar 'cdr (vl-remove-if-not '(lambda(x)(= 10 (car x)))(entget ent)))
页:
[1]
2