在CAD中求出多条线段的线段总和

在cad中有时会遇到对多条线段一下求和,不用li命令一条一条相加

采用加载LISP命令进行,加载xdqh.lsp,输入命令LENON;

以下为xdqh.lsp的源代码:

;;;-----------------------------------------------------
;;;计算线加总长度
;;;-----------------------------------------------------
(defun C:LENOF (/ 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)) 


)
(print (strcat "总长度: " (rtos SUMLEN 2 5)))


(princ)


)

  加载lisp方法:https://wenku.baidu.com/view/548a553583c4bb4cf7ecd12e.html;

参考文献:https://wenku.baidu.com/view/b969b72d7375a417866f8f5a.html

转载于:https://www.cnblogs.com/kmliangl/p/9494060.html

### 如何在 CAD 中测量多条线段的总长度 对于在 CAD 软件中测量多条线段的总长度,可以采用多种方法来实现这一目标。一种常用的方式是通过使用 `LIST` 或者 `PROPERTIES` 命令获取每一条线段的信息并手动相加其长度;然而这并不高效。 更简便的做法是利用 `MEASUREGEOM` 工具或是编写简单的 LISP 函数自动计算选定对象的累积距离: #### 使用 MEASUREGEOM 命令 输入命令 `MEASUREGEOM` 后按回车键,在提示下选择 "Distance" 选项,接着依次点击想要测量的各端点位置,最后结束操作时软件会显示所选路径上的累计直线距离[^1]。 另一种更为自动化的方法涉及到了自定义脚本或宏编程,例如 AutoLisp 编程语言能够帮助创建特定功能以简化重复性任务处理过程。下面给出了一段用于和指定范围内所有线实体长度的 Lisp 程序片段作为例子: ```lisp (defun c:sumlines ( / ss ent len tot) (setq ss (ssget '((0 . "LINE")))) (if ss (progn (setq tot 0.) (repeat (sslength ss) (setq ent (entget (ssname ss 0))) (setq len (- (distance (cdr (assoc 10 ent)) (cdr (assoc 11 ent)))) ) (setq tot (+ tot len)) (ssdel (ssname ss 0) ss) ) (princ (strcat "\nTotal Length of selected lines is:" (rtos tot 2 4))) ) ) (princ) ) ``` 这段代码定义了一个名为 sumlines 的函数,它会选择当前图形中的所有 LINE 类型的对象,并逐一读取它们起点与终点坐标之间的欧几里得距离,累加以获得总的线段长度值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值