如果直线是到多段线之间的最短路径,步骤50也是到上多段线(在最后一种情况下),那么这将是很好的:)但是关于尺寸,它可行吗? 因此,您需要一个lisp,它在3种可能性之间交替:
[列表=1]
[*]始终垂直于其中一条多段线;或
[*]如果直线的非perp端点之间的距离小于指定的距离,则将be perp替换为另一条多段线;或
[*]如果直线要相互交叉,请使用我在第6篇文章中的方法
[/列表]
我理解正确吗?
对不起,您想要什么尺寸?指的是50个单元?或者你们想把维度放在这个地方吗? 如果两条线相互交叉,但始终垂直且“步长50”与第一条多段线,则可以。
我喜欢把新行的维度放在我的帖子9上。 除非我误解了,否则不妨尝试以下方式:
(defunc:test(/d1 d2 d3 e1 e2 ip p1 sp xl)(if(and(setqe1(LM:ssget'”\n选择第一条多段线:“'(“LWDOLYNE”]]))(setqe2(LM:ssget[颜色=栗色]“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progn(initget6)(setqd1(getdist]))(progn(setqd3(-d1)e1(ssnamee1 0)e2(vla ename->vla object(ssnamee2 0))d2(vlax curve getdistatparame1(vlax get property(vla get activedocument(vlax get acad object)(if(=1(getvar'cvport))“paperspace”modelspace))(while( 或者可能:
(defunc:test(/a1 d1 d2 d3 e1 e2 ip p1 p2 sp xl zv)(if(and(setqe1(LM:ssget'“\n选择第一条多段线:”'(]“)::E:S”((0“LWPOLYLINE”')))qe2(LM:ssget“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progn(initget6)(setqd1(getdist]))(progn(setqd3(-d1)e1(ssnamee1 0)e2(vla ename->vla object(ssnamee2 0))d2(vlax曲线getdistatparame1(trans'(0.0.0 1.0)1 0t)sp(vlax get property(vla get activedocument(vlax get acad object)(if(=1(getvar'cvport))“paperspace”modelspace))(while( 你是李·麦克!这就是我的意思,但如何像我在帖子#9中展示的那样添加维度。(如L=124.20m)
为凤凰干杯,见16号帖子 这又像圣诞节了,送给我的礼物是:震惊:非常感谢!!!
但是,如何将所有新的线条和尺寸放在图层“尺寸”中,并使它们变成红色和虚线2。
当多段线相互交叉时,是否可以编写if语句。使线条为黄色,尺寸为负数(见下图)。那太好了!!!
不客气,你让我心情很好
属性更改很简单,交叉多段线的测试并不那么简单:
(defunc:test(/a1 d1 d2 d3 e1 e2 ip p1 p2 sp xl zv)(if(and(setqe1(LM:ssget'“\n选择第一条多段线:”'(]“)::E:S”((0“LWPOLYLINE”')))qe2(LM:ssget“\n选择第二条多段线:”'(“+:E:S”((0。“LWPOLYLINE”]]])(progn(initget6)(setqd1(getdist]))(progn(setqd3(-d1)e1(ssnamee1 0)e2([color=B
页:
1
[2]