비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 113153
다음
진행 중
Lv.0
등록일: 2021-06-152021-06-15T14:36:52+09:00 2021-06-15T14:36:52+09:00카테고리: AutoCAD & CADian

속성블럭의 속성을 export하는 리습인데 수정 부탁드립니다

(defun c:demo ( /  ss i vl_e ins_point valid_tag All_data filetowrite xlCells Excel_exist col row)
 
;; pBe May 2018
   
 (if
     (and
   (setq All_data nil
         ss (ssget “_X” ‘((0 . “INSERT”)(66 . 1)(410 . “Model”))))
   (repeat (setq i (sslength ss))
    (setq vl_e (vlax-ename->vla-object (ssname ss (Setq i (1- i)))))
    (setq ins_point (vlax-get vl_e ‘Insertionpoint))
    (if (setq valid_tag
        (Cdr (assoc “TYPE”
            (mapcar ‘(lambda (at)
         (list (vla-get-tagstring at) (vla-get-textstring at))
       )


 


             (vlax-invoke vl_e ‘GetAttributes)
             )
           )
         )
      )     
       (setq All_data (cons (list (vla-get-EffectiveName vl_e)
             (Car valid_tag) (rtos (car ins_point) 2) (rtos (cadr ins_point) 2) (rtos (caddr ins_point) 2)  (Cadr valid_tag)
                )
             All_data))
      )
     All_data
   )
   )
 (cond
    ( (null All_data)  )
  ( (setq Excel_exist (vlax-get-or-create-object “Excel.Application”))
    (setq col 1 row 1)
    (setq  xlCells  (vlax-get-property
                                     (vlax-get-property
                                       (vlax-get-property
                                         (vlax-invoke-method
                                           (vlax-get-property Excel_exist “Workbooks”)
                                             “Add”
                                         )
                                         “Sheets”
                                       )
                                       “Item” 1
                                     )
                                     “Cells”
                                   )
                    )
   ((lambda (n)
    (foreach val ‘(“Block Name” “Value” “X” “Y” “Z” “Level” )
      (vlax-put-property xlCells ‘Item row (setq n (1+ n)) val)
      )
       )
      0
    )
  
    (vlax-put-property xlCells ‘ColumnWidth 15.00)  
   (foreach itm (vl-sort All_data ‘(lambda (a b)(< (Car a)(car b))))
     (setq row (1+ row))
      ((lambda (n)
     (foreach val itm
       (vlax-put-property xlCells ‘Item row (setq n (1+ n)) val)
       )
        )
       0
     )
     )
    (vla-put-visible Excel_exist :vlax-true)
   (mapcar (function (lambda (obj)
     (and obj (eq ‘VLA-OBJECT (type obj)) (not (vlax-object-released-p obj))
           (not
             (vl-catch-all-error-p
               (vl-catch-all-apply
                 (function vlax-release-object) (list obj)
          )
               )
             )
           )
         ) 
     )
   (list Excel_exist xlCells))
    (setq Excel_exist nil
         xlCells nil)
     ) 
  ( (setq csvfile (getfiled “Enter CSV file name”
    (strcat (getvar ‘dwgprefix) (vl-filename-base (getvar ‘dwgname)))   “CSV” 1))
  
   (setq filetowrite (open csvfile “w”))
   (foreach itm (vl-sort All_data ‘(lambda (a b)(< (Car a)(car b))))
   (write-line (strcat (Car itm) “,” (Cadr itm)) filetowrite))
   (close filetowrite)
    (startapp “notepad”)
    )
  )
   )
  (princ)
 )

이건데 태그가 TYPE인 속성만 export가 되고 있는데 태그가 LEVEL인 속성도 함께 출력되도롭하고싶은데 수정하다가 막혔네요 ㅠㅠ



  • 0
  • 2 2 답변
  • 22 조회
공유
  • Facebook

    관련 있는 질문들

    • 객체 전체 간격 조정 할수 있을까요?
    • 블록 안에서 블록을 만들 수 있나요? 과거에는 됐었는데 2023부터 안되나요?
    • 캐드 2023 find 명령어가 너무 느립니다.
    • 폴리선 각도에 맞는 문자를 폴리선위에 올리고싶습니다. (관로선형에 위에문자올릴때)

    2 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 트리플렌지 Lv.0
      2021-06-15T15:21:31+09:00답변 등록 답변 등록 일시 2021-06-15 3:21 pm
      제가 전에 어디선가 얻은 리습인데, 저는 이걸로 씁니다.
      태그속성이니 LEVEL이니 하는 것들은 잘 몰라서 님이 원하는대로 될지는 모르겠어요.
      저는 아직까지는 이걸로 쓰면서 안되는 도면은 없었어요.
      (defun C:BTA ( / *error* doc blocks undo ss )  ;;속성 블록의 문자를 유지하면서 분해하기
       (vl-load-com)
       (defun *error* ( msg ) (and Undo (vla-EndUndoMark doc))
         (or (wcmatch (strcase msg) “*BREAK,*CANCEL*,*EXIT*”)
             (princ (strcat “n** Error: ” msg ” **”)))
         (princ)
       )    
        
       (princ “nSelect Block To Explode (Hold Text Attribut) : “) 
       (setq doc    (vla-get-ActiveDocument (vlax-get-acad-object))
             blocks (vla-get-Blocks doc))    
       (if (ssget “_:L” ‘((0 . “INSERT”)))
         (progn
           (setq Undo (not (vla-StartUndoMark doc)))
           
           (vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc))
             (if (eq :vlax-true (vla-get-Explodable (Itemp blocks (BlockName obj))))
        (progn
                       ;(alert “Apply”)
                       (princ “”)
        );p end
        (progn
           ;(alert “Deny”)
                       (setq BlockN (BlockName obj) )
                       (BlkSetExplodability BlockN 1)
        );p end
             );if end    
             (if (eq :vlax-true (vla-get-Explodable (Itemp blocks (BlockName obj))))
               (progn
                 
                 (if (eq :vlax-true (vla-get-HasAttributes obj))
                   (foreach att (vlax-invoke obj ‘GetAttributes)
                     (if (eq :vlax-false (vla-get-Invisible att))
                       (
                         (if (eq :vlax-false (vla-get-MTextAttribute att))
                           Att2Text MAtt2MText
                         )
                         (entget (vlax-vla-object->ename att))
                       ))))              
                         
                 (foreach eobj (vlax-invoke obj ‘Explode)
                   (if (eq “AcDbAttributeDefinition” (vla-get-ObjectName eobj))
                     (vla-delete eobj)
                   ))
                 (vla-delete obj)
               )))
           (vla-Delete ss)
           (setq Undo (vla-EndUndomark doc))
         ) )
       (princ)            
      )
      (defun BlockName ( obj )
       (vlax-get-property obj
         (if (vlax-property-available-p obj ‘EffectiveName)
           ‘EffectiveName ‘Name
         ) ))
                                                      
      (defun Itemp ( coll item )
       (if
         (not
           (vl-catch-all-error-p
             (setq item
               (vl-catch-all-apply
                 (function vla-item) (list coll item)
               )))) item ))
      (defun RemovePairs ( pairs lst )
       (vl-remove-if
         (function (lambda ( pair )(vl-position (car pair) pairs) )) lst ))
      (defun RemoveFirstPairs ( pairs lst )
       (defun foo ( pair lst )
         (if lst (if (eq pair (caar lst))
             (cdr lst)
             (cons (car lst) (foo pair (cdr lst))))))
       (foreach pair pairs (setq lst (foo pair lst)))  lst )
       
      (defun Att2Text ( eLst / dx74 )
       (setq dx74 (cdr (assoc 74 eLst)))   
       (entmake
         (append ‘( (0 . “TEXT”) )
           (RemovePairs ‘(0 100 2 74 70 280)
             (subst
               (cons 73 dx74) (assoc 74 eLst) eLst
             )))))
         
      (defun MAtt2MText ( eLst )
       (entmake
         (append ‘( (0 . “MTEXT”) (100 . “AcDbEntity”) (100 . “AcDbMText”) )
           (RemoveFirstPairs ‘(40 1 50 41 7 71 72 71 72 73 10 11 11 210)
             (RemovePairs ‘(-1 330 5 0 100 101 2 42 43 51 74 70 280) eLst)
           ))))
       
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 트리플렌지 Lv.0
      2021-06-16T08:17:48+09:00답변 등록 답변 등록 일시 2021-06-16 8:17 am

      explode로 봤었는데, 다시 보니까 export네요.

      혼선을 드려 죄송합니다.^^
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved