2015 upgrad的LISP错误
大家好!我们最近将办公室从2013年升级到AutoCAD 2015。我们有几个LISP例程似乎不喜欢新版本。其中一个例程存储弧的长度,供以后使用。
; * ARC LENGTH
; * Returns the length of an arc
; * From JefferyPSanders.com
(defun getArc(en)
(command "lengthen" en "")
(getvar "perimeter")
)
当例程到达上述语句时,VLIDE将出错并显示“函数已取消”。
这在2013年曾经运行得很好,你认为主要的变化是什么,使上述代码不再工作?有没有想过用不同的方法来完成相同的任务?
提前谢谢!
当做
艾特灵 艾川,
不知道Acad 2015为什么会出问题,但你应该
使用vlax曲线函数。
(defun getlength (/ en)
(setq en (car (entsel)))
(vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
)
另一种方法是,您需要一个cond来检查每个对象类型,只需使用dumpit来查找变量。
(setq obj (vlax-Ename->Vla-Object (car (entsel))))
(princ (vla-get-arclength obj)) ; this is arc
;(princ (vla-get-length obj)) ; this is pline and a line
;(princ (vla-get-Circumference obj)) ; this is a circle
谢谢你们!我不得不做一些定制,但vlax曲线是正确的路径。
(vl-load-com)
(Defun getArc (en)
(vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
)
将命令替换为命令-S
页:
[1]