快递关闭块程序,如果是参照块,关闭参照块,如果是普通块关闭普通块
(defun c:ra (/ acadDoc isBlockEditor);; 获取当前文档
(setq acadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
;; 检查是否处于块编辑器模式
(setq isBlockEditor
(and
(= (vla-get-ActiveSpace acadDoc) acModelSpace) ; 检查是否在模型空间
(vlax-property-available-p acadDoc 'IsDynamicBlock) ; 检查是否支持动态块
(vla-get-IsDynamicBlock acadDoc) ; 检查是否处于动态块编辑模式
)
)
;; 根据状态执行相应操作
(if isBlockEditor
(progn
(command "_bclose" "s" pause) ; 关闭块
(princ "\n已关闭块。")
)
(progn
(command "_refclose" "s") ; 关闭参照块
(princ "\n已关闭参照块。")
)
)
(princ)
)
(defun c:ra (/ acadDoc isBlockEditor)
;; 获取当前文档
(setq acadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
;; 检查是否处于块编辑器模式
(setq isBlockEditor
(and
(= (vla-get-ActiveSpace acadDoc) acModelSpace) ; 检查是否在模型空间
(vlax-property-available-p acadDoc 'IsDynamicBlock) ; 检查是否支持动态块
(vla-get-IsDynamicBlock acadDoc) ; 检查是否处于动态块编辑模式
)
)
;; 根据状态执行相应操作
(if isBlockEditor
(progn
(command "_bclose" "s" pause) ; 关闭块
(princ "\n已关闭块。")
)
(progn
(command "_refclose" "s") ; 关闭参照块
(princ "\n已关闭参照块。")
)
)
(princ)
)
谢谢分享 本帖最后由 USER2128 于 2025-1-17 10:05 编辑
;;; 感觉这个有用,重写了一下程序
;;; 快速关闭块编辑器程序.
(defun c:BC ()
(cond
((= 1 (getvar "BLOCKEDITOR")) ;块编辑器.
(command "_bclose" "s")
(princ "\n已关闭块编辑器。")
)
((/= "" (getvar "REFEDITNAME")) ;在位编辑.
(command "_refclose" "s")
(princ "\n已关闭在位块编辑器。")
)
(t (princ "\n仅用于关闭块编辑器."))
)
(princ)
)
页:
[1]