用lisp语言写一个导出多个CAD图块的某一属性的插件
时间: 2023-05-30 18:05:06 浏览: 357
(defun c:export-block-attribute (/ ss attname filename filedesc)
(setq ss (ssget "_X" '((0 . "INSERT"))))
(if (and ss (setq attname (getstring "\nEnter attribute name: ")))
(progn
(setq filename (getfiled "Save as" "" "csv" 1))
(if (not (setq filedesc (open filename "w")))
(princ "\nUnable to open file.")
(progn
(write-line (strcat "Block name," attname) filedesc)
(repeat (sslength ss)
(setq ent (ssname ss (setq i (1+ i))))
(setq blockname (cdr (assoc 2 (entget ent))))
(setq attval (cdr (assoc 1 (entget ent))))
(if (setq att (assoc attname attval))
(write-line (strcat blockname "," (cdr (assoc 2 att)))) ;write block name and attribute value to file
)
)
(close filedesc)
(princ (strcat "\nExported " (itoa (sslength ss)) " blocks' " attname " to " filename "."))
)
)
)
)
(princ)
)
;;使用方法:输入export-block-attribute命令,然后输入属性名称和文件名,最后选择要导出的块即可。