lisp统计直线/圆弧、多段线的长度,cad统计长度

  • A+
所属分类:Auto CAD CAD二次开发

1,任何使用CAD自带命令统计长度

有很多人不知道CAD里面怎么统计一个图形的线的长度,很简单,这些功能CAD本身自带的,首选把需要统计的图形用 pe(多段线命令)合并连起来,做成一条线。在使用 lengthen(简化命令len)命令读取长度即可,

2,使用lsp代码直接读取长度。

其实也是利用上面的命令,循环,在加上每个线段的长度即可。

上菜吧,命令CDD,新建lsp文件复制代码代码粘贴在里面保存直接使用AP命令加载即可

(defun c:cdd ( / cdle ss n cdn)

(vl-load-com)
(setq n 0
cdn 0)
(setq ss (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
(setq sn (sslength ss))

(while(< n sn )
(setq ent (ssname ss n))
;1线长
(command "_lengthen" ent "")
(setq cdle (getvar "PERIMETER"))
;2线长
;(setq hjbk (vlax-ename->vla-object ent))
;(setq cdle (vlax-curve-getdistatparam hjbk (vlax-curve-getendparam hjbk) ) )

(setq cdn (+ cdn cdle))

(setq n (+ 1 n) )

)
(princ (strcat "\n-->>>huojibk.com-->>总长为 = " (rtos cdn 2 3 ) "\n"))
(princ)
)

复制

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: