曾答应论坛里的朋友,写一个计算选择到的直线、圆、圆弧、多段线四种图元长度总和的命令。主要用来计算切割面积用的。
现在命令写好了,自己下载吧。
代码直接贴在这。
;;===================================
(vl-load-com)
(defun c:ssa(/ sel leng obj)
(setvar "cmdecho" 0)
(princ "\n本程序只对直线、圆、圆弧、多段线四种图元对象有效!")
;;带过滤器选择,只选择上述四种对象
(setq sel (ssget '((0 . "ARC,CIRCLE,LINE,LWPOLYLINE"))))
(if sel
(progn
(princ (strcat "\n共选择了" (rtos(sslength sel)2 0)"个有效对象!"))
(setq leng 0)
(while (>(sslength sel)0)
;;vlax-ename->vla-object把AutoLisp的对象转换为VLA对象
(setq obj (vlax-ename->vla-object (ssname sel 0)))
;;vlax-curve-getDistAtParam取得对象的长度
;;obj为VLA对象,vlax-curve-getEndParam取得对象的终点
(setq leng
(+ leng (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj))))
(ssdel (ssname sel 0) sel)
)
(princ (strcat "\n所选对象的总长度为: " (rtos leng 2 3)))
)
)
(setvar "cmdecho" 1)
(princ)
)
;;===================================
[attach]428866[/attach]
[此贴子已经被作者于2005-12-7 11:27:14编辑过]