
- (defun $xiu-gai-wai-bu-dwg-ke-jian-xing$ (dwg tag-invisible
- / app blocks
- dbx doc dwg-n
- dwl invisible
- open-zt tag vrs
- )
- ;修改外部dwg的可见性,注意,1是不可见,0是可见
- ;($xiu-gai-wai-bu-dwg-ke-jian-xing$(zx-czwj "电线7.dwg" "")(list(cons "选项" 0)(cons "OPO" 0)(cons "OPS" 1)(CONS "备注哦" "1 是不可见,0是可见")))
- (if (and dwg
- (findfile dwg)
- (setq dwg-name (vl-filename-base dwg))
- tag-invisible
- (setq tags (mapcar 'car tag-invisible))
- )
- (progn
- (setq dbx
- (vl-catch-all-apply
- 'vla-getinterfaceobject
- (list (setq app (vlax-get-acad-object))
- (if (< (setq vrs (atoi (getvar 'acadver))) 16)
- "objectdbx.axdbdocument"
- (strcat "objectdbx.axdbdocument." (itoa vrs))
- )
- )
- )
- )
- (if (vl-catch-all-error-p dbx)
- (progn (setq dbx nil) (setq app nil))
- )
- (if
- (vl-mkdir
- (setq
- tmp (strcat
- (getenv "temp")
- "\\"
- (menucmd
- "M=$(edtime,$(getvar,date),YYYYMODDHHMMSSMSEC)"
- )
- )
- )
- ) ;
- ()
- (progn
- (setq tmp nil)
- (print "在temp目录下创建文件夹失败了,无法做块同步操作了")
- )
- )
- (and
- tmp
- dwg-name
- (vl-file-copy
- dwg
- (setq dwg-n (vl-filename-mktemp (strcat tmp "\\" "1.dwg")))
- ) ;复制一个dwg再打开
- (vl-file-rename
- dwg-n
- (setq dwg-n (strcat tmp "\\" dwg-name ".dwg")
- )
- )
- (setq dwg dwg-n)
- (setq
- open-zt (vl-catch-all-error-p
- (vl-catch-all-apply 'vla-open (list dbx dwg-n))
- )
- )
- (not (vl-catch-all-error-p open-zt))
- )
- (if
- (and (not (vl-catch-all-error-p open-zt))
- (setq doc dbx)
- )
- (progn
- (SETQ blockS (vla-get-block
- (vl-catch-all-apply
- 'vla-item
- (list (vla-get-layouts doc)
- "Model"
- )
- )
- )
- )
- (vlax-for object blockS
- (if
- (AND (= "AcDbAttributeDefinition"
- (vla-get-objectname object)
- )
- (setq tag (vla-get-tagstring object))
- (vl-position tag tags)
- (setq invisible (cdr (assoc tag tag-invisible)))
- )
- (progn
- (vl-catch-all-apply
- 'vla-put-invisible
- (list
- object
- invisible
- )
- )
- )
- )
- )
- (vl-catch-all-apply
- 'vla-saveas
- (list doc dwg-n)
- )
- )
- (princ (strcat "dwg打开失败了: "
- dwg-name
- ".dwg"
- )
- )
- )
- (if (= 'vla-object (type dbx))
- (vlax-release-object dbx)
- )
- )
- )
- dwg-n
- )
网友答: 大佬,经常使用的一个功能是,批量把dwg中的动态块变成普通块的功能,此不开图修改属性标记的是否可见功能,是否可以拿来运用实现不开图批量把动态块变成普通块的效果呢?网友答:
weimeng555 发表于 2025-11-29 17:02
大佬,经常使用的一个功能是,批量把dwg中的动态块变成普通块的功能,此不开图修改属性标记的是否可见功能 ...
肯定是可以的网友答:
weimeng555 发表于 2025-11-30 17:11
试过了,貌似lisp不能跨文件操作,如果要批量还是算了,还是用旧的方法批量开图运行指定lsp
批量不是单个的循环吗?网友答: 不错,感谢分享网友答: 感谢分享,学习一下网友答:
感谢分享,学习一下+1网友答:
weimeng555 发表于 2025-11-29 17:02
大佬,经常使用的一个功能是,批量把dwg中的动态块变成普通块的功能,此不开图修改属性标记的是否可见功能 ...
你试试。。。。。网友答:
dcl1214 发表于 2025-11-30 08:35
你试试。。。。。
试过了,貌似lisp不能跨文件操作,如果要批量还是算了,还是用旧的方法批量开图运行指定lsp
网友答:
谢谢楼主分享!