비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 113067
다음
진행 중
Lv.0
등록일: 2021-05-042021-05-04T09:37:28+09:00 2021-05-04T09:37:28+09:00카테고리: AutoCAD & CADian

닫힌폴리라인 및 커브로 합/빼기/교차 리습을 만들어 쓰는중인데 질문드립니다.

안녕하세요 LISP 을 전문적으로는 배우지 못하고 그냥 사람들이 제작한것들을 짜집기해서 명령어 위주로 조합해서 사용하고있는데요
캐드의 region 객체들이 union subtract intersect 가 되는 것을보고 
폴리라인이나 스플라인들을 region 으로 변경한후
region 끼리 합/차/교차 명령어를 실행한뒤
다시 폴리라인이나 스플라인으로 변경하는 명령어를 만들고있습니다.
그러던중 풀리지않는곳이있어 질문드립니다.
현재 제작한 코드는 아래에 있습니다.
문제가되는부분은 빨간부분으로
영역객체를 닫힌폴리라인이나 닫힌스플라인으로 변환하는 방법을 몰라 검색해보니
단순히 EXPLODE 후 JOIN 을 통해서 변환을 한다고 하더라구요
그래서 
(vl-cmdf “explode” (ssget “P”))
(vl-cmdf “join” (ssget “p”) “”)
를 써봤지만
EXPLODE 후에 (ssget “P”)에서 객체를 다불러들이지 못하는 현상이있습니다.
제 짧은 지식으로는 해결할 방법을 찾기가 힘들어서 질문드립니다~!
(DEFUN C:BU(/ acadObj Doc ssa ssb n en ssi ni eni)
(vl-load-com)
(setq acadObj (vlax-get-acad-object))
(setq Doc (vla-get-ActiveDocument acadObj))
(vla-startundomark Doc)
(prompt “nUNION”)
(setq ssa (ssget))
(setq n (sslength ssa))
(if (> n 1)
(progn
(setq ssb (ssadd))
(while (<= 1 n)
(setq n (- n 1))
(setq en (ssmemb (ssname ssa n) ssa))
(vl-cmdf “region” en “”)
  (ssadd (entlast) ssb)
)
(vl-cmdf “union” ssb “”)
(vl-cmdf “explode” (ssget “P”))
  (setq ssi (ssget “P”))
  (if (= “REGION” (cdr (assoc 0 (entget (ssmemb (ssname ssi 0) ssi)))))
(progn
(setq ni (sslength ssi))
  (while (<= 1 ni)
(setq ni (- ni 1))
(setq eni (ssmemb (ssname ssi ni) ssi))
(vl-cmdf “explode” eni “”)
(vl-cmdf “join” (ssget “p”) “”)
)
)
(vl-cmdf “join” (ssget “p”) “”)   
)
  (prompt “nSuccess”)  
)
  (prompt “nFail”)
)
(vla-endundomark Doc)
  (princ)
)
  • 0
  • 3 3 답변
  • 74 조회
공유
  • Facebook

    관련 있는 질문들

    • 선배님들 덕트 엘보 작성 리습좀 봐주세요
    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    3 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2021-05-04T12:31:06+09:00답변 등록 답변 등록 일시 2021-05-04 12:31 pm

      리습은 볼줄 알지만 캐드를 모르는 입장에서 설명 하기가 애매한데 레기온이 뭔지 몰라서…

      일단  레기온 이후에 엔트라스트 구문으로 마지막에 생성된 레기온(?) 객체를 선택합니다 
      ssadd로 새로운 선택셋을 만든후 엔트라스트 후에 객체 폭파후 생성된 객체만 담습니다  
      조인으로 엔트라스트 후에 생성된 객체만 조인합니다 이전 세트객체세트인 ssa는 삭제합니다 순으로진행 돼야 합니다  레기온이 뭐지?? 군단 아닌감… 
      상황이 반영된 도면이 있으면 도와 드리겠는데 답답하네요 
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2021-05-04T13:30:29+09:00답변 등록 답변 등록 일시 2021-05-04 1:30 pm

      REGION 은 영역 객체의 영어표기 입니다. REGION 명령어는 닫힌 커브들을 영역객체로 바꿔주는 명령어구요. 캐드상에 유니온명령어가 영역객체들만 적용됐기때문에 

      1.폴리라인들을 영역객체로 바꾸고

      2.바꾼객체를 유니온하고 난 후
      3.다시 폴리로 바꾸기위해 익스플로드를 했고
      4.익스플로드 된 것들을 잡아 조인 을 하려했습니다.
      근데 익스플로드 된것들을 SSGET “P” 로 잡으려하니 익스플로드된것중 하나의 객체만 잡힙니다.
      댓글에서 얘기하신게 선택셋을 만든후 폭파후 생성된 객체를 담으려 해도 폭파후 생성된객체가 잡히질 않아서요 ㅠㅠ 폭파후 생성된 객체모두 잡는법을 알려주실수 있나요?
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2021-05-04T14:22:34+09:00답변 등록 답변 등록 일시 2021-05-04 2:22 pm

      아 검색중에 찾았습니다. 

      (initcommandversion 2) 를 추가하니 다 잡히네요 신경써주셔서 감사합니다!
      • 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