xkbuild 发表于 2024-3-30 09:59

CAD查询标注多条线段总长度

本帖最后由 xkbuild 于 2024-3-30 14:30 编辑

10多年前在网上发过CAD查询标注多条线段总长度这个文章,被很多人转来转去,文件已经不全,今天又发现以前的功能只能查询,并不能进行标注,这次又修改了一下,分享给大家,希望能给您带来一点用处。首先输入命令:appload加载lsp(也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件,‘如果加到启动组,需要关闭cad,再重新打开才生效’)输入命令dxzc选择多条线段,然后在屏幕中选取标注位置进行标注。将以下代码复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注。(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

lovesdeeply 发表于 2024-3-30 10:38

这个好像一直有的,因为我一直用,
好多免费插件也带这个功能,比如:源泉。。
LSP文件我用过一个,加载后,快捷键ZC就可以。。
不过还是感谢楼主的分享。。

SAHAQUIEL 发表于 2024-3-30 12:13

{:301_1003:}画图佬懂画图佬

korchin 发表于 2024-3-30 13:37

感谢分享

xkbuild 发表于 2024-3-30 13:45

lovesdeeply 发表于 2024-3-30 10:38
这个好像一直有的,因为我一直用,
好多免费插件也带这个功能,比如:源泉。。
LSP文件我用过一个,加载 ...

源泉的,我记得是生成个表,绘图时,如果不需要表,还需将表个删除掉,在某些绘图时候,这样反而方便一点!

fandazong 发表于 2024-3-31 13:49

大佬多分享点{:1_927:}

long88888888 发表于 2024-4-7 21:17

这是什么鬼,怎么发到这里来了

desare 发表于 2024-9-26 16:25

本帖最后由 desare 于 2024-9-26 16:27 编辑

命令dxzc,可以改成其他字母
好东西,百度搜的一直用不了

hedongman 发表于 2024-9-26 21:51

感谢楼主的分享

双赢天下 发表于 2024-10-8 10:30

辛苦!确实好!谢谢
页: [1]
查看完整版本: CAD查询标注多条线段总长度