以上就是壹加工具箱中的匿名有名互转功能。如果只是临时使用一下,可以使用下面的lsp源码来实现
(defun C:YJ (/ *APP *DOC EntNam NewNam) (princ "\n输入YJ命令修改块名。壹加工具箱") (vl-load-com) (setq *APP (vlax-get-acad-object)) (setq *DOC (vla-get-activeDocument *APP)) (if (setq EntNam (car (entsel "\n请选择块: "))) (if (setq NewNam (getstring "\n请输入新块名<字符规范,不要重名>: ")) (change-block-name EntNam NewNam) (princ "\n你没有输入新块名!") ) (princ "\n你没有选择物体!") ) (princ) ) ;;;改块名程序 (defun change-block-name (EntNam NewNam / obj blocks BlkNam block) (setq obj (vlax-ename->vla-object EntNam)) (setq blocks (vla-get-blocks *DOC)) (if (=(vla-get-objectname obj) "AcDbBlockReference") (if (tblsearch "block" NewNam) (princ "\n和已有块名重复!") (progn (setq BlkNam (vla-get-name obj)) (setq block (vla-item blocks BlkNam)) (vla-put-name block NewNam) (if (= (substr BlkNam 1 2) "*U") (progn (princ "\n这是一个匿名块.") (vla-auditinfo *Doc :vlax-true) (vla-put-name block NewNam) ) ) (princ "\n块名已经更改成\"") (princ NewNam) (princ "\"") ) ) (princ "\n所选物体不是块!") ) )
上一篇:VS2017下解决:无法解析的外部符号___vsnprintf
下一篇:没有了!