乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 2

[编程交流] 分层

[复制链接]

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:43:43 | 显示全部楼层 |阅读模式
大家好。
我有这些代码是由Grrr编写的。它所做的是获取相互叠加的层,并通过使用增量将其相邻放置来将其分离。提示最终用户选择对象、方向和增量值。在整个增量过程中,仅复制第3行中指示的层“帧”,因此沿每个分离的层出现。
所有其他层彼此相邻显示一次。我想添加第二层,用层“frame”沿增量进行复制,但我一直遇到“参数太多”错误。谁能帮帮我吗?谢谢
 
 
 
 
; 按层设置的间距选择
(定义C:测试(/lnm SS b L p acDoc Lyrs ln d ln ll ur pl)
(setq lnm“帧”);
(续)
((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)(cond((member x Lyrs))((setq Lyrs(cons x Lyrs)Ю)Ю))(mapcar‘car L))
(
(λ(x)
(和acDoc(tblsearch“LAYER”x)(成员lnm Lyrs)(等式(vla get Lock(vla item(vla get Layers acDoc)x)):vlax false)(setq ln x))
)
lnm公司
)  
(地图车
'(λ(x)
(续)
(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)(原理)
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:30:56 | 显示全部楼层
替换:
 
  1. (defun C:test ( / lnm SS b L p acDoc Lyrs ln d ln ll ur pl )

使用:
  1. (defun C:test ( / lnms SS b L p acDoc Lyrs d ll ur pl )

 
 
  1. (setq lnm "frame") ; <- Adjust the layer name here, to copy along the increment
=
  1. (setq lnms '("frame" "anotherlayer")) ; <- Adjust the layer names here, to copy along the increment
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:50:19 | 显示全部楼层
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:11 , Processed in 0.535440 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表