비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 112456
다음
진행 중
밥버러지
밥버러지Lv.0
등록일: 2020-06-292020-06-29T23:03:34+09:00 2020-06-29T23:03:34+09:00카테고리: AutoCAD & CADian

3dpoly의 좌표를 출력하는 리습입니다.

리스을 처음 스터디 중입니다.

아래와 같은 리습을 이용해서 좌표검토용 시트를 구현하려고합니다.

아래의 리습 명령어의  자세한 설명을 알수 있을까요?

Ent 여기서부터 막히네요

처음 작업하는사람이라 깜깜이 입니다.

감사합니다.





(defun c:TT (/ cPl cFmn fVar pLst cAns *error*)


(defun Extract_3DPoly_Vertexes(Ent / cLst oLst)
(if(= ‘ENAME(type Ent))
(setq Ent(vlax-ename->vla-object Ent))
); end if
(if(= “AcDb3dPolyline”(vla-get-ObjectName Ent))
(progn
(setq cLst(vlax-safearray->list
(vlax-variant-value
(vla-get-Coordinates Ent))))
(while cLst
(setq oLst(cons
(list
(car cLst)
(cadr cLst)
(nth 2 cLst))
oLst)
); end setq
(repeat 3(setq cLst(cdr cLst)))
); end while
(reverse oLst)
); end progn
); end if
); end of Extract_3DPoly_Vertexes


(if(and
(setq cPl(entsel “nSelect 3D-Polyline > “))
(= “POLYLINE”(cdr(assoc 0(entget(setq cPl(car cPl))))))
); and
(progn
(setq fVar(open(setq cFmn(strcase(strcat(getvar “DWGPREFIX”)
(vl-filename-base(getvar “DWGNAME”)) “.csv”))) “a”)
pLst(Extract_3DPoly_Vertexes cPl)
); end setq
(write-line “X,Y,Z” fVar)
(foreach pt pLst
(write-line
(strcat(rtos(car pt))”,”(rtos(cadr pt))”,”(rtos(last pt)))
fVar)
); end foreach
(close fVar)
(alert(strcat “nCSV File location: ” cFmn))
); end progn
(princ “<!> It isn’t 3D-Polyline <!> “)
); end if
(princ)
); end of c:3csv


(princ “nType 3csv to run”)
(defun c:TT (/ cPl cFmn fVar pLst cAns *error*)


(defun Extract_3DPoly_Vertexes(Ent / cLst oLst)
(if(= ‘ENAME(type Ent))
(setq Ent(vlax-ename->vla-object Ent))
); end if
(if(= “AcDb3dPolyline”(vla-get-ObjectName Ent))
(progn
(setq cLst(vlax-safearray->list
(vlax-variant-value
(vla-get-Coordinates Ent))))
(while cLst
(setq oLst(cons
(list
(car cLst)
(cadr cLst)
(nth 2 cLst))
oLst)
); end setq
(repeat 3(setq cLst(cdr cLst)))
); end while
(reverse oLst)
); end progn
); end if
); end of Extract_3DPoly_Vertexes


(if(and
(setq cPl(entsel “nSelect 3D-Polyline > “))
(= “POLYLINE”(cdr(assoc 0(entget(setq cPl(car cPl))))))
); and
(progn
(setq fVar(open(setq cFmn(strcase(strcat(getvar “DWGPREFIX”)
(vl-filename-base(getvar “DWGNAME”)) “.csv”))) “a”)
pLst(Extract_3DPoly_Vertexes cPl)
); end setq
(write-line “X,Y,Z” fVar)
(foreach pt pLst
(write-line
(strcat(rtos(car pt))”,”(rtos(cadr pt))”,”(rtos(last pt)))
fVar)
); end foreach
(close fVar)
(alert(strcat “nCSV File location: ” cFmn))
); end progn
(princ “<!> It isn’t 3D-Polyline <!> “)
); end if
(princ)
); end of c:3csv


(princ “nType 3csv to run”)

  • 0
  • 3 3 답변
  • 34 조회
공유
  • Facebook

    관련 있는 질문들

    • 캐디안으로 도면을 열때 한글이 ???로 표시되는 문제
    • CADian Lisp
    • 캐디안에서 렌더링 기능이 지원되나요?
    • 동적블록 신축에서 길이를 늘릴때 최종 길이를 입력 또는 늘려야 하는 차이만큼의 길이를 입력

    3 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2020-06-30T20:15:02+09:00답변 등록 답변 등록 일시 2020-06-30 8:15 pm
      (defun c:TT (/ cPl cFmn fVar pLst cAns *error*)
      ;;=== subroutin start ========
      ;; 밑에 함수 pLst(Extract_3DPoly_Vertexes cPl)뜻 
      ;;Extract_3DPoly_Vertexes라는 함수에 cPl을 넘기고 Extract_3DPoly_Vertexes가 반환하는 값을  pLst에 담으라.
      (defun Extract_3DPoly_Vertexes(Ent / cLst oLst)
      (if(= ‘ENAME(type Ent)) ;; 먄약 Ent type이 Ename 이라면 
      (setq Ent(vlax-ename->vla-object Ent));오토리습에서 비주얼 리습타입으로 변환
      ); end if
      (if(= “AcDb3dPolyline”(vla-get-ObjectName Ent));오브젝트이름이 3디 폴리라인이라면 
        (progn
         (setq cLst(vlax-safearray->list
                     (vlax-variant-value
                       (vla-get-Coordinates Ent))));3디 폴리라인 좌표를 뽑아낸다 
         (while cLst
              (setq oLst(cons(list(car cLst)(cadr cLst)(nth 2 cLst))oLst))
              (repeat 3(setq cLst(cdr cLst)))
          ); end while 뽑아낸 좌표를 3개씩 묶는다 그럼 (x,y,z)이런식으로 묵임..
         (reverse oLst);리스트를 뒤집는다 리스트에 cons를사용 할때와 append를 사용할때의 차이 
        ); end progn
      ); end if
      ); end of Extract_3DPoly_Vertexes
      ;;=== subroutin end ========
      (if(and
           (setq cPl(entsel “nSelect 3D-Polyline > “))
           (= “POLYLINE”(cdr(assoc 0(entget(setq cPl(car cPl))))));만약 선택한 객체가 폴리라인이라면 밑에함수 실행
         ); 
       (progn
         (setq fVar(open(setq cFmn(strcase(strcat(getvar “DWGPREFIX”) ;현재 작업경로
                    (vl-filename-base(getvar “DWGNAME”)) “.csv”))) “a”);현재 도면이름확장자.csv파일 있으면 열고 없으면 만들고 오픈
                pLst(Extract_3DPoly_Vertexes cPl);서브루틴으로 엔티티이름 넘기고 서브루틴이 넘겨주는 버텍스 리스트를 받음
         ); end setq
         (write-line “X,Y,Z” fVar) ;첫줄에 x,y,z 기록 
         (foreach pt pLst  ;버텍스 리스트 기록 시작
           (write-line
           (strcat(rtos(car pt))”,”(rtos(cadr pt))”,”(rtos(last pt)))
            fVar)
         ); end foreach  버텍스 리스트 기록끝 
         (close fVar);열린 csv파일을 닫음.
         (alert(strcat “nCSV File location: ” cFmn));경고창으로csv 파일위치 표시 
       ); end progn
       (princ “<!> It isn’t 3D-Polyline <!> “);선택한 객체가 폴리라인이 아니면 커맨드창에 메세지 표시.
      ); end if
      (princ)
      ); end of c:TT
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 수야12 Lv.21
      2020-06-30T21:10:31+09:00답변 등록 답변 등록 일시 2020-06-30 9:10 pm
      일본의 펀쿨섹좌~!가 싫어할만한 쿨하지 않고 섹시하지 않은 구문 제거 버전입니다 ㅎㅎ;;;
      위 구문엔 필요없는 부분이 보이네요 
      (defun c:ff(/ ks_Extract_3DPoly_Vertexes obj pLst fVar cFmn)(vl-load-com)
       (defun ks_Extract_3DPoly_Vertexes (obj / _mrGroupByNum3 L1)
         (defun _mrGroupByNum3 (L) 
           (if L (cons (list (car L)(cadr L)(caddr L))
                    (_mrGroupByNum3 (cdddr L))
                  )
            )
          )  
        (setq L1(_mrGroupByNum3(vlax-safearray->list(vlax-variant-value(vla-get-Coordinates obj)))))
        )
        
       (setq obj(vlax-ename->vla-object(car(entsel”nSelect 3D-Polyline > “))))
       (if(= “AcDb3dPolyline” (vla-get-objectname obj))
         (progn 
           (setq pLst(ks_Extract_3DPoly_Vertexes obj)
                 fVar(open(setq cFmn(strcase(strcat(getvar “DWGPREFIX”) 
                           (vl-filename-base(getvar “DWGNAME”)) “.csv”))) “a”)
           )
         (write-line “X,Y,Z” fVar)
         (foreach pt pLst
           (write-line
           (strcat(rtos(car pt))”,”(rtos(cadr pt))”,”(rtos(last pt)))
            fVar)
         )
         (close fVar)
         (alert(strcat “nCSV File location: ” cFmn))
          );progn
          (princ “n <!> It isn’t 3D-Polyline <!> “)
       );if  
       (princ)
       )
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 밥버러지 Lv.0
      2020-07-01T01:00:20+09:00답변 등록 답변 등록 일시 2020-07-01 1:00 am

      정말 감사드립니다.

      많은 도움이 됬습니다. ^^

      • 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