vl-get-arclength命令,对用圆弧命令画的圆弧有效,对裁剪圆后得到的圆弧,不起作....
这是我自己写的一个计算选择的所有直线长度的代码,但是出现点问题,就是用圆弧命令画的圆弧,可以执行arclength,但是裁剪以后的圆,虽然也是圆弧,但提示arclength无效,不知道怎么回事。有人能帮我看看么?;;;计算选择线条的长度
(Defun C:sss()
(Vl-Load-Com)
(SetQ EntPnt (ssget))
(setq n (sslength entpnt))
(setq i 0)
(setq chicun 0)
(princ "总长度 = ")
(repeat n
(setq ent (ssname entpnt i)) ;或得图元名
(setq dysj (entget ent))
(setq ifline (assoc 0 dysj)) ;返回(0 . "line")
(if (= (cdr ifline) "LINE") ;为直线
(progn
(setq zhixian
(vlax-curve-getDistAtPoint ent (cdr (assoc 11 dysj)))
)
;计算直线长度,还有个精度问题,怎么确定保留几位小数?这个跟画线精度有问题,精度到4,只能改成3,而不能改成5.
(setq chicun (+ chicun zhixian))
(princ zhixian)
(if (= n (+ 1 i))
(if (> n 1)
(princ " = ")
)
(princ " + ")
)
)
(progn
(setq obj (vlax-ename->vla-object ent))
(setq quxian (vla-get-arclength obj))
(setq chicun (+ chicun quxian))
(princ quxian)
(if (= n (+ 1 i))
(if (> n 1)
(princ " = ")
)
(princ " + ")
)
)
)
(setq i (1+ i))
)
(if (> n 1)
(princ chicun)
)
(princ)
)
;; 曲线长度
(defun CurveLength (ename)
(vlax-curve-getDistAtParam
ename
(vlax-curve-getEndParam ename)
)
) xyp1964 发表于 2013-11-30 16:50 static/image/common/back.gif
非常感谢!有许多Activex命令,要去哪里找得到啊?
页:
[1]