你好!我相求一个程序
发布网友
发布时间:2024-03-30 11:46
我来回答
共1个回答
热心网友
时间:2024-12-13 10:26
(defun c:CD1 ( / &k1 ent #k1 %k1 ob st en L1 pm)
(if (null vlax-mp-object) (vl-load-com) ) ;;加载vlax扩展函数
(setq &k1 (entsel "\n请选择直线或多段线"))
(if (/= &k1 nil)
(progn
(setq ent (car &k1)
#k1 (entget ent)
%k1 (cdr (assoc 0 #k1))
)
(if (= %k1 "LWPOLYLINE")
(progn
(Setq ob (Vlax-Ename->Vla-Object ent) ;;转换为VLA对象
st (Vlax-curve-getStartPoint ob) ;;取得曲线开始点
en (Vlax-curve-getEndPoint ob);;取得曲线结束点
L1 (Vlax-curve-getDistAtpoint ob en);;取得曲线长度
pm (vlax-curve-getPointAtDist ob (* L1 0.5));;取得曲线中点
)
(princ "\n多段线长度为")(princ L1)
)
)
)
)
(prin1)
);这个程序是测量不封闭的多段线
(defun c:cd2 ( / &k1 ent L1)
(setq &k1 (entsel "\n请选择直线或多段线"))
(if (/= &k1 nil)
(progn
(setq ent (car &k1))
(command "Lengthen" ent "");;返回对象的长度包括直线;矩形;多段线;端点;圆
(setq L1 (getvar "perimeter"))
(princ "\n多段线长度为")(princ L1)
)
)
(prin1)
);;这个Lengthen命令在AutoCAD2015版本增加了新的功能,所以这个命令还要完善才可以