프로그램
캐드 분류

LISP 수정 부탁드려요 ㅠㅠ

컨텐츠 정보

본문

안녕하십니까.

아래는 DWG내의 BLOCK개수를 세어서 CSV로 출력하는 LISP인데요,
현재는 CSV파일을 새로 OPEN하여, 수동으로 파일이름을 넣고 저장해야 하는 방식입니다.

이를 DWG이름을 따서 DWG가 저장된 경로에 출력을 CSV파일로 자동 생성되게 만들고 싶습니다.
즉 COUNT 명령만 내리면 DWG파일 이름을 딴 CSV파일이 생성되도록…

도움 주시면 매우 감사하겠습니다..

————————————————————————————————————————–

(defun c:COUNT  (/ _doc nm ds b ly f lst fl op)


 (vlax-for l  (vla-get-layouts
                (setq _doc
                       (vla-get-ActiveDocument (vlax-get-acad-object))))
   (vlax-for o  (vla-get-block l)
     (if (and (eq (vla-get-objectname o) "AcDbBlockReference")
              (setq nm (vla-get-effectivename o))
              (setq ds
                     (if (vlax-property-available-p
                           (setq b (vla-item (vla-get-blocks _doc) nm))
                           'comments)
                       (vla-get-comments b)
                       "")
                    )
              (setq ly (vla-get-layer o))
              )
       (if (vl-some '(lambda (x)
                       (and (eq ly (car x))
                            (eq nm (cadr x))
                            (setq f x)
                            )
                       )
                    lst)
         (setq lst (subst (list ly nm (1+ (caddr f)) ds) f lst))
         (setq lst (cons (list ly nm 1 ds) lst))
         )
       )
     )
   )
 (setq lst (vl-sort lst '(lambda (j k) (< (car j) (car k)))))
 (cond ((not lst)
        (alert "Couldn't find any block in this drawing !!"))
       ((and (setq fl (getfiled "파일선택"
                                (getvar 'DWGPREFIX)
                                "csv"
                                1))
             (setq op (open fl "w"))
             )
        (write-line "Layer Name,Block Name,QTY" op)
        (mapcar '(lambda (x)
                   (write-line
                     (strcat (car x)
                             ","
                             (cadr x)
                             ","
                             (itoa (caddr x))
                             ","
                             (nth 3 x))
                     op))
                lst)
        (close op)
        )
       )
 (princ)
 )(vl-load-com)

관련자료

댓글 0 / 1 페이지
등록된 댓글이 없습니다.
전체 81 / 1 페이지
RSS
번호
제목
이름
알림 0