本帖最后由 xkbuild 于 2024-3-30 14:30 编辑
10多年前在网上发过CAD查询标注多条线段总长度这个文章,被很多人转来转去,文件已经不全,今天又发现以前的功能只能查询,并不能进行标注,这次又修改了一下,分享给大家,希望能给您带来一点用处。首先输入命令:appload加载lsp (也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件,‘如果加到启动组,需要关闭cad,再重新打开才生效’) 输入命令dxzc 选择 多条线段,然后在屏幕中选取标注位置进行标注。 将以下代码复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注。 [Asm] 纯文本查看 复制代码 (princ "\n 程序:(XKBUILD)统计线段长度命令:dxzc")
(defun C:dxzc (/ 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))
)
(princ (strcat "\n共选择" (itoa (sslength SS)) "条线段线段总长" (rtos SUMLEN 2 3) "."))
(setq b (rtos SUMLEN 2 2)) ;将数据结果由实数转换成字符串,且设置为两个精度,即小数点后两位
(setq a (getpoint "\n屏幕单击插入点")) ;指定插入点
(entmake (list '(0 . "text") ;建立文字图元属性列表,文字,插入点,内容,字高
(cons 10 a)
(cons 11 a)
(cons 1 b)
'(40 . 15);字高
)
)
(princ)
);复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注,by xkbuild,跟多内容搜索xkbuild |