看看这是怎么回事。将文件保存到当前文件夹(因为未指定),如果有多个块,则只查找找到的第一个块:
- (defun c:savePerAtt (/ blkname attTag ss txtStr subEn)
- (vl-load-com)
-
- ; Get Text String
- (setq blkname "PLD Border 07");"MAP_NUM")
- (setq attTag "TITLE1");"MAP")
- (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 blkname))))
- (progn
- (setq subEn (ssname ss 0))
- (while (AND (not txtStr)
- (setq subEn (entnext subEn))
- (eq (cdr (assoc 0 (entget subEn))) "ATTRIB"))
- (If (eq (cdr (assoc 2 (entget subEn))) attTag)
- (setq txtStr (cdr (assoc 1 (entget subEn))))
- )
- )
- )
- )
- ; Save Drawing
- (If txtStr
- (vla-saveas
- (vla-get-activedocument
- (vlax-get-acad-object))
- txtStr)
- (princ "\nAttribute Not Found.")
- )
-
- (princ)
- )
|