고객서비스

  • 프로그램다운로드
  • 팻치다운로드
  • 인증코드신청
  • 아키오피스자료실
  • 아키오피스강좌
  • 아키오피스동영상강좌
  • 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에 대한 명령부터 숙지하시고 작업을 하시는것이 순서일것 같습니다. 제가 시간에 여유가 있으면 일일이 분석을 해 드렸으면 좋겠지만, 프린팅 문제 하나로 이틀을 끙끙거리고 있습니다. 그럼... 이만..
묻고답하기
번호 분류 제목 글쓴이 등록일 조회수
9719 기능보강요청 도면층 일괄정리 기능이 있었으면 좋겠습니다. (2) 신범석 2026-05-16 245
9718 CAD관련 오토캐드 오류문의 (1) 이재상 2026-05-08 690
9717 CAD관련 ArchiOffice 용접기호 그리기 아키오피스 2026-04-30 940
9716 CAD관련 종단면도 작성시 스타프 간격 조절 가능한가요? (2) 신덕승 2026-04-10 2520
9715 CAD관련 2027버전이 나왔군요. (5) 신범석 2026-04-03 2115
9714 CAD관련 2027버젼 출시일점 좀 여쭙니다. (2) 박태진 2026-03-31 2461
9713 CAD관련 ; error: no function definitio ... (1) 이동문 2026-03-28 2209
9712 CAD관련 e(erase) 명령어 실행시 에러 해결 방법 문의 ( ... (1) 이동문 2026-03-25 2335
9711 기능보강요청 도면 분리시, 도면축척 변경되는 문제 (1) 신범석 2026-03-20 1606
9710 LISP관련 xmf (5) 이근일 2026-03-18 2773
처음페이지 이동 이전 10페이지 이동 다음 10페이지 이동 마지막페이지 이동