CAD中怎样一次算出多条多段线的总长度
1、首先在命令栏输入命令“li"(英文大小写都可以,这个没有影响,下面步骤中输入命令也是这样,没有区分),然后按”Enter“键确定。
2、然后我们选择两条不同的线段,如图所示,选择好对象,按”Enter“键确定。
3、就会弹出文本窗口,上面有两个不同的对象的长度值。
4、在百度上搜索下载”cad计算总长度插件。
5、然后回到我们要测长度所对应的cad图纸,点击”工具“---”加载应用程序“。
li命令全称(LIST)就是一个查询图形各种参数特征的工具,点击要查询的图素后再输入LI,该图素所有信息都可以出现,包括图素类型,颜色,图层,长度,坐标,面积,等等等,主要是用来方便作图者快速了解图元的一个快捷工具。
建议你这样试试看:
(defun c:sum-length (/ obj-s obj-name obj n sum-l)
(prin1 "求选定线段的总长")
(setq obj-s (ssget) ;选择集
n 0 ;选择的图元数量
sum-l 0) ;总长
(repeat (sslength obj-s)
(setq obj (ssname obj-s n) ;图元名
obj-name (cdr (assoc 0 (entget obj) ;图元类型
)
)
)
(if (or (= obj-name "LINE")
(= obj-name "CIRCLE")
(= obj-name "ARC")
(= obj-name "SPLINE")
(= obj-name "POLYLINE")
)
(setq sum-l (+ sum-l (get-length obj)))) ;图元的长度加总
(setq n (1+ n))
)
(prin1 (strcat "选择的"
(itoa n)
"个对象的总长度:"
(rtos sum-l)))
(princ)
)
(defun get-length (curve)
;求直线、圆弧、圆、多段线、优化多段线、样条曲线等长度
(vl-load-com)
(setq curve (vlax-ename->vla-object curve))
(vlax-curve-getDistAtParam curve
(vlax-curve-getEndParam curve)
我看不懂li 后出来的对话框,好多“长度”,不知道哪一个是我需要的。。我大概知道是要在快速选择里 选择图层,再在“值”出选择新建图层的名称,好像还有什么步骤,然后总长度就出来了
新建一个记事本,复制下面的东西,另存为 总长度.lsp 然后加载这个lsp 运行TE
(princ "\n程序:统计线段长度 命令:te")(defun C:TE (/ CURVE TLEN SS N SUMLEN) (vl-load-com) (setq SUMLEN 0) (setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC")))) (setq N 0) (repeat (sslength SS) (setq CURVE (vlax-ename->vla-object (ssname SS N))) (setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE))) (setq SUMLEN (+ SUMLEN TLEN)) (setq N (1+ N))) (setq sumlen(/ sumlen 1000))(princ (strcat "\n共选择 " (itoa (sslength SS)) " 条线段. 线段总长: "(rtos SUMLEN 2 3) "米."))(princ) )