将2条线/线连接成一个sin
您好,有人能帮我吗?我正在研究轮廓的自动矢量化,我迫切需要一个lisp来实现这一点:
假设我有很多柱脚线和直线,我需要将它们连接在一条多段线中。这是一个lisp,它将:
1) 询问第一条线路/线路
2) 询问第二条线路/线路
3) 将线转换为柱脚线
4) 在它们最近的顶点之间绘制一条pline
5) 连接3个柱脚
6) 询问第一条线路/线路
等等
我需要这样做,即要求第一行/多行(单击),第二行(单击完成),第一行(单击),第二行(单击完成),这样我就不会每次调用lisp。
请参阅所附图片。
(defun C:TEST (/ Fuzz)
(setq Fuzz (getreal "\nEnter fuzz distance: "))
(while t
(command "_.PEDIT"
"_M"
(entsel)
(entsel)
""
"_J"
"_J"
"_A"
Fuzz
""
)
)
)
谢谢你,vovka。
使用模糊距离确实有效,但问题是,在选择一条直线后,它会问我pedit问题“将直线和圆弧转换为多段线?”然后给我pedit命令的选择。这可以自动完成吗?也就是说,输入默认答案“是”将其转换为多段线,然后不提供pedit命令的选择?因为我必须按ESC键,这将我抛出lisp,我必须重新进入lisp。
设置Peditacept=1 完美的
谢谢你们俩。
这可以在没有模糊距离的情况下完成吗?反问句 删除(setq Fuzz(getreal“\n输入模糊距离:”)行
并将Fuzz变量inside(命令表达式)更改为比通常的线间距大一些的值。我们无法知道图形的尺寸。 没有模糊请求:
(defun c:jln(/ l1 l2 fz)
(setvar "PEDITACCEPT" 1)
(if
(and
(setq l1(entsel "\nSelect first line > "))
(setq l2(entsel "\nSelect second line > "))
(setq fz(distance(cadr l1)(cadr l2)))
(vl-cmdf "_.pedit" "_m" (car l1)(car l2) "" "_j" "_j" "_a" fz "")
); end and
(c:jln)
); end if
(princ)
); end c:jln 非常感谢。
我需要那个密码
很 完美!!
非常感谢!
如果你不想改变培他西普(我无法想象为什么有人不想改变它)
你可以这样做:
(if
(equal (getvar 'peditaccept) 1)
(command "pedit" "m" lines "" "j" "" "")
(command "pedit" "m" lines "" "y" "j" "" "")
);if
我从我的日常生活中吸取了这一点,它将很快加入我的直线/普林线/弧。
页:
[1]
2