源码如下:使用cc命令计算所选的多段线和直线之和,并可以乘系数
;;测量多段线,直线长度
(defun curvelength (ent)
(setq obj (vlax-ename->vla-object ent))
(setq len (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)))
len
)
(defun c:cc ()
(if (= bl nil) (setq bl 1))
(setq blold bl)
(setq bl (getreal (strcat "\n比例系数(" (rtos bl) "):")))
(if (= bl nil) (setq bl blold))
(setq suml 0)
(vl-load-com)
(setq ss (ssget) n 0)
(while (< n (sslength ss))
(setq suml (+ suml (curvelength (ssname ss n))))
(setq n (1+ n))
)
(princ "图面线段长度总和为:")
(princ suml)
(princ ",乘系数")
(princ bl)
(princ "后总和为:")
(princ (* suml bl))
(princ)
)