Lv.0 등록일: 2014-02-282014-02-28T01:06:04+09:00 2014-02-28T01:06:04+09:00카테고리: AutoCAD & CADian 이런 리습도 가능하나요? 사각형안에 특정블럭을 불러와 크기에 맞게 넣기 고수님들의 도움이 요구되네요^^ 공유 Facebook 관련 있는 질문들 insert 삽입할때 레이어도 같이 변경가능할까요? 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요.. 6 답변 작성 순 최신 순 공감 순 [Deleted User] 2014-02-28T21:26:10+09:00답변 등록 답변 등록 일시 2014-02-28 9:26 pm xcsh님좋은 답변! 감사합니다.참고하겠습니다.^^ 차차 리습을 배워가야겠네요. 감사합니다. xcsh Lv.0 2014-02-28T17:56:30+09:00답변 등록 답변 등록 일시 2014-02-28 5:56 pm – 캐드는 거의다 단순작업입니다. 오래하다 보면 숙달이 될뿐이죠. 가능하면 어려움을 기회로 하여 배우시기를 바랍니다. (단순작업이라면 리습이 어려운 것은 아니므로 수작업일 때 작업기준만 확실하다면 누구나 만들수 있습니다.) – 도면을 함께 올리셔야 다른사람도 이해가 됩니다. (보이기 싫은 도면은 필요 부분만 별도로 잘라내어 올리시면됩니다. ) – 방법을 정리하실 때는 예외 발생의 경우도 생각 하셔서 언급해야 합니다. (컴퓨터는 바보라서 사용자가 지정해주지 않는 것은 못합니다.) – 예외사항이나 에라처리는 생략하겠습니다. (너무 범위가 넓어지므로 기본만 정리하여 드리겟습니다.) ========= 방법정리 =============================1.직사각형을 범위지정 (사각형의 지정방법이 명시되지 않았음) 간단한 대각선 선택으로 – 모서리 두점 선택 [ p1 과 p2로 지정 ] 2.기준점의 결정 (좌측상단좌표) p1 과 p2 두점중 x좌표는 작은값 y좌표는 큰값 [ p0로 지정 ] 3.수직거리와 수평거리 계산 p1 과 p2의 x, y값 차이를 계산 [ dx dy ] 4.수평 길이 dx값에 따라 블록이름을 선택 (범위에서 벗어날 경우 어떻게 할것인지 명시 안됨) 2000 ~ 2300 11블록 [ b_name = “11” ] 2301 ~ 2600 12블록 [ b_name = “12” ] 5.수직거리 dy값으로 삽입거리 결정 (지정한 길이가 아닌 경우에 처리방법이 명시안됨) dy = 2500 [ y1 = 345 y2 = 1415 y3 = 2133 ] dy = 2550 [ y1 = 485 y2 = 1245 y3 = 2345 ] 6. 삽입점에 차례로 배치 ========= 구성코드 =============================(defun c:R_ins() ;——————–1. 사각형범위선택———- (setq p1 (getpoint “사각형모서리선택:”)) (setq p2 (getcorner p1 “사각형대각점선택:”)) ;——————–2. 기준점계산 ———- (setq p0 (list (min (car p1)(car p2)) (max (cadr p1)(cadr p2)) ) ) ;——————–3. 수직거리 수평거리 ———- (setq dx (abs (- (car p1)(car p2))) dy (abs (- (cadr p1)(cadr p2))) ) ;——————–4. 블록선택 ———- (cond ((<= 2000 dx 2300) (setq b_name “11”)) ((<= 2301 dx 2600) (setq b_name “12”)) ( t (print “수평 거리가 ” (rtos dx) ” 입니다. 정의되지 않은 거리입니다.”) ) );cond ;——————–5. 수직거리선택 ———- (cond ((= dy 2500) (setq y1 345 y2 1415 y3 2133 )) ((= dy 2550) (setq y1 485 y2 1245 y3 2345 )) ( t (print “수직거리가 ” (rtos dy) ” 입니다. 정의되지 않은 거리입니다.”) ) );cond ;——————– 오스냅끄기 ———- (setq os_n (getvar “osmode”)) (if (< os_n 16384) (setvar “osmode” (+ os_n 16384)) ) ;——————–6.블록 배치 ———- (command “insert” b_name (mapcar ‘- p0 (list 0 y1)) 1 1 0) (command “insert” b_name (mapcar ‘- p0 (list 0 y2)) 1 1 0) (command “insert” b_name (mapcar ‘- p0 (list 0 y3)) 1 1 0) ;——————– 오스냅되돌리기 ———- (setvar “osmode” os_n) );defun====================================== [Deleted User] 2014-02-28T13:09:58+09:00답변 등록 답변 등록 일시 2014-02-28 1:09 pm 모두들 답변감사합니다.^^ 이거 만들곤 싶은데 어떻게 해야할지 . 단순작업이라서요. 참고할것좀 알려주시면 좋겟습니다.^^ 백발도인 Lv.31 2014-02-28T09:27:11+09:00답변 등록 답변 등록 일시 2014-02-28 9:27 am 이리습 저의 지인께서 몇년전 만들어 주셨는데 어찌 어찌하다보니 컴터에서 지워져서 찾을수가 없네요.지인께서도 하도 오래되고 컴터가 몇번 바뀌다보니 찾을수가 없다고 하네요. 수야12 Lv.21 2014-02-28T09:22:22+09:00답변 등록 답변 등록 일시 2014-02-28 9:22 am 음… 설명하신 글로 봐서는 그냥 단순 블럭인서트 개념이겠네요 …가능한데 정확하게 비포&애프터 를 도면으로 상세하게 적어주시는 센스가 필요합니다 (초보자 한테 설명하듯이 하나하나 상세하게 설명 하시는게 좋겠죠 ^^;;) [Deleted User] 2014-02-28T09:06:55+09:00답변 등록 답변 등록 일시 2014-02-28 9:06 am 할수는 있을 텐데요… 이정도면 커뮤니티사이트에 요청하기보다는 개발을 하셔야겠는데요?
좋은 답변! 감사합니다.
참고하겠습니다.^^ 차차 리습을 배워가야겠네요. 감사합니다.
– 캐드는 거의다 단순작업입니다. 오래하다 보면 숙달이 될뿐이죠.
가능하면 어려움을 기회로 하여 배우시기를 바랍니다.
(단순작업이라면 리습이 어려운 것은 아니므로 수작업일 때 작업기준만 확실하다면
누구나 만들수 있습니다.)
– 도면을 함께 올리셔야 다른사람도 이해가 됩니다.
(보이기 싫은 도면은 필요 부분만 별도로 잘라내어 올리시면됩니다. )
– 방법을 정리하실 때는 예외 발생의 경우도 생각 하셔서 언급해야 합니다.
(컴퓨터는 바보라서 사용자가 지정해주지 않는 것은 못합니다.)
– 예외사항이나 에라처리는 생략하겠습니다.
(너무 범위가 넓어지므로 기본만 정리하여 드리겟습니다.)
========= 방법정리 =============================
1.직사각형을 범위지정 (사각형의 지정방법이 명시되지 않았음)
간단한 대각선 선택으로 – 모서리 두점 선택
[ p1 과 p2로 지정 ]
2.기준점의 결정 (좌측상단좌표)
p1 과 p2 두점중 x좌표는 작은값 y좌표는 큰값
[ p0로 지정 ]
3.수직거리와 수평거리 계산
p1 과 p2의 x, y값 차이를 계산
[ dx dy ]
4.수평 길이 dx값에 따라 블록이름을 선택
(범위에서 벗어날 경우 어떻게 할것인지 명시 안됨)
2000 ~ 2300 11블록 [ b_name = “11” ]
2301 ~ 2600 12블록 [ b_name = “12” ]
5.수직거리 dy값으로 삽입거리 결정
(지정한 길이가 아닌 경우에 처리방법이 명시안됨)
dy = 2500 [ y1 = 345 y2 = 1415 y3 = 2133 ]
dy = 2550 [ y1 = 485 y2 = 1245 y3 = 2345 ]
6. 삽입점에 차례로 배치
========= 구성코드 =============================
(defun c:R_ins()
;——————–1. 사각형범위선택———-
(setq p1 (getpoint “사각형모서리선택:”))
(setq p2 (getcorner p1 “사각형대각점선택:”))
;——————–2. 기준점계산 ———-
(setq p0 (list (min (car p1)(car p2)) (max (cadr p1)(cadr p2)) ) )
;——————–3. 수직거리 수평거리 ———-
(setq dx (abs (- (car p1)(car p2)))
dy (abs (- (cadr p1)(cadr p2))) )
;——————–4. 블록선택 ———-
(cond
((<= 2000 dx 2300) (setq b_name “11”))
((<= 2301 dx 2600) (setq b_name “12”))
( t (print “수평 거리가 ” (rtos dx) ” 입니다. 정의되지 않은 거리입니다.”) )
);cond
;——————–5. 수직거리선택 ———-
(cond
((= dy 2500) (setq y1 345 y2 1415 y3 2133 ))
((= dy 2550) (setq y1 485 y2 1245 y3 2345 ))
( t (print “수직거리가 ” (rtos dy) ” 입니다. 정의되지 않은 거리입니다.”) )
);cond
;——————– 오스냅끄기 ———-
(setq os_n (getvar “osmode”))
(if (< os_n 16384) (setvar “osmode” (+ os_n 16384)) )
;——————–6.블록 배치 ———-
(command “insert” b_name (mapcar ‘- p0 (list 0 y1)) 1 1 0)
(command “insert” b_name (mapcar ‘- p0 (list 0 y2)) 1 1 0)
(command “insert” b_name (mapcar ‘- p0 (list 0 y3)) 1 1 0)
;——————– 오스냅되돌리기 ———-
(setvar “osmode” os_n)
);defun
======================================
모두들 답변감사합니다.^^
이거 만들곤 싶은데 어떻게 해야할지 . 단순작업이라서요.
참고할것좀 알려주시면 좋겟습니다.^^
이리습 저의 지인께서 몇년전 만들어 주셨는데 어찌 어찌하다보니 컴터에서 지워져서
찾을수가 없네요.
지인께서도 하도 오래되고 컴터가 몇번 바뀌다보니 찾을수가 없다고 하네요.
음… 설명하신 글로 봐서는 그냥 단순 블럭인서트 개념이겠네요 …
가능한데 정확하게 비포&애프터 를 도면으로 상세하게 적어주시는 센스가 필요합니다
(초보자 한테 설명하듯이 하나하나 상세하게 설명 하시는게 좋겠죠 ^^;;)
할수는 있을 텐데요…