利用lisp给cad直线取整? 20
假设我有两条直线,它们的起点终点坐标如下,line1(0,0,0;100.005,0,0),line2(100.005,0,0;200,0,0),现在我想利用lisp四舍...
假设我有两条直线,它们的起点终点坐标如下,line1(0,0,0;100.005,0,0),line2(100.005,0,0;200,0,0),现在我想利用lisp四舍五入使两个线段的长度都为整数100,就是线段的坐标变为,line1(0,0,0;100,0,0),line2(100,0,0;200,0,0),(实际情况中我可能有许多这样的直线需要处理)请问如何实现?谢谢!
展开
2个回答
2016-09-22 · 知道合伙人软件行家
关注
展开全部
写了一个autolisp,修改直线端点位置,使其长度变整数。代码如下:
(defun c:tes ( / &ang1 &dis1 &k1 &kw1 &ob1 &p1)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) )
(princ "\n请选择直线")
(if (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 &dis1 (atof (rtos (vlax-curve-getDistAtParam &ob1 (vlax-curve-getEndParam &ob1)) 2 0)))
(setq &p1 (vlax-curve-getStartPoint &ob1) &ang1 (vla-get-Angle &ob1))
(setq &p1 (Vlax-3d-Point (polar &p1 &ang1 &dis1)))
(vla-put-EndPoint &ob1 &p1)
);while
)
)
(princ)
)
追问
追答
这个情况的话,程序需要分析对象,需要参考点坐标。【比如:轴线】,各种情况需要分析。必须有dwg图纸。另外有偿写程序。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |