프로그램
캐드 분류

LISP 수정 부탁드려요 ㅠㅠ

컨텐츠 정보

  • 113 조회
  • 0 추천
  • 0 비추천
  • 목록

본문

안녕하십니까.

아래는 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 페이지
등록된 댓글이 없습니다.
전체 6,913 / 1 페이지
번호
제목
이름
알림 0