统计长度的lsp
;;==============================================================================
;功能:计算所有选择对象的总长,可是是非直线。
;==============================================================================
(defun c:n()
(setq tleng 0)
(setq s (ssget))
(setq n (sslength s))
(setq index (- n 1))
(repeat n
(vl-load-com)
(setq ent (ssname s index))
(setq index (- index 1))
(setq curve-obj (vlax-ename->vla-object ent))
(setq leng (vlax-curve-getDistAtParam
curve-obj
(vlax-curve-getEndParam curve-obj)
)
)
(setq tleng (+ tleng leng))
(princ leng)
(princ "\n")
)
(setq prscreemtext (strcat "\n总共计算" (itoa n) "个对象,总长度为 " (rtos tleng 2 1)))
(princ prscreemtext)
(princ)
)
使用方法:将代码另存为la.lsp,然后加载,使用的时候运行命令n,可统计l和pl 快捷键是n,可统计l和pl 我试了好几遍,都没有成功,我正需要这个东东,请楼主帮帮我,不胜感激! 不错!真是个好东西!感谢楼主!
我是将它在LISP编辑器下另存为zc.lsp
(defunc:n()改为(defunc:zc() 以区分我的另外小工具,
列入自定义菜单,自动加载,
效果很好,对直线、圆、圆弧、样条曲线等都能用上。
[ 本帖最后由 fxq314159 于 2010-5-6 23:06 编辑 ] 楼主:不好意思!纠正一下您功能介绍中的一点疏忽,应是:可以是非直线。谢谢! 很好。。。。。。。。。。。。。。 新手,请问楼主的代码是不是相当于自己写的一个CAD功能程序呢
页:
[1]