你好
我有一个miclos先生的lisp,(thanx),它将属性值提取到一个文件中。
我尝试在csv文件中添加另一列,但没有成功。
当我从具有相同块的文件中导出时,得到以下结果:
[font=Arial][size=2]block name:,_Dorrlitt[/size][/font][font=Arial][size=2]LITTERA[/size][/font][font=Arial][size=2]D10H[/size][/font]
如果我在一个文件中有两个或30个D10H,我会得到:
[font=Arial][size=2]block name:,_Dorrlitt[/size][/font][font=Arial][size=2]LITTERA[/size][/font][font=Arial][size=2]D10H[/size][/font]
每次30次,也就是说超过90次。再加上一个街区。。。文件开始变长了。
我想要的是lisp添加大量相同的属性。
也许是这样:
[font=Arial][size=2]block name:,_Dorrlitt[/size][/font][font=Arial][size=2]LITTERA[/size][/font][font=Arial][size=2]D10H [/size][/font][font=Arial][size=2][color=red]30 < amount[/color][/size][/font]
有什么帮助吗?
顺致敬意,
lisp文件如下所示:
; Global ATTribute EXtractor ; by Miklos Fuccaro [email="mfuccaro@hotmail.com"]mfuccaro@hotmail.com[/email] ;-------------------------November 2004 ------- ;;Edited March 2006 by C. Bassler to allow specification of block and tage names to extract(defun gattexdorr () (setq Blocklist '("_Dorrlitt")) ;; ** edit to include block names to select (setq TagList '("LITTERA")) ;; ** edit to include tag names to extract ;;create block names separated by columns, for selection filter (setq Blocknames (List2String BlockList)) (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 BlockNames)))) (if (not ss) (quit)) (setq Root (getvar "DWGPREFIX"))(setq path (strcat "..\\AdminIT\\Attribut\\Export\\Littera\")) (setq file (open (strcat Root path (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)) "Dorrlittera.csv" ) "w") i -1) (write-line (strcat Root (getvar "DWGNAME") " -found " (itoa (sslength ss)) " block(s) with attributes") file) (repeat (sslength ss) (setq TagRow nil ValRow nil) (setq Edata (entget (setq e (ssname ss (setq i (1+ i)))))) (write-line "" file) (write-line (strcat "block name:" "," (Dxf 2 Edata)) file) (while (/= (Dxf 0 Edata) "SEQEND") (if (and (= (Dxf 0 Edata) "ATTRIB") (member (dxf 2 Edata) TagList) ;;if tag is on list ) ;and (progn (setq TagRow (cons (Dxf 2 Edata) TagRow)) (setq valRow (cons (Dxf 1 Edata) ValRow)) ) ;progn ) (setq Edata (entget (setq e (entnext e)))) ) ;while (write-line (List2String (reverse TagRow)) file) (write-line (List2String (reverse ValRow)) file) ) ;repeat (close file) (princ (strcat "\nExport av Dörrlittera klar från modell:\n" (getvar "DWGNAME") "\nGå till A->Attribut->Export->Littera och öppna filen Dörrlittera!!")) (princ) ) ;defun;;-------------------------------(defun List2String (Alist) (setq NumStr (length Alist)) (foreach Item AList (if (= Item (car AList)) ;;first item (setq LongString (car AList)) (setq LongString (strcat LongString "," Item)) ) ) LongString ) ;defun;;--------------------------------(defun Dxf (code pairs) (cdr (assoc code pairs)) )(defun c:AIX:EXPORTDORRLITT () (gattexdorr) (princ))