pmxcad 发表于 2022-7-6 09:05:28

巴特曼同步

你好
 
问题:
我有大约25幅画,需要更新一个街区。该块具有新属性。通常我必须打开图纸,插入修改后的块,运行battman并点击sync按钮。
 
对于所有选定的图形,是否有lisp可以一次完成此操作?像选择图形一样,选择块文件,然后运行battman,sync。然后更新所有选定的图形。
 
谢谢

Tharwat 发表于 2022-7-6 09:15:37

试试这个伙计。
 

(defun c:Test (/ ss)
;; Tharwat 31. 07. 2011
(if (setq ss (ssget "_x" '((0 . "INSERT") (66 . 1))))
   (command "_.attsync" "_select" ss "" "_Yes")
)
(princ)
)

 
塔瓦特

pmxcad 发表于 2022-7-6 09:24:53

 
 
 
OK Tarwat。。。。。。。。。。。。。。。。。。。
它是如何工作的?
 
我想选择多个图形,并选择一个具有该新属性的外部块文件,并将battman/sync应用于所有选定图形。
 
储罐

Tharwat 发表于 2022-7-6 09:31:05

将代码复制到命令行并进行类型测试,以更新当前图形中的所有att块,但它不适用于选定图形(因为这是一个非常大的问题)
常规和超出我能力范围)
 
所以有总比没有好。
 
顺便说一句,这是塔瓦而不是塔瓦。
 
享受它。

pmxcad 发表于 2022-7-6 09:33:37

抱歉Tharwat,
 
是否可以将此lisp转换为脚本(scr)?
我有Autcad electrical,可以运行项目范围内的脚本。
我可以为项目中的所有图形运行脚本。因此,如果可以将lisp转换为脚本,那将是非常好的。
 
谢谢

Tharwat 发表于 2022-7-6 09:40:05

不用担心,伙计。
 
我已经很长时间没有使用脚本了,但我认为下面的脚本是正确的,请尝试并告诉我。
 
代码必须在三行中。
 

attsync
select
(setq ss (ssget "_x" '((0 . "INSERT") (66 . 1))))

irneb 发表于 2022-7-6 09:48:04

实际上,如果你知道块的名称,你甚至不需要Lisp程序。。。只需通过ScriptPro/AutoScript/EZScript/Lee的ScriptWriter/BatchLisp等直接在SCR文件中运行它。您的脚本如下所示:
AttSync Name MyBlockName
QSAVE
 
不过我真正想要的是让BAttMan/AttSync只在选定的块上工作。。。注意当块被镜像时他们做了什么!

pmxcad 发表于 2022-7-6 09:53:32

你没有动态块的问题。。。。。。。。。。。。
 
pmxcad

Tharwat 发表于 2022-7-6 09:59:31

 
这是你尝试代码的结果吗?

pmxcad 发表于 2022-7-6 10:10:32

是的。。。。。。。。。。。。顶部超级的
谢谢
页: [1]
查看完整版本: 巴特曼同步