你好!(defun c:ls() (command "LENGTHEN""DE")) 这个延伸功能,有什么方法可以使用框选延伸?谢谢~

 我来答
朱06CAD
2016-09-03 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
  1. 延伸曲线不是这样使用的。

  2. 在程序里面,延伸曲线的话,需要进行计算,然后得到坐标,修改曲线的属性,改变长度。

  3. 认真学习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。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式