cedwards 发表于 2022-7-6 12:29:35

更新DWG中的所有块

我想知道是否有人可以帮我修改这个Lisp程序,我发现或如果有人有一个可以帮助我。
 
我需要lisp更新/重新定义当前dwg中的所有块。附加的一个工作非常好,但它将是完美的,如果我可以定义一个支持路径,而不是选择它。
 
提前感谢您的帮助。
 
(defun BrowseForFolder(text Rootfolder/ret y)(setq y(vlax get or create object“shell.application”)(if(setq ret(vlax invoke y“BrowseForFolder”0 text 1 Rootfolder))(setq ret(vlax get(vlax get ret“Self”)“Path”))(vlax release object y)ret)(defun get\u table(table/tb tb\u ls)(setq tb(tblnext table t)tb\u ls nil)(而tb(cond(((=(strcase table)“STYLE”)(if(=(布尔1(cdr(assoc 70 tb))1)0);比特1 bedeutet Symboleintrag,keine Schrift!(setq tb_ls(append tb_ls(list(cdr(assoc 2 tb)Ю)))((=(strcase table)“BLOCK”)(if(/=(substr(cdr(assoc 2 tb))1)“*”)(setq tb_ls(list(cdr(assoc 2 tbЮЮ)))(t(setq tb_ls(append tb_ls(list(cdr(assoc 2 tbЮ)))))(setq tb(tblnext table))(setq tb_ls(vl排序tb\U ls'

wkplan 发表于 2022-7-6 12:46:55

支持路径在变量“bl_pfad”中定义了两次。
我所做的:只需注释掉调用shell并选择路径的部分代码,然后硬编码路径。
(查找:(setq bl_pfad“D:\\测试”);;;+++将目录路径放在这里“
 
你必须根据自己的需要调整路径。
 
这当然不是解决这个问题的最佳方法,但它确实有效:wink:
 
当做
沃尔夫冈
 
(defun BrowseForFolder(text Rootfolder/ret y)(setq y(vlax get or create object“shell.application”)(if(setq ret(vlax invoke y“BrowseForFolder”0 text 1 Rootfolder))(setq ret(vlax get(vlax get ret“Self”)“Path”))(vlax release object y)ret)(defun get\u table(table/tb tb\u ls)(setq tb(tblnext table t)tb\u ls nil)(而tb(cond(((=(strcase table)“STYLE”)(if(=(布尔1(cdr(assoc 70 tb))1)0);比特1 bedeutet Symboleintrag,keine Schrift!(setq tb_ls(append tb_ls(list(cdr(assoc 2 tb)Ю)))((=(strcase table)“BLOCK”)(if(/=(substr(cdr(assoc 2 tb))1)“*”)(setq tb_ls(list(cdr(assoc 2 tbЮЮ)))(t(setq tb_ls(append tb_ls(list(cdr(assoc 2 tbЮ)))))(setq tb(tblnext table))(setq tb_ls(vl排序tb\U ls'

gilsoto13 发表于 2022-7-6 13:02:45

 
我现在就去看看。。可能需要。。。

gilsoto13 发表于 2022-7-6 13:16:51

 
是的,它是有效的。。。
但我认为也可以使用附加的lisp(Blockimport.lsp)将该目录中的所有块插入到新图形中,然后将图形中的所有块复制粘贴到新图形中,这样autocad将忽略从旧图形复制的以前版本,并使用块导入将已插入的新版本保留在新图形中。。。
 
也许有两种方法可以做到这一点。。。这一次似乎需要更多的时间。。。但出于某种原因,我更喜欢。。
BI。lsp

wkplan 发表于 2022-7-6 13:29:51

 
嗨gilsoto13,
 
CAB的代码始终是学习lisp的好建议。
这是(像往常一样)一个注释良好的代码,您可以逐行查看发生了什么。
“BrowseForFolder”也有很好的评论,但用的是德语。
 
这里有很多Lisp程序的问题。
 
对我来说,理解lisp是如何工作的很重要,看看它做了什么。
这使我有机会了解更多关于lisp的信息,修改或组合它们,并构建其他lisp,帮助我进行日常cad。
 
所以,如果你喜欢一个特殊的lisp,如果它完全符合你的需要,那么很高兴你找到了它。
 
当做
沃尔夫冈
页: [1]
查看完整版本: 更新DWG中的所有块