비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 111723
다음
진행 중
Lv.0
등록일: 2019-09-062019-09-06T11:19:55+09:00 2019-09-06T11:19:55+09:00카테고리: AutoCAD & CADian

리습 구문중에 궁금한점이 있습니다.

안녕하세요 계속 리습 공부중인 건축인입니다.

다름이 아니라 command를 쓰기 싫다는 생각이 요즘 들어서(스냅오류가.. 그리고 수야님이 안좋다고하셔서?)
xline을 자주쓰니 그것들을 모아 삭제하려고 하는데요
인터넷에서 본 구분인데 해석이 잘안되서 문의를 좀 드립니다.
(defun ssdel (ss / i)  —> c: 가없다? 명령어는 어떻게쓰는가.. /// (ss / i) : i는 밑에사용했던것 삭제라고 알고있습니다 “/” 다음에 띄우고 나온는 것은 근데 ss는 무엇인지요
(and (= (type ss) ‘PICKSET) —> and라는것은 처음보는데…. 어떤것과 and로 엮인건지..
(setq i (sslength ss)) –>이해가능합니다
(while (not (minusp (setq i (1- i)))) —> while (not 은 처음보지만 와일과는 반대느낌으로 이해했습니다.
(entdel (ssname ss i)))))


(while (not ss)  —> while이 cond처럼 나열되보이는데 while은 나열이 한 구문안에 됬던걸로 알았는데 궁금합니다.
(setq ss (ssget)))

(ssdel ss) —-> 결국 명령어발동은 어떤걸로 하는지 끝맺어버렸습니다.

질문이 너무많은데 조금이라도 알려주시면 감사하겠습니다 !
  • 0
  • 10 10 답변
  • 42 조회
공유
  • Facebook

    관련 있는 질문들

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

    10 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2019-09-06T12:18:23+09:00답변 등록 답변 등록 일시 2019-09-06 12:18 pm
      command문은 가장 큰 걸림돌(?)이 osnap 문제이고 그다음이 속도문제입니다 
      요즘 컴은 워낙성능이 좋아서 체감을 못하지만 저희 회사처럼 사무용 컴에 캐드 돌릴때는 
      command문으로 객체생성시 그 과정이 세세하게 보입니다 (뻥약간 보태서..)그러나 entmake나 
      visual lisp 같은 경우는 순식간에 진행 됩니다 vba도 상당히 느리더군요 

      c: 이게 있고 없고 의 차이는 명령문이 FF 라고 할때 c:FF 면 캐드 명령창에서 FF만 입력하면 되고 C:가 없으면  (FF) 이렇게 괄호와 함께 입력해야합니다 

      (defun ssdel(ss / i) ;  ss와 i는 슬래쉬 앞에 있는 ss는 전역변수, i는 지역변수입니다.
      전역(광역)변수는 말그대로 ssdel 함수 이외의 곳에도 영향을 줄수 있는 변수라는 뜻이고
      지역변수 i는  ssdel 함수 안에서만 영향을 주는 변수란 뜻입니다  
      뜻을 해석하자면 함수외부에서 ss를 가져와서 어떤작업을 할것이라는 선언이죠.
      (and 는 조건식입니다 )
      (and (조건1)(조건2)(조건3)(조건…)) 거의 제한없이 조건을 걸수 있는데요 
       모든 조건이 참일때 란 뜻입니다  위에것을 해석하자면 (첫번째 조건은 ss가 pickset 일것)
       (두번째 조건은 ss갯수)(세번째 조건은 변수i가 음수가 아닐것))이세가지가 충족된 상태면 ssset 안의
      엔티티를 삭제하세요 네요 
      (while (조건)  할 작업)
      보통 while을 사용하는 방법입니다  이조건엔 nil이 아닌 어떤것이 와도 됩니다 
      가령 무한 반복하고 싶으면 숫자 o(영)을 사용해도 됩니다 (while 0 할 작업) 괄호안에 조건이 와도되고
      뭐든지 가능합니다 if나 cond  함수 뭘 사용해도 되용 오로지 while은 조건이 nil인가 아닌가만 봐요 
      저기 마지막 부분 (ssdel ss) ssdel 이라는함수로 ss를 보내라 (가져가라. ss로 ssdel 함수를 일을 시켜라)
      로 해석하시면 됩니다 
      그런데 리습에 ssdel이라는 고유 함수가 있는데 고유 함수를 이렇게 사용하시면 안됩니다 
      오류 일어 납니다 저같은 경우는 앞에 구분 문자를붙힙니다 (ks_ssdel ss)이런식으로 물론 
      ks는 절 상징하는 문자구요 ^^;; 
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2019-09-06T13:40:05+09:00답변 등록 답변 등록 일시 2019-09-06 1:40 pm

      저번에 알려주신내용도 카톡에 복사해놓고 계속공부하고 있습니다.

      vla- 로시작하는 엑티브액스도 보고있구요 !
      오늘적어주신 내용 한번 읽었을때 몰랐는데 세번쯤 읽으니까 무슨말씀이신지 알 수 있었습니다.
      and가 모두에게 묶여있었군요..!
      두고두고 잘보고 공부열심히 해보겠습니다 
      감사합니다 !
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2019-09-06T13:45:54+09:00답변 등록 답변 등록 일시 2019-09-06 1:45 pm

      읽고 적용하려다보니 궁금증이 하나 생겼습니다.

      셀렉션셋트 (setq a (ssget))과같은 구문이 하나도 없는데 선택을 해둔 세트에 대해서 작동하는 구문일까요? 
      아.. 혹은 ss가 전역이라고 하셨으니까 셀렉션 셋트를 구성한곳에 뭐라고적어야되나
      (defun C:dall ()
        (setq ab (ssget “x” ‘((0 . “XLINE”)(8 . “check”))))  
        )
      이런 구문속에 
      (defun C:dall ()
        (setq ab (ssget “x” ‘((0 . “XLINE”)(8 . “check”)))) 
        (ssdel) <<
        )
      끼워넣으면 작동한다는 말씀이신거.. 맞을까요?
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2019-09-06T13:47:30+09:00답변 등록 답변 등록 일시 2019-09-06 1:47 pm

      아니군요.. while이 (not ss) 셀렉션셋트가 없다면

      잡게 되어있군요 마지막구문에서!! 감사합니다 ~~
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2019-09-06T14:32:22+09:00답변 등록 답변 등록 일시 2019-09-06 2:32 pm
      (defun dh_ssdel (ss / i)  —> ssdel 오류피하기 위해 dh_추가
        (and (= (type ss) ‘PICKSET)  —>pickset/갯수/하나씩삭제구문
             (setq i (sslength ss))
             (while (not (minusp (setq i (1- i))))
      (entdel (ssname ss i))
             )                  ;while end
        )        ;and end
      (while (not ss)         —-> 셀렉션셋이 없을경우
        (setq ss (ssget “x” ‘((0 . “XLINE”)(8 . “check”))))           ——> check레이어의 모든 xline 셀렉션셋
      )
      (dh_ssdel SS)            —> dh_ssdel함수작동
      )   ;defun end
      인데요 그런데 few argument가 뜨는데 어디부분이 문제가 있을까요? 한참들여다봐도 논리적으로 맞는것 같은데…
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. 수야12 Lv.21
      2019-09-06T14:43:10+09:00답변 등록 답변 등록 일시 2019-09-06 2:43 pm

      (defun c:ff(/ dh_ssdel ss) 

      (defun dh_ssdel (ss / i)  —> ssdel 오류피하기 위해 dh_추가
        (and (= (type ss) ‘PICKSET)  —>pickset/갯수/하나씩삭제구문
             (setq i (sslength ss))
             (while (not (minusp (setq i (1- i))))
       (entdel (ssname ss i))
             )                  ;while end
        )        ;and end
       (setq ss (ssget “x” (list (cons 0 “XLINE”)(cons 8 “check”))))
       (dh_ssdel ss)
       (princ)
      ) ; end of function
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. 수야12 Lv.21
      2019-09-06T14:45:11+09:00답변 등록 답변 등록 일시 2019-09-06 2:45 pm

      또다른 방식은 

      (defun c:ff(/ ss)
        (setq ss (ssget “x” (list (cons 0 “XLINE”)(cons 8 “check”))))
       (dh_ssdel ss)
       (princ)
      )
      (defun dh_ssdel (ss / i)  —> ssdel 오류피하기 위해 dh_추가
        (and (= (type ss) ‘PICKSET)  —>pickset/갯수/하나씩삭제구문
             (setq i (sslength ss))
             (while (not (minusp (setq i (1- i))))
       (entdel (ssname ss i))
             )                  ;while end
        )        ;and end
      이렇게 해놓으면 dh_ssdel 함수를 리습이 로드 돼어 있으면 다른 리습명령에서도 사용할 수 있습니다 완전 공용이 되는거죠  저 위에 것은 ff 명령에 종속적이구요 
      연구 하실 내용 서브함수 또는 서브 루틴
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    9. [Deleted User]
      2019-09-06T15:09:25+09:00답변 등록 답변 등록 일시 2019-09-06 3:09 pm

      이렇게 로드되는 서브함수들 항상 궁금했는데 감사합니다. 오늘 여러가지 알아가는 느낌입니다.

      그런데 주신 두가지의 명령 모두 마지막 “)”하나 를 붙여 defun end시키고 작동을 시키면 문제가 없이 돌아는 가는데 check레이어의 xline들이 삭제는 안됩니다.
        (setq ss (ssget “x” (list (cons 0 “XLINE”)(cons 8 “check”)))) 이걸로 잡으니 셀렉션셋이 만들어지고 또한 i를 계산해보니 갯수도 문제없이 들어가는데 삭제는 안되는데 혹시 이유를 아실까요?
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    10. 수야12 Lv.21
      2019-09-06T16:31:51+09:00답변 등록 답변 등록 일시 2019-09-06 4:31 pm

      잘됩니다 차분히 캐드를 다시키시고 시도해보세요  이건 그냥 소소한 팁인데요 

      리습을 짜다 보면 방금 정상적으로 됐는데 안되고 막 그러거든요 항상 최종본은 캐드창을 새로 열어서 다시로드 하신후 확인하는 습관이 필요합니다 ^^;;

      녹화_2019_09_06_16_29_08_454.gif
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    11. [Deleted User]
      2019-09-06T17:45:35+09:00답변 등록 답변 등록 일시 2019-09-06 5:45 pm

      맞는말씀이십니다…!

      작업중인 캐드가 많이 켜져있다보니 꺼버릴생각을 못했습니다
      번거롭게 해드렸네요.
      좋은것들 알려주셔서 또 한번 감사합니다 !
      • 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