- 积分
- 32717
- 明经币
- 个
- 注册时间
- 2005-5-16
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2021-5-26 13:25:44
|
显示全部楼层
;直线段就没有area属性,圆弧就没有length属性,却有ArcLength属性
(defun c:tt(/ ss);长度面积统计
(vl-load-com)
(setq ss (ssget '((0 . "CIRCLE,ELLIPSE,*POLYLINE,SPLINE,ARC,LINE"))))
(setq n (sslength ss) i 0 totalarea 0 totlength 0)
(repeat n
(setq ename (ssname ss i))
(setq obj (vlax-ename->vla-object ename))
(setq dis (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)))
(setq totlength (+ dis totlength))
(setq area (vl-catch-all-apply 'vlax-curve-getArea (list obj)))
(setq i (1+ i))
(princ (strcat "\n第" (itoa i) "个图元, 长度=" (rtos dis 2 3) "mm"))
(if (/= area 0.0)
(progn
(setq totalarea (+ area totalarea))
(princ (strcat ", 面积=" (rtos area 2 3) "mm2"))
)
(princ (strcat ", 无面积属性!"))
)
)
(princ "\n****默认绘图比例1:1,以mm为单位****")
(princ (strcat "\n>>>>>共统计了" (itoa n) "个"
",累计长度=" (rtos (/ totlength 1e3) 2 3) "m"
",累计面积=" (rtos (/ totalarea 1e6) 2 3) "m2"
)
)
(princ)
) |
|