马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
选择多段线,和一个属性实体,修改属性的内容为多段线的面积和周长信息
(defun C:test ( / n p a )
(and
vlax-get-acad-object
(setq n -1)
(setq p (ge "Select polyline" "LWPOLYLINE" nil))
(setq a (ge "Select attribute" "ATTRIB" T))
(vlax-put a 'TextString
(apply 'strcat
(mapcar
(function
(lambda (x)
(setq n (1+ n)) (strcat (nth n '("Area: " ", Perimeter: ")) (rtos x 2 (getvar 'luprec)))
)
)
(list (vlax-curve-getArea p) (vlax-curve-getDistAtParam p (vlax-curve-getEndParam p)))
)
)
)
)
(princ)
) (vl-load-com) (princ)
(defun ge ( msg typ lflg / e o )
(setvar 'errno 0)
(while (/= 52 (getvar 'errno))
(setq e (car (nentsel (strcat "\n" msg " <exit>: "))))
(cond
( (= 7 (getvar 'errno)) (princ "\nMissed, try again.") (setvar 'errno 0) )
( (and (= 'ENAME (type e)) (/= (cdr (assoc 0 (entget e))) typ)) (princ "\nInvalid object.") (setq e nil))
( (and lflg e (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (entget e)))))))))
(princ "\nThis layer is locked.") (setq e nil)
)
(e (setq o (vlax-ename->vla-object e)) (setvar 'errno 52))
(T nil)
); cond
); while
o
)
|