首先要有一个autocad软件
打开autolisp编辑器,点击文件新建一个窗口。
将如下代码粘贴到新建的窗口(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))
输入完成之后点击加载命令,下图问加载无误之后的截面。
加载完成后返回到在cad窗口中,输入“tj”命令按照提示操作,提示选择需要统计的对象。
选择屏幕中的两条线段,图中已经标注每条直线为5000mm为了验证程序计算的结果。
选择完成之后按回车或者空格键,命令窗口显示计算结果为:“共选择 2 条线段. 线段总长: 10000.000毫米”和图中标注的两条线段长度之和一致,计算无误。
保存之后就可以运行,单击编译然后在cad窗口输入tj,选择需要统计的多段线就可以统计所有线的长度。
保存的后缀名为.lsp的文件哦