고객서비스

  • 프로그램다운로드
  • 팻치다운로드
  • 인증코드신청
  • 아키오피스자료실
  • 아키오피스강좌
  • 아키오피스동영상강좌
  • FAQ
  • FAQ

질문과답변
제목 리습에서 ucs변경을 쉽게할 수 없나요?
작성자 김마리 분류 CAD관련
CAD제품 및 버전 운영체제
첨부파일
지난번 답변 정말 감사합니다. list기입도 잘 못하던 제가 이번에는 한번 꺾이는 3차원 계단을 그려보려합니다. 지난번 그렸던 직선계단을 이용해서지만 이번엔 ucs 변경이라는 어마어마한 난관에 봉착했습니다. 나름대로 며칠 고민했지만 계속 기형계단만 그려지고 있습니다. 도저히 원인을 알수없는 부분도 있어서 염치없이 또 제가 작성한 리습 두개를 그대로 올리겠습니다. r24는 처음에 bp를 입력받고 그것을 이용해 나중 ucs를 바꾸려는 거고 r25는 bp입력을 호출함수 r1안으로 미루고 ucs를 사용자가 직접 입력하는 형태로 하려했지만 뜻대로 되지 않지는 둘다 마찬가지입니다. 캐드에서 한번 띄워보면 아시겠지만 정말 기형계단들입니다. 바쁘시겠지만 꼭 도와주세요. 감사합니다. (defun c:r24() ;처음에 필요한 치수들을 입력받는다. (setq bp (getpoint "\n 계단 시작점? ")) (setq width (getdist bp "\n 계단 가로폭? ")) (setq tread (getdist bp "\n tread 치수? ")) (setq riser (getdist bp "\n riser 치수? ")) (setq thck (getdist bp "\n 계단판 두께? ")) (setq s (getdist bp "\n 계단참 길이?" )) ;한번 꺾인 계단을 그리기 위해 직선계단 그리기 r1함수를 두번 호출하는 형식을 취한다. (command "ucs" "w" "") (r1); 주의! r1함수는 부르기 전에 먼저 ucs와 bp를 설정해 주어야 한다. ;계단참그리기 (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) (command "box" sp (list (- (car sp) s) (+ (cadr sp) thck)) (- (* 2 width)) "") ;다음 계단그리기를 위한 ucs설정 ;일일이 점을 잡아주는것 말고 좀더 괜찮은 방법이 없을까요? (command "ucs" "3" (list (- (car bp) (* 0.8 n tread)) (+ (cadr bp) (- (* riser (+ n 1)) thck)) (- (caddr bp) (* 2 width))) ;positive x (list (- (car bp) (* 0.8 n tread)) (+ (cadr bp) (- (* riser (+ n 1)) thck)) (caddr bp)) ;posotive y (list (car bp) (+ (cadr bp) (- (* riser (+ n 1)) thck)) (- (caddr bp) (* 2 width))) ;positive z (list (- (car bp) (* 0.8 n tread)) (+ (cadr bp) (* riser (+ n 1))) (- (caddr bp) (* 2 width))) ) ;다시 r1()호출 (r1) ) (defun r1() (setq n (getint "\n 계단 갯수?" )) (command "box" bp (list (+ (car bp) width) (+ (cadr bp) tread)) thck "") (setq box (entlast)) (command "move" box "" bp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) ;첫계단을 riser만큼 z축으로 올린다. (setq sbp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) ;첫계단의 왼쪽 끝점을 sbp로 설정한다. (command "ucs" "za" sbp (list (- (car bp) width) (cadr bp))) ;계단이 삐뚤어지는건 이 ucs 때문인것 같은데... (setq fp '(0.0 0.0 0.0)) (repeat (- n 1) (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) (command "copy" box "" fp sp) (setq box (entlast)) (setq fp sp) ) ) (defun c:r25() ;처음에 필요한 치수들을 입력받는다. (setq width (getreal "\n 계단 가로폭? ")) (setq tread (getreal "\n tread 치수? ")) (setq riser (getreal "\n riser 치수? ")) (setq thck (getreal "\n 계단판 두께? ")) (setq s (getreal "\n 계단참 길이? " )) ;한번 꺾인 계단을 그리기 위해 직선계단 그리기 r1함수를 두번 호출하는 형식을 취한다. (command "ucs" "w" "") (r1); 주의! r1함수는 부르기 전에 먼저 ucs와 bp를 설정해 주어야 한다. ;계단참그리기 (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) (command "box" sp (list (- (car sp) s) (+ (cadr sp) thck)) (- (* 2 width)) "") ;다시 r1()호출 (r1) ) (defun r1() (setq bp (getpoint "\n 계단 시작점? ")) (command "ucs" pause) (setq n (getint "\n 계단 갯수?" )) (command "box" bp (list (+ (car bp) width) (+ (cadr bp) tread)) thck "") (setq box (entlast)) (command "move" box "" bp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) ;첫계단을 riser만큼 z축으로 올린다. (setq sbp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) ;첫계단의 왼쪽 끝점을 sbp로 설정한다. (command "ucs" "za" sbp (list (- (car bp) width) (cadr bp))) ;계단이 삐뚤어지는건 이ucs때문인것 같은데.... (setq fp '(0.0 0.0 0.0)) (repeat (- n 1) (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) (command "copy" box "" fp sp) (setq box (entlast)) (setq fp sp) ) )

의견(1)

김남갑 1998-12-09
> 김마리님 글... > > 지난번 답변 정말 감사합니다. > list기입도 잘 못하던 제가 이번에는 한번 꺾이는 > 3차원 계단을 그려보려합니다. > 지난번 그렸던 직선계단을 이용해서지만 > 이번엔 ucs 변경이라는 어마어마한 난관에 봉착했습니다. > 나름대로 며칠 고민했지만 계속 기형계단만 그려지고 있습니다. 도저히 원인을 알수없는 부분도 있어서 염치없이 또 제가 작성한 리습 두개를 그대로 올리겠습니다. > > r24는 처음에 bp를 입력받고 그것을 이용해 > 나중 ucs를 바꾸려는 거고 > r25는 bp입력을 호출함수 r1안으로 미루고 ucs를 사용자가 직접 입력하는 형태로 하려했지만 뜻대로 되지 않지는 둘다 마찬가지입니다. > > 캐드에서 한번 띄워보면 아시겠지만 정말 기형계단들입니다. 바쁘시겠지만 꼭 도와주세요. > 감사합니다. > > (defun c:r24() > ;처음에 필요한 치수들을 입력받는다. > > (setq bp (getpoint "\n 계단 시작점? ")) > (setq width (getdist bp "\n 계단 가로폭? ")) > (setq tread (getdist bp "\n tread 치수? ")) > (setq riser (getdist bp "\n riser 치수? ")) > (setq thck (getdist bp "\n 계단판 두께? ")) > (setq s (getdist bp "\n 계단참 길이?" )) > > > ;한번 꺾인 계단을 그리기 위해 직선계단 그리기 r1함수를 두번 호출하는 형식을 취한다. > (command "ucs" "w" "") > (r1); 주의! r1함수는 부르기 전에 먼저 ucs와 bp를 설정해 주어야 한다. > ;계단참그리기 > (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) > (command "box" sp (list (- (car sp) s) (+ (cadr sp) thck)) (- (* 2 width)) "") > > ;다음 계단그리기를 위한 ucs설정 > ;일일이 점을 잡아주는것 말고 좀더 괜찮은 방법이 없을까요? > (command "ucs" "3" (list (- (car bp) (* 0.8 n tread)) > (+ (cadr bp) (- (* riser (+ n 1)) thck)) (- (caddr bp) (* 2 width))) > ;positive x > (list (- (car bp) (* 0.8 n tread)) > (+ (cadr bp) (- (* riser (+ n 1)) thck)) (caddr bp)) > ;posotive y > (list (car bp) > (+ (cadr bp) (- (* riser (+ n 1)) thck)) (- (caddr bp) (* 2 width))) > ;positive z > (list (- (car bp) (* 0.8 n tread)) > (+ (cadr bp) (* riser (+ n 1))) (- (caddr bp) (* 2 width))) > ) > ;다시 r1()호출 > (r1) > > ) > (defun r1() > > (setq n (getint "\n 계단 갯수?" )) > (command "box" bp > (list (+ (car bp) width) (+ (cadr bp) tread)) > thck "") > (setq box (entlast)) > (command "move" box "" bp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) > ;첫계단을 riser만큼 z축으로 올린다. > (setq sbp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) > ;첫계단의 왼쪽 끝점을 sbp로 설정한다. > (command "ucs" "za" sbp (list (- (car bp) width) (cadr bp))) > ;계단이 삐뚤어지는건 이 ucs 때문인것 같은데... > (setq fp '(0.0 0.0 0.0)) > > (repeat (- n 1) > (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) > (command "copy" box "" fp sp) > (setq box (entlast)) > (setq fp sp) > ) > ) > > (defun c:r25() > ;처음에 필요한 치수들을 입력받는다. > > > (setq width (getreal "\n 계단 가로폭? ")) > (setq tread (getreal "\n tread 치수? ")) > (setq riser (getreal "\n riser 치수? ")) > (setq thck (getreal "\n 계단판 두께? ")) > (setq s (getreal "\n 계단참 길이? " )) > > > ;한번 꺾인 계단을 그리기 위해 직선계단 그리기 r1함수를 두번 호출하는 형식을 취한다. > (command "ucs" "w" "") > (r1); 주의! r1함수는 부르기 전에 먼저 ucs와 bp를 설정해 주어야 한다. > ;계단참그리기 > (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) > (command "box" sp (list (- (car sp) s) (+ (cadr sp) thck)) (- (* 2 width)) "") > > > > ;다시 r1()호출 > (r1) > > ) > (defun r1() > (setq bp (getpoint "\n 계단 시작점? ")) > (command "ucs" pause) > (setq n (getint "\n 계단 갯수?" )) > (command "box" bp > (list (+ (car bp) width) (+ (cadr bp) tread)) > thck "") > (setq box (entlast)) > (command "move" box "" bp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) > ;첫계단을 riser만큼 z축으로 올린다. > (setq sbp (list (car bp) (cadr bp) (- (+ (caddr bp) riser) thck))) > ;첫계단의 왼쪽 끝점을 sbp로 설정한다. > (command "ucs" "za" sbp (list (- (car bp) width) (cadr bp))) > ;계단이 삐뚤어지는건 이ucs때문인것 같은데.... > (setq fp '(0.0 0.0 0.0)) > > (repeat (- n 1) > (setq sp (list (- (car fp) (* 0.8 tread)) (+ (cadr fp) riser))) > (command "copy" box "" fp sp) > (setq box (entlast)) > (setq fp sp) > ) > ) - - - - - - - - - - - - - - - - - - - - - 마티.. 김남갑입니다. 제가 정말로 요즘 좀 바쁘네요. 아래 허묘분님것은 답이 금방 나오는것이라서 답변을 해 드렸지만, 김마리님(근데 본명이신가요?) 질문은 조금 난해하군요. Command에서 ucs다음에 pause를 준건 무슨 이유인지..?? pause라는건 사용자로부터 단 한번만의 입력을 받습니다. 그리고 UCS라고 해서 별거 없습니다. 그냥 손으로(수동으로) UCS명령어를 실행해 보시고 그 순서대로 넣으시면 됩니다. 따라서.. UCS에 대한 명령부터 숙지하시고 작업을 하시는것이 순서일것 같습니다. 제가 시간에 여유가 있으면 일일이 분석을 해 드렸으면 좋겠지만, 프린팅 문제 하나로 이틀을 끙끙거리고 있습니다. 그럼... 이만..
묻고답하기
번호 분류 제목 글쓴이 등록일 조회수
57 CAD관련 이너캐드중 일부분의 기능만 사용할수 있나요? (1) 김홍규 1999-02-19 25063
56 CAD관련 inerCAD를 설치하고 나니 단축키가 먹질 않아서요? (1) 김홍규 1999-02-19 18829
55 CAD관련 Manual은 어떤방법으로 받을수 있나요? (1) 김희연 1999-02-19 19795
54 CAD관련 inerCAD와 ArchiOffice의 차이점... (3) 홍수정 1999-02-19 21338
53 CAD관련 시험판 cd 를 받아보고싶습니다. (3) 김희진 1999-02-13 19132
52 CAD관련 kc...? (3) 정형상 1999-02-13 21933
51 CAD관련 purge 수행시 다운 질의에 대한 보충 설명... (1) 정봉찬 1999-02-13 21256
50 CAD관련 kc명령이 듣질 않네요. (1) 정형상 1999-02-13 19653
49 CAD관련 purge 명령 수행시 다운.. (1) 정봉찬 1999-02-13 20808
48 CAD관련 CD는 언제쯤 받아 볼 수 있나요? (1) 한정구 1999-02-12 18409