没问题,我正在尽我最大的努力向李·麦克和塔瓦这样的人学习——没有他们,你不会看到我发来的代码,但我相信他们会帮你。 您好,Grrr,
我试图修改你的代码,添加第二层,随着增量一起复制。
层“frame”已经是了,所以我添加了层“marks”来执行相同的操作(参见第3行和第4行)。
我换了黄色灯的代码。我得到了“参数太多”的错误。我哪里出错了?
谢谢
; 按层设置的间距选择
(定义C:测试2(/lnm lnm2 SS b L p acDoc Lyrs Lyrs2 ln d ln ll ur pl)
(setq lnm“帧”);
(setq lnm2“标记”)
(续)
((not(和(setq SS(ssget“_:L-I”))(princ“\n按对象的层选择空间:”))
(princ“\n未选择任何内容。”)
)
(
(不是
(程序
(vlax代表o(setq SS(vla get ActiveSelectionSet(vla get ActiveDocument(vlax get acad object)))
(if(not(vl-catch-all-error-p(vl-catch-all-apply'vla GetBoundingBox(list o'll'ur)))
(setq b(附加b(mapcar’vlax safearray->list(list ll ur)))
)
(setq L(cons(list(vla get Layer o)o)L))
); vlax for
(vla删除SS)
(和
(或
(和b(setq b(mapcar’(λ(a b)(/(+a b)2))(应用“mapcar(cons”min b))(应用“mapcar(cons”max b 1000;)Ϩ)
(setq b(getpoint“\n指定基点:”)
)
(setq p(getpoint b“\n指定方向和间距:”)
)
); 程序
); 不
(princ“\n未指定位置。”)
)
(p
(setq acDoc(vla get ActiveDocument(vlax get acad object)))
(vla EndUndoMark acDoc)(vla StartUndoMark acDoc)
(mapcar’(lambda(x y)(cond((member x Lyrs y Lyrs2))((setq Lyrs(cons x Lyrs)setq Lyrs2(cons y Lyrs2))))(mapcar‘car L))
(
(λ(x y)
(和acDoc(tblsearch“LAYER”x y)(成员lnm Lyrs lnm2 Lyrs2)(等式(vla get Lock(vla item(vla get Layers acDoc)x y)):vlax false)(setq ln x y))
)
lnm lnm2
)
(地图车
'(λ(x y)
(续)
(d(setq d(+d(距离b p)))
((setq d(距离b p)))
)
(地图车
'(λ(o)
(如果(=x(车o))
(程序
(应用“vla Move(append(list(cadr o))(setq pl(mapcar”vlax-3D-point(list)(0.0.0))(极坐标'(0.0.0。)(角度b p)d \щщ)щ)
(if ln(mapcar’(lambda(fr/c)(if(=(car fr)ln)(progn(setq c(vla Copy(cadr fr))))(应用“vla Move(append(list c)pl 990;ϞϞ)])L))
)
)
)
L
)
)
(vl remove ln(acad\U strlsort Lyrs))
)
(vla EndUndoMark acDoc)
)
); 康德
(普林斯)
); 德芬
(vl load com)(原理)
页:
1
[2]