连续圆角LISP
你好有没有人有可以运行连续圆角的LISP。我想要圆角一束交叉的线,而不必反复执行命令。它只需将上一条选定的线与下一条线(例如,楼梯的示意图轮廓)剪裁在一起。如果它也能自动转换成Pline,那将很酷,但不是nec。谢谢
亚伦 不是Lisp程序,但试着将菜单按钮改为-
*^C^C_圆角
“*”告诉它重复这个命令,所以一旦你点击了它,如果你想给它一个半径,你只需要继续拾取你想要圆角的线。
按Esc键停止重复。 走出门,所以我无法完成,但它基本上就在那里。。。
(defun c:CF (/ e1 e2)
(while (and (setq e1 (entsel "\nSelect curve: "))
(or (vl-position (cdr (assoc 0 (entget e1))) '("ARC" "LINE" "LWPOLYLINE"))
(alert "Invalid object!"))
(setq e2 (entsel "\nSelect other curve: "))
(or (vl-position (cdr (assoc 0 (entget e2))) '("ARC" "LINE" "LWPOLYLINE"))
(alert "Invalid object!"))
(vl-cmdf "_.fillet" e1 e2)
(vl-cmdf "_.pedit"
很抱歉 酷,这是一个快速的选择,但它仍然需要我选择一行两次。感谢*上的提示。
我也在试这个。我不太精通LISP,所以可能需要一点时间。谢谢 对不起,我没有时间提前完成。。。
(defun c:CF (/ e1 e2)
(vl-load-com)
(while (and (setq e1 (entsel "\nSelect curve: "))
(or (vl-position (cdr (assoc 0 (entget (car e1)))) '("ARC" "LINE" "LWPOLYLINE"))
(alert "Invalid object!")
) ;_ or
(setq e2 (entsel "\nSelect other curve: "))
(or (vl-position (cdr (assoc 0 (entget (car e2)))) '("ARC" "LINE" "LWPOLYLINE"))
(alert "Invalid object!")
) ;_ or
(vl-cmdf "_.fillet" e1 e2)
(if (zerop (getvar 'peditaccept))
(vl-cmdf "_.pedit" "_m" (ssadd (car e1) (ssadd (car e2))) "" "_y" "_j" "" "")
(vl-cmdf "_.pedit" "_m" (ssadd (car e1) (ssadd (car e2))) "" "_j" "" "")
) ;_ if
) ;_ and
) ;_ while
(princ)
) ;_ defun
这类似于将“*”添加到comand。更好的是,它使新线成为多段线。那部分很酷。这就是我的想法<我希望能够选择线(在图表A中)7、A、6、B、5、C。。。。等等,通过按顺序单击仅选择这些线来实现附件B中的多段线楼梯模式。现在我必须点击7,然后点击A,再点击A,再点击6,再点击6,再点击B等等。这有意义吗?
我非常感谢你的帮助。谢谢 试试这个:
http://www.nyacad.com/NYacadFREE.htm
安装并使用ff运行。
除此之外,还有很多其他商品。
除非李突然有了新的想法。 不客气。它按你的要求做。 您可以在所有直线上绘制一条直线,然后计算每条交叉线的交点,并根据从起点到新点的直线长度进行排序。
然后它只是圆角pt1 pt2,pt1=pt2,新的pt2,圆角pt1 pt2等
我这样做是为了房屋平面图墙的自动尺寸标注。对不起,代码是版权所有的,但如果可能的话可以提供帮助。
页:
[1]
2