au-s 发表于 2022-7-6 12:18:30

排序属性导出

你好
 
我有一个miclos先生的lisp,(thanx),它将属性值提取到一个文件中。
 
我尝试在csv文件中添加另一列,但没有成功。
 
当我从具有相同块的文件中导出时,得到以下结果:
 
block name:,_Dorrlitt
LITTERA
D10H
 
如果我在一个文件中有两个或30个D10H,我会得到:
block name:,_Dorrlitt
LITTERA
D10H
每次30次,也就是说超过90次。再加上一个街区。。。文件开始变长了。
 
我想要的是lisp添加大量相同的属性。
也许是这样:
 

block name:,_DorrlittLITTERAD10H
30 < amount

 
有什么帮助吗?
 
顺致敬意,
 
 
lisp文件如下所示:
; Global ATTribute EXtractor
; by Miklos Fuccaro mfuccaro@hotmail.com
;-------------------------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 (strcatRoot 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 ItemAList
   (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))
页: [1]
查看完整版本: 排序属性导出