autocadlisp统计多段线方法
1、打开cad软件,点击工具---autolisp-autolisp编辑器

2、打开autolisp编辑器,点击文件新建一个窗口。

3、将如下代码粘贴到新建的窗口
(defun c:tj(/ ss tlen obj k l)
(setvar "cmdecho" 0)
(if (setq ss (ssget))
(progn
(vl-load-com)
(setq l (sslength ss) k 0 tlen 0 )
(repeat l
(setq ename (ssname ss k))
(setq obj (vlax-ename->vla-object ename))
(if (= (cdr (assoc 0 (entget ename))) "MLINE")
(setq tlen (+ tlen (ml-length ename)))
(setq tlen (+ tlen (vlax-curve-getdistatparam ename (vlax-curve-getendparam ename))))
)
(setq k (1+ k))
)
(princ (strcat "\n共选择 " (itoa l) " 个对象 | 总长度: " (rtos tlen 2 0)))
;(command "text" (getpoint "\n选取文字插入点") "" "" (rtos tlen 2 3))
(alert (strcat "\n共选择 " (itoa l) " 个对象 | \n总长度: " (rtos tlen 2 0)))
)
(princ "\n未选择对象")
)
(setvar "cmdecho" 1)
(prin1)
)

4、输入完成之后点击加载命令,下图问加载无误之后的截面。

5、加载完成后返回到在cad窗口中,输入“tj”命令按照提示操作,提示选择需要统计的对象。

6、选择屏幕中的两条线段,图中已经标注每条直线为5000mm为了验证程序计算的结果。

7、选择完成之后按回车或者空格键,命令窗口显示计算结果为:“共选择 2 条线段. 线段总长: 10000.000毫米”和图中标注的两条线段长度之和一致,计算无误。
