你好!(defun c:ls() (command "LENGTHEN""DE")) 这个延伸功能,有什么方法可以使用框选延伸?谢谢~
1个回答
2016-09-03 · 知道合伙人软件行家
关注
展开全部
延伸曲线不是这样使用的。
在程序里面,延伸曲线的话,需要进行计算,然后得到坐标,修改曲线的属性,改变长度。
认真学习autolisp的基础知识,打好基础。推荐内容【AutoCAD程序设计魔法书 [AutoLISP DCL基础篇]】
追问
如果是一般的线段、多段线(非曲线延伸)如何框选延伸?除了使用F栏选以外还有什么功能更加便捷?谢谢!
追答
你误解了程序,程序可以调用命令,也可以创建命令。简单的直线延伸指定长度,autolisp代码如下:
(defun c:tes ( / &ang1 &dis &k1 &kw1 &ob1 &p1)
(vl-load-com)
(initget 6)
(if (and (setq &dis (getdist "\n请输入直线延伸长度"))
(setq &dis (* &dis))
(princ "\n请选择直线")
(setq &kw1 (ssget '((0 . "LINE"))))
)
(progn
(while (setq &k1 (ssname &kw1 0))
(setq &kw1 (ssdel &k1 &kw1))
(setq &ob1 (vlax-ename->vla-object &k1))
(setq &ang1 (vla-get-angle &ob1));提取直线角度
(setq &p1 (vlax-curve-getStartPoint &ob1) &p1 (polar &p1 &ang1 (* &dis -1.0)) &p1 (vlax-3D-point &p1))
(vla-put-StartPoint &ob1 &p1);改变直线起点坐标
(setq &p1 (vlax-curve-getEndPoint &ob1) &p1 (polar &p1 &ang1 &dis) &p1 (vlax-3D-point &p1))
(vla-put-EndPoint &ob1 &p1);改变直线端点坐标
);while
)
)
(princ)
);直线两端向外延伸指定长度autolisp。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询