乐筑天下

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

[编程交流] 动态块替换失败

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:21:29 | 显示全部楼层 |阅读模式
尊敬的各位:,
 
 
我在替换块(标题栏)时遇到问题,它有时是动态块。
当用新块替换块时,当涉及动态块时,我会得到lselsetp nil错误。
 
 
我试图做的是:
 
 
-我试图通过按名称查找来替换块(因此由于脚本的原因,不需要手动选择)
-读取旧块的坐标
-读取旧块的比例
-删除块
-清除图形中所有未使用的块
-在图形中以正确的比例和坐标插入新的
 
 
A0KILL确实适用于静态块,但有人在我们的图形中使用了动态块。现在我必须手工绘制15000张图。
 
 
有人能帮我解决这个问题吗?
 
 
(旧区块名为OHTITLE,新区块名为OH-TITLE)
 
 
(DEFUN C:A0KILL()
(setq OHINS(cdr(assoc 10(entget(ssname(ssget“X”'((2。“OHTITLE”)))0 ()))))))
(setq OHX(cdr(assoc 41(entget(ssname(ssget“X”'((2.“OHTITLE”))0 ()))))))
(setq ss(ssget“X”'((0。“插入”)(2。“OHTITLE”)))
(命令“擦除”ss“”)
(重复3次
(命令“_.purge”“\u B”“*”“\u N”)
) ; 结束重复
(命令
“-插入”;命令
“K:\\AutoCAD Standaard\\2014\\ALGEMEEN\\Kaders\\Titelh\\Nederlands\\A0\\OH-TITLE.DWG”;块名称
OHINS公司
OHX公司
""
)
(setq OHINS nil)
(setqoh OHX无)
(setq ss nil)
)
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:31:12 | 显示全部楼层
 
 
你好,马塞尔,
 
 
动态块有一个动态名称(*U),因此必须获得其有效名称。也许我的RlxBlk可以胜任这份工作,但我需要一些示例图和标题栏来测试它。
 
 
gr.Rlx
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:38:13 | 显示全部楼层
你好,Rlx,
 
 
这是我的积木和样图
 
 
尔兹
马塞尔
205088-0003.图纸
OH标题。图纸
OH-TITLE。图纸
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:43:51 | 显示全部楼层
霍伊·马塞尔,
 
 
认为RlxBlk可以完成这项工作,甚至可能在文件夹上,但你必须自己测试(在备份上)。只需确保清除主对话框中除值切换之外的所有属性属性。在下面的几个帖子里,你可以找到这个惯例。您可以使用1:1按钮链接所有属性,这样您就不必键入所有数据。只需打开一个图形,旧块是OHTITLE(选择与列表按钮旁边的左图),选择新的标题栏与文件按钮旁边的右图,链接的属性,这应该做到这一点。。。
 
 
如果成功,您可以尝试使用文件夹按钮创建一个完整的文件夹,但同样,请先在备份上进行测试。
 
 
gr.Rlx
172133o9yjg12uc8g18ytb.jpg
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:46:09 | 显示全部楼层
我试试Rlx!
但是我可以在没有脚本交互的情况下完成吗?
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:52:51 | 显示全部楼层
 
 
不是以它当前的形式,它只是我的愿望列表中的一件事,尽管这不是一件大事,因为人们只需要绕过主子程序中的对话框。由于该项目相对较新,因此必须首先赢得我的信心。但是,如果文件夹选项按预期工作,它应该相当快,以便您可以在以后编写脚本。
 
 
gr.Rlx
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 17:00:57 | 显示全部楼层
 
 
您可以向程序中添加类似的内容(未经测试):
 
 
  1. (defun c:RlxBlk_Script ()(RlxBlk_Init)(RlxBlk_Doit)(command ".qsave"))

 
 
让脚本加载RlxBlk并使用(c:RlxBlk\u脚本)调用程序。如果脚本保存图形,则可以在代码中释放命令调用。
 
 
Gr.Rlx
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:09:14 | 显示全部楼层
这可能会有所帮助,因为我尝试将其放在一个命令中。我也有A4和A3标题栏的图纸。他们正在使用我的A0Kill命令,但不是动态块。
这样,我可以一次选择数千个图形并打开它们,执行块替换命令,将属性从我的edm系统同步到新块,qsave并关闭图形,然后继续下一个图形。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 17:14:14 | 显示全部楼层
如果可以,很好,如果不行,你也可以更新自己的代码,因为我的应用程序在你的情况下可能有点过头了
 
 
(快速编写,完全未经测试)
 
 
  1. (defun c:A0Kill-2 ( / fn oatr ss i e blk n ohins ohx)
  2. (vl-load-com)
  3. (setq oatr (setvar "ATTREQ")) (setvar "ATTREQ" 0)
  4. (if (and (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 "`*U*,OHTITLE" ))))
  5.    (setq fn
  6.    (findfile
  7.      "K:\\AutoCAD Standaard\\2014\\ALGEMEEN\\Kaders\\Titelh\\Nederlands\\A0\\OH-TITLE.DWG")))
  8.    (progn
  9.      (repeat (setq i (sslength ss))
  10. (setq obj (vlax-ename->vla-object (setq blk (ssname ss (setq i (1- i))))))
  11. (if (vlax-property-available-p obj 'effectivename)
  12.   (setq n (vla-get-effectivename obj))(setq n (vla-get-name obj)))
  13. (if (wcmatch (strcase n) "OHTITLE")
  14.   (progn
  15.     (setq ohins (cdr (assoc 10 (entget blk))) ohx (cdr (assoc 41 (entget blk))))
  16.     (vla-delete obj)
  17.     (command "-insert" fn ohins ohx "")
  18.   )
  19. )
  20.      )
  21.    )
  22. )
  23. (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))
  24. (setvar "ATTREQ" oatr)
  25. (princ)
  26. )

 
 
成功!
 
 
gr.Rlx
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:18:24 | 显示全部楼层
请阅读代码发布指南,并编辑代码以包含在代码标签中。[NOPARSE]
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 18:29 , Processed in 2.359449 second(s), 74 queries .

© 2020-2025 乐筑天下

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