비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 102875
다음
진행 중
Lv.0
등록일: 2014-12-052014-12-05T14:41:07+09:00 2014-12-05T14:41:07+09:00카테고리: AutoCAD & CADian

가공기호 관련 리습 질문입니다

가공기호 리습 인데요 ..
이게 오스냅이 off되잇는 상태에서 s2 입력후 f3버튼을 눌러 오스냅을 on시켜서 가공기호를 표시하고나면 다시 명령어입력 전인 off 상태로 돌아갑니다… 이게 *error*함수때문에 off로 돌아가는 것인데..
저는 리습에서 osmode명령어로 리습을 바꾸는 것떄문에 error명령어를 넣은것인데 사용자가 f3을 눌러 on&off하는 경우는 예외로 하고싶습니다.. 그렇게할수 없을까요?
그렇다고 해서 error뺴고 중간중간에 osmode0이랑 osmode 161을 뺴보앗더니 가공기호가 이상하게 그려지네요 ㅜㅜ 뭔가 오스냅을 이용해서 그리는것같네요 ..
명령어가 완료되엇을떄 osmode가 161로 끝나기떄문에 error을 넣은거라서 … error을 뺴버릴수도 없고 ㅜㅜ 어쩌면 좋을지 모르겟네요 …


(defun c:s2 (/ p1 dis p2 p3 p4 p5 p6)
          ;->*error* start ; 작업중 취소 또는 에러 발생시 오스냅,레이어 복원함
 (defun *error* (msg)(princ “error: “)(princ msg) (setvar “osmode” osm)  (setvar “clayer” cla) (princ))
;-<*error* end
 (setq osm (getvar “osmode”)) ; 현재 오스냅 저장
 (setq cla (getvar “clayer”)) ; 현재 레이어 저장
  (command “undo” “be”)
  (defun dtr (a) (* pi (/ a 180.0)))
 (defun rtd (a) (* 180.0 (/ a pi)))
 (setq p1 (getpoint “n start point:”))
 (setq p6 (getpoint “n second point:”))
 (setvar “osmode” 0)
 (setq p2 (polar p1 (dtr 120) 5.2))
 (setq p3 (polar p2 (dtr 0) 5.2))
 (setq p4 (polar p3 (dtr 0) 5.2))
 (setq p5 (polar p4 (dtr 240) 5.2))
 (command “pline” p1 p2 p3 p4 p5 p3 p1 “”)
 (command “change” “l” “” “p” “la” “7” “”)
 (command “rotate” “l” “” p1 p6″”)
 (setvar “osmode” 161)
  (command “undo” “e”)
 (setvar “osmode” osm) ; 저장했던 오스냅으로 복원
 (setvar “clayer” cla) ; 저장했던 레이어로 복원
 (princ)
);defun  s2 END
 ;————————————————————

  • 0
  • 7 7 답변
  • 29 조회
공유
  • Facebook

    관련 있는 질문들

    • 캐드 기계설계 보조 프로그램을 찾고있습니다.
    • 오토리습 open함수 질문
    • 3D 작업중 화면이동시 좌표계가 계속 돌아감
    • 선배님들 덕트 엘보 작성 리습좀 봐주세요

    7 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2014-12-05T14:59:16+09:00답변 등록 답변 등록 일시 2014-12-05 2:59 pm

      사용예.gifs1(수정).lsp

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2014-12-05T14:59:23+09:00답변 등록 답변 등록 일시 2014-12-05 2:59 pm

      OSMODE 0을 지우면 가공기호가 이상하게 그려집니다
      혹시 OSMODE0 명령어가 없어도 정상적으로 그려지게 할수있는 방법 있을까요 ??
      그럼 모든것이 해결될수 있습니다 ㅜㅜ

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2014-12-05T15:17:45+09:00답변 등록 답변 등록 일시 2014-12-05 3:17 pm

      리습 사용후에 자꾸 오스냅이 전부 꺼지네요 …?
      그리고 UCS를 옮겨놓으면 다른곳에 가공기호가 그려집니다 ㅜㅜ UCS를 이리저리 옮기면서 설계해야 하거든요 ㅠㅠ

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2014-12-05T15:35:25+09:00답변 등록 답변 등록 일시 2014-12-05 3:35 pm

      제가 이렇게 바꿔보았는데요 ..
      오스냅은 해결되엇는데 ucs가 0,0,0 일떄는 정상적으로 그려지는데 ucs를 옮기면 전혀다른곳에 가공기호가 그려지네요 ..ㅜㅜㅜㅜㅜ 다시검토좀 부탁드려도될까요 ??
      (defun c:s44 (/ _LWPoly p1 dis p2 p3 p4 p5 p6 dtr rtd)
                ;->*error* start ; 작업중 취소 또는 에러 발생시 레이어 복원함
       ;(defun *error* (msg)(princ “error: “)(princ msg)  (setvar “clayer” cla) (princ))
      ;-<*error* end
      ; (setq cla (getvar “clayer”)) ; 현재 레이어 저장
        (command “undo” “be”)
      (defun _LWPoly (lst cls)
        (entmakex (append (list (cons 0 “LWPOLYLINE”)
                                (cons 100 “AcDbEntity”)
                                (cons 100 “AcDbPolyline”)
                                (cons 90 (length lst))
                                (cons 70 cls))
                          (mapcar (function (lambda (p) (cons 10 p))) lst))))
        (defun dtr (a) (* pi (/ a 180.0)))
       (defun rtd (a) (* 180.0 (/ a pi)))
       (setq p1 (getpoint “n start point:”))
       (setq p6 (getpoint p1 “n second point:”))
       (setq p2 (polar p1 (dtr 120) 5.2))
       (setq p3 (polar p2 (dtr 0) 5.2))
       (setq p4 (polar p3 (dtr 0) 5.2))
       (setq p5 (polar p4 (dtr 240) 5.2))
        (_LWPoly (list p1 p2 p3 p4 p5 p3) 1)
       (command “change” “l” “” “p” “la” “7” “”)
       (command “rotate” “l” “” p1 p6″”)
        (command “undo” “e”)
       ;(setvar “clayer” cla) ; 저장했던 레이어로 복원
       (princ)
      )

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2014-12-05T15:56:29+09:00답변 등록 답변 등록 일시 2014-12-05 3:56 pm

      (defun c:s2 ( / *error* dtr rtd p1 p2 p3 p4 p5 p6 osm cla)

       (defun *error* (msg)(princ “error: “)
        (princ msg)
        (setvar “osmode” osm)
        (setvar “clayer” cla)
        (princ)
       )
       
       (defun dtr (a) (* pi (/ a 180.0)))
       (defun rtd (a) (* 180.0 (/ a pi)))
       
       (setq p1 (getpoint “n start point:”))
       (setq p6 (getpoint p1 “n second point:”))
       (setq p2 (polar p1 (dtr 120) 5.2))
       (setq p3 (polar p2 (dtr 0) 5.2))
       (setq p4 (polar p3 (dtr 0) 5.2))
       (setq p5 (polar p4 (dtr 240) 5.2))
       
       (setq osm (getvar “osmode”))
       (setq cla (getvar “clayer”))
       
       (command “undo” “be”)
       (setvar “osmode” 0)
       (command “pline” p1 p2 p3 p4 p5 p3 p1 “”)
       (command “change” “l” “” “p” “la” “7” “”)
       (command “rotate” “l” “” p1 p6)
       (command “undo” “e”)
       
       (setvar “osmode” osm)
       (setvar “clayer” cla)
       
       (princ)
      )

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. [Deleted User]
      2014-12-05T16:28:59+09:00답변 등록 답변 등록 일시 2014-12-05 4:28 pm

      감사합니다 이렇게하니까 해결되었네요 .
      원리가 뭔지 설명부탁드려도 될까요 ? 응용해서 다른 리습들도 응용하고싶습니다!

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. [Deleted User]
      2014-12-05T16:40:31+09:00답변 등록 답변 등록 일시 2014-12-05 4:40 pm

      1. *error* 함수는 리습이 끝났을 때가 아니라 오류(ESC) 발생시 작동함
      2. 사용자 입력(getpoint) 후 (setq osm  (getvar “osmode”)), (setvar “osmode” 0),  (setvar “osmode” osm)을 해야 바뀐 값을 다시 되돌림.

      그리고 (setvar “osmode” 161) 이 구문은 의미 없습니다. 아마도 만든 사람이 즐겨쓰던 오스넵 모드였던 것 같네요. 

      • 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