乐筑天下

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

[编程交流] 用一个以上blo替换

[复制链接]

19

主题

59

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 22:19:26 | 显示全部楼层 |阅读模式
是否可以在图形中选择多个块,而不是设置一个块,选择插入。草图中存在所需的块。我会输入他们的名字。
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 22:39:47 | 显示全部楼层
这可能吗?
http://www.ellenfinkelstein.com/acadblog/replace-one-block-with-another/
回复

使用道具 举报

19

主题

59

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 23:04:03 | 显示全部楼层
还有一个问题。我添加了一个点来插入块,如果可以,请删除插入块下方的项目。
回复

使用道具 举报

19

主题

59

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-5 23:13:15 | 显示全部楼层
我将这两种语言组合成一个Lisp。我做了一些小的修改,为我工作。我一次选择都没能得到我的区块。这一切都有可能缩短。
 
 
(定义c:setnb(/ss adoc pt\U lst center blk*error*bi bname bpat)
;;;选定图元到命名块
(提示“\n-----选择一组块------:”)
(setq bpat“块-”)
(defun*错误*(msg)
(vla endundomark adoc)
(普林斯消息)
(普林斯)
) ;_ defun结束
(vl load com)
(vla startundomark)
(setq adoc(vla get activedocument(vlax get acad object)))
) ;_ vla StartUndoMark结束
(如果(不是)(vl-catch-all-error-p
(vl catch all apply’(λ()(setq ss(ssget“_:L”)))
) ;_ vl-catch-all-error-p结束
) ;_ not结束
(程序
(setq)
ss(mapcar“vlax ename->vla对象
(vl remove if“listp(mapcar”cadr(ssnamex ss)))
) ;_ mapcar结束
pt\U lst(应用“附加
(地图车
(λ(x/minp-maxp)
(vla getboundingbox x“minp”maxp)
(列表(vlax safearray->list minp)
(vlax safearray->list maxp)
) ;_ 追加结束
) ;_ lambda结束
不锈钢
) ;_ mapcar结束
) ;_ 追加结束
中心(mapcar’(λ(a b)(/(+a b)2))
(列表(应用“min(mapcar”car pt\u lst))
(应用“min(mapcar”cadr pt\U lst))
(应用“min(mapcar”caddr pt\U lst))
) ;_ 列表结束
(列表(应用“max(mapcar)”car pt\U lst)
(应用“max(mapcar”cadr pt\U lst))
(应用“max(mapcar”caddr pt\U lst))
) ;_ 列表结束
) ;_ mapcar结束
B名称
(程序
(setq bi 0)
(while(tblsearch“BLOCK”(setq bname(strcat bpat)(itoa(setq bi(1+bi 107;)Ю)Ю))))
bname)
blk(vla add(vla get blocks adoc)
(vlax-3d-点中心)
B名称
) ;_ vla添加结束
) ;_ setq结束
(vla copyobjects
adoc公司
(vlax make变体
(vlax安全阵列填充
(vlax make safearray vlax vbobject(cons 0(1-(length ss)))
不锈钢
) ;_ vlax安全阵列填充结束
) ;_ vlax make变体结束
黑色
) ;_ vla copyobjects结束
(vla插入块
(vla objectidtoobject adoc(vla get ownerid(car ss)))
(vlax-3d-点中心)
(vla get name blk)
0.8                 ;比例x
0.8                 ;比例y
0.8                 ;缩放z
0.0                 ;旋转
) ;_ vla插入块末端
(mapcar’vla擦除ss)
) ;_ 结束和
) ;_ if结束
(vla endundomark adoc)
(普林斯)
) ;_ defun结束
(setvar“clayer”“MYLAYER”)
 
(定义C:CB()
(提示“\n------再次成为块的选择性组------:”)
(setq ss(ssget))
(setq索引0)
(setvar“clayer”“MYLAYER”)
(重复(sslength ss)
(setq e(entget(ssname ss index)))
(setq as(assoc 2 e))
(setq e(subst(cons 2“MYBLOCKNAME”)作为e))
(entmod e)
(setq指数(+1指数))
)
(普林斯)
)
(defun c:lispEcho()
(c:setnb)
(c:cb)
(普林斯)
)
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 23:23:00 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:27 , Processed in 0.622803 second(s), 62 queries .

© 2020-2025 乐筑天下

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