为什么这个不提取点?
(setq plst (mapcar '(lambda (x) (assoc 10 lst)) lst))
分配给变量“lst”的值是多少? 我不是acad的前面,而是我记得的积分列表
你的答案不够清楚,那么你想用之前的代码做什么? 对不起,当我回家的时候,我会给你完整的密码 我首先推荐您学习基本的autolisp。
重多段线的gotcha是标题组70和顶点组70代码:
->参数->多段线名称
(defun plpts (en / ed mf vn vd vf)
(setq ed (entget en)
mf (cdr (assoc 70 ed)))
(and (= mf 0)
(princ "I'm a open 2D Polyline\n"))
(and (= (logand mf 1) 1)
(princ "I'm a closed Polyline in theM direction\n"))
(and (= (logand mf 2) 2)
(princ "I'm a curved fit Polyline\n"))
(and (= (logand mf 2) 4)
(princ "I'm a spline-fit Polyline\n"))
(and (= (logand mf 8) 8)
(princ "I'm a 3D Polyline\n"))
(and (= (logand mf 16) 16)
(princ "I'm a 3D Polyline Mesh\n"))
(and (= (logand mf 32) 32)
(princ "I'm a closed Polyline Mesh in the N direction\n"))
(and (= (logand mf 64) 64)
(princ "I'm a PFACE Polyline Mesh\n"))
(terpri)
(setq vn (entnext en)
vd (entget vn))
(while (= "VERTEX" (cdr (assoc 0 vd)))
(setq vp (cdr (assoc 10 vd))
vf (cdr (assoc 70 vd)))
;;;Here's where the fun begins!
(cond ((and (= mf 0)
(= vf 0)
(= (cdr (assoc 42 vd)) 0))
(prin1 vp)
(princ " - I'm a 2D Vertex point\n"))
((and (= mf 0)
(= vf 0)
(/= (cdr (assoc 42 vd)) 0))
(prin1 vp)
(princ " - I'm a 2D Bulge Ceneter point\n"))
((and (= (logand mf 2) 2)
(= (logand vf 1) 1))
(prin1 vp)
(princ " - I'm UCS curved fit tangent point\n"))
((and (= (logand mf 8) 8)
(= (logand vf 1) 32))
(prin1 vp)
(princ " - I'm a WCS Vertex point\n"))
((and (= (logand mf 16) 16)
(= (logand vf 64) 64))
(prin1 vp)
(princ " - I'm a WCS Mesh point\n"))
((and (= (logand mf 64) 64)
(= (logand vf 128) 128))
(prin1 vp)
(princ " - I'm a WCS PFACE point\n"))
);cond
(setq vn (entnext vn)
vd (entget vn)))
(prin1))
基于实体构造,有许多标志组合需要测试。
玩得开心-大卫 你好
您将如何使用mapcar检索顶点? 如果检索顶点坐标,
(mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget(car(entsel)))))
;or
(mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget(car(entsel)))))
*注意:但是,只有不带凸起的LW多段线 可以同时混合autolisp和vlisp吗?
页:
1
[2]