按选择集名称选择,
当AutoCAD要求为修剪命令选择对象时,有什么方法可以选择选择集中的图元吗? 我不确定我是否理解您的问题-您可以使用ssget获取选择集,然后将其传递给trim命令,或者您正在寻找其他内容? 李,我一直在写一些代码来绘制平面图中的楼梯。
到目前为止,我有这个;
就在原始阶段,它会询问两个点楼梯的方向、宽度,然后是台阶的长度。我的想法是将其开发成一个工具,在其中绘制楼梯平面图,包括步骤编号、尺寸、扶手、1.2米以上虚线所示的步骤等。。。
在这里的代码中,它直接询问将根据用户输入的楼层高度和高度计算的步长数。
上述怀疑是为了修剪扶手内的踏步线。到目前为止,它可以修剪扶手内的任何东西。我只是想在trim命令激活时选择“仅阶梯线”。
(defun c:str()
(setq osm (getvar "OSMODE"))
(setq Layer (getvar "CLAYER"))
(setvar "OSMODE" 15359)
(setq P1 (getpoint "\npick point P1:"))
(setq P2 (getpoint P1 "\npick point P2:"))
(setq dir (angle p1 p2))
(setq nor (+ (dtor 90) dir))
(setq Width (getdist "\nStair Width:"))
(setq HWidth (/ Width 2))
(setq Steps (getint "\nNumber of Steps:"))
(setq Going (getdist "Going:"))
(setq P3 (polar p1 (+(dtor 180) nor) HWidth))
(setq P4 (polar p1 nor HWidth))
(setq p6 (polar p4 dir (* (- Steps 1) Going)))
(setq P7 (polar p4 (+ (dtor 180) nor) 0.05))
(setq P8 (polar p7 (+ (dtor 90) nor) 0.20))
(setq P9 (polar p6 (+ (dtor 180) nor) 0.05))
(setq P10 (polar p9 (+ (dtor 270) nor) 0.20))
(setq P11 (polar p10 (+ (dtor 180) nor) 0.05))
(setq p12 (polar p8 (+ (dtor 180) nor) 0.05))
(setq ctpA1 (polar p7 (+ (dtor 182) dir) 0.01))
(setq ctpA2 (polar p9 (+ (dtor 358) dir) 0.01))
(setvar "OSMODE" 0)
(setvar "CLAYER" "A-FLOR-HRAL")
(command "_PLINE" p8 p7 p9 p10 p11 p12 "C")
(setq n 1)
(repeat Steps
(if
(> n 4)
(setvar "CLAYER" "A-DETL-HIDN")
(setvar "CLAYER" "A-FLOR-STRS")
)
(command "Line" p3 P4 "")
(setq P3 (polar P3 dir Going))
(setq P4 (polar P4 dir Going))
(setq n (1+ n))
);Repeat
(command "_TRIM" "" "F" ctpA1 ctpA2 "" "")
(setvar "OSMODE" OSM)
(setvar "CLAYER" Layer)
);Defun
(defun dtor (d)
(* d 0.01745329)
)
(defun rtod (r)
(* r 57.2958)
)
我假设扶手已经拉好了,你想把楼梯修一修,使其与扶手吻合吗? 不完全是李。。。。,上面的代码绘制了0.05m厚的扶手。我想把台阶修到单轨的厚度以内。请查看所附图片。。。
因为我使用代码;
(command "_TRIM" "" "F" ctpA1 ctpA2 "" "")
它可以修剪扶手宽度内的任何东西。我想创建一个步长线的选择集,并将其用于修剪,以避免修剪命令修剪存在的其他实体(如果有的话)。 为什么不使用命令Extrim? 嗯,这也会修剪多段线内的所有内容。。。。
试试看,你会自己发现的 相反,我会在扶手两侧创建线条(因为您知道扶手的宽度)。
页:
[1]
2