1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度)
(defun c:LL ()
(setvar 'cmdecho' 1)
(setq en (ssget (list '(0 .
'spline,arc,line,ellipse,LWPOLYLINE'))))
(setq i 0)
(setq ll 0)
(repeat (sslength en)
(setq ss (ssname en i))
(setq endata (entget ss))
(command 'lengthen' ss '')
(setq dd (getvar 'perimeter'))
(setq ll ( dd ll))
(setq i (1 i))
)
(princ '所选线条总长为:')(princ ll)(princ)
)
2.标注所有线段(加载后只需框选所有线段便可得标注这些线段)
(defun c:LLL ()
(COMMAND 'UCS' '')
(setvar 'cmdecho' 1)
(SETVAR 'OSMODE' 0)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
;;选取需要测量的样条曲线、圆弧、直线、椭圆
(setq en (ssget (list '(0 .
'spline,arc,line,ellipse,LWPOLYLINE'))))
(setq i 0)
;;获取系统参数textsize
(setq shh (getvar 'textsize
'))
(setq str_hh (strcat '\n文字高度 : '))
(setq hh (getdist str_hh))
(while hh
(setvar 'textsize' hh)
(setq hh nil))
;;输入标注文字高度