고객서비스

  • 프로그램다운로드
  • 팻치다운로드
  • 인증코드신청
  • 아키오피스자료실
  • 아키오피스강좌
  • 아키오피스동영상강좌
  • 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에 대한 명령부터 숙지하시고 작업을 하시는것이 순서일것 같습니다. 제가 시간에 여유가 있으면 일일이 분석을 해 드렸으면 좋겠지만, 프린팅 문제 하나로 이틀을 끙끙거리고 있습니다. 그럼... 이만..
묻고답하기
번호 분류 제목 글쓴이 등록일 조회수
19 CAD관련 도면타일틀 작성하기에서 축척을 임의로 수정하고픈데 (1) 남석우 1998-12-30 22481
18 CAD관련 누구 재건축에 필요한 서류 아세요~~~? (1) 김민주 1998-12-29 26641
17 CAD관련 [질문] InerCAD 사용중에 안되는 부분 (2) 김경용 1998-12-27 23417
16 CAD관련 이너캐드 (1) 나석찬 1998-12-21 21340
15 CAD관련 [리습]지난번 offset 답장에 대하여... (1) 허묘분 1998-12-14 25516
14 CAD관련 이너캐드 (1) 나석찬 1998-12-09 27265
13 CAD관련 [리습]offset 다시질문!! & entity정보에 ... (1) 허묘분 1998-12-08 26858
12 CAD관련 리습에서 ucs변경을 쉽게할 수 없나요? (1) 김마리 1998-12-08 24089
11 CAD관련 inercad로 고은글 5.0은 볼수 없나요 (1) 윤지영 1998-12-08 26480
10 CAD관련 [질문]리습에서 offset의 방향에 대하여... (1) 허묘분 1998-12-08 26495
처음페이지 이동 이전 10페이지 이동 다음 10페이지 이동 마지막페이지 이동