你这个程序是抄过来的吧。
http://www.mjtd.com/Codes/ArticleShow.asp?ArticleID=1191

- (prompt "在命令行中输入命令: CCC!")
- ;;;测试程序
- (defun C:ccc (/ *APP *DOC EntNam NewNam i l)
- (vl-load-com)
- (setq *APP (vlax-get-acad-object))
- (setq *DOC (vla-get-activeDocument *APP))
- ;;(vla-auditinfo *Doc :vlax-true)
- (prompt "\n请选择块: ")
- (if (setq SS (ssget '((0 . "INSERT"))))
- (progn
- (setq l (sslength ss))
- (setq i 0)
- (while (< i l)
- (setq EntNam (ssname ss i))
- (if (setq NewNam (getstring "\n请输入新块名<字符规范,不要重名>: "))
- (change-block-name EntNam NewNam)
- (princ "\n你没有输入新块名!")
- )
- (setq i (1+ i))
- )
- )
- (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 1) "*")
- (progn
- (princ "\n这是一个匿名块.")
- (vla-auditinfo *Doc :vlax-true)
- (vla-put-name block NewNam)
- )
- )
- (princ "\n块名已经更改成"")
- (princ NewNam)
- (princ """)
- )
- )
- (princ "\n所选物体不是块!")
- )
- )
建议你引用时注明来源。 |