안녕하세요
어렵게 구한 문그리기인데..ㅋㅋㅋ 2007버전입니다.
적용을 잘 못한건지….2014에서는 벽체선택2번째까지만 정상적으로 되어서
벽 절단만 되네요
확인부탁드립니다. 그리고….
이격거리 설정이 되게 수정 가능할까요???
;============================================================
; 문 그리기 Main Program(9707_choi)
;————————————————————
(defun c:dr(/ myerror cl os bm wsk pt1 pt2 pt3 p1 p2 p3 a1 a2 p4 p11 p12 p13
p14 p15 p21 p22 p23 ly sil ss ss1
p24 p32 p34 p42 p44 p5 p51 p6 p7 ug k u e sno no)
;—————– Internal error handler ——————-
(defun myerror(S)
(if (/= s “Function cancelled”)
(princ (strcat “nError:” s))
)
(setq *error* olderr)
(setvar “osmode” os)
(setvar “clayer” cl)
(setvar “blipmode” bm)
(princ)
)
(setq olderr *error* *error* myerror)
;————————————————————
(setvar “cmdecho” 0)
(setq cl (getvar “clayer”) os (getvar “osmode”) bm (getvar “blipmode”))
(setvar “blipmode” 1)
(if (= ds nil) (setq ds 1000))
(prompt “문의 크기가 1200이상이면 두짝으로 그려짐…”)
; (setq wsk (getint (strcat “nEnter Wide of door <” (itoa ds) “>:”)))
(setq wsk (getint (strcat “n문의 크기 <” (itoa ds) “>:”)))
(if (numberp wsk) (setq ds wsk))
(setvar “osmode” 32)
; (setq pt1 (getpoint “nPick the Hinge point-> int of “))
(setq pt1 (getpoint “n벽체상의 정첩 설치점-> int of “))
(setvar “osmode” 128)
; (setq pt2 (getpoint pt1 “nTouch opposite wall-> per of “))
(setq pt2 (getpoint pt1 “n맞은편 벽체선택-> per of “))
(setvar “osmode” 512)
; (setq pt3 (getpoint pt1 “nSide of point for Openning-> nea of”))(terpri)
(setq pt3 (getpoint pt1 “n문이 닫히는 쪽 벽체 임의의 점 선택-> nea of”))(terpri)
(setvar “blipmode” 0) (setvar “osmode” 0)
(setq p1 pt1 p2 pt2)
(setq a1 (angle p1 pt3) p3 (polar p1 a1 ds)
a2 (angle p1 p2) p4 (polar p3 a2 (distance p1 p2))
p11 (polar p1 (+ pi a2) 9) p12 (polar p11 a1 30)
p13 (polar p12 a2 40) p14 (polar p13 a1 12)
p15 (polar p12 a1 40) p21 (polar p2 a2 9)
p22 (polar p21 a1 30) p23 (polar p22 (+ pi a2) 40)
p24 (polar p23 a1 12) )
(if (< ds 1200) (dr01) (dr02))
(if (= dr1sil nil) (setq dr1sil “N”))
; (setq xt (strcat “Draw sill line<” dr1sil “>? :”))
(setq xt (strcat “문턱을 설치하겠는가<” dr1sil “>? :”))
(setq sil (getstring xt))
(if (= sil “”) (setq sil dr1sil))
(if (or (= sil “y”) (= sil “Y”)) (progn
; (command “color” “2”)
(command “line” p12 (polar p12 a1 (- ds 60)) “”)
(command “line” p22 (polar p22 a1 (- ds 60)) “”)
(command “line” p14 (polar p14 a1 (- ds 84)) “”)
(command “line” p24 (polar p24 a1 (- ds 84)) “”)
))
(setq dr1sil sil)
(command “color” “bylayer”)
(command “layer” “s” cl “”)
(setvar “blipmode” bm) (setvar “osmode” os)
(prin1)
)
;;SUB PRG. (single door)…
(defun dr01 ()
(setq p32 (polar p12 a1 (- ds 60)) p34 (polar p14 a1 (- ds 84))
p44 (polar p24 a1 (- ds 84)) p42 (polar p22 a1 (- ds 60))
p5 (polar p12 (+ pi a2) (- ds 60))
p51 (polar p5 a1 40) p6 (polar p1 a1 (/ ds 2))
p7 (polar p2 a1 (/ ds 2)))
(command “color” “100”)
; (laset “wal”);벽체 레이어
(command “line” p1 p2 “”)
(command “line” p3 p4 “”)
(command “color” “bylayer”)
(setq ss (ssget “c” p1 p4))
(setq ss1 (ssget “X” (list (cons 62 100))))
(setq ug (strcase “cen”)); 중심선 레이어
(setq k 0)
(repeat (sslength ss)
(setq e (entget (ssname ss k)))
(setq u (cdr (assoc 8 e)))
(if (= ug u)
(ssdel (ssname ss k) ss)
(setq k (1+ k))))
(setq sno (sslength ss) no -1)
(command “trim” ss1 “”)
(repeat sno (setq no (1+ no))
(command (list (ssname ss no) p6)))
(command “”)
(command “change” ss1 “” “p” “c” “bylayer” “”)
(laset “dor”)문 레이어
(command “color” “7”); 문틀 색상 정의
(command “pline” p1 p11 p12 p13 p14 p24 p22 p21 p2 “”)
(command “mirror” “l” “” p6 p7 “”)
(command “color” “bylayer”)
(command “arc” p32 “e” p5 “d” (polar p32 (+ pi a2) (- ds 40)))
(command “pline” p5 p12 p15 p51 “”)
)
;;SUB PRG. (double door)…
(defun dr02 ()
(setq p5 (polar p12 (+ pi a2) (- (/ ds 2) 30))
p51 (polar p5 a1 40)
p6 (polar p11 a1 (/ ds 2))
p7 (polar p21 a1 (/ ds 2)))
(setvar “blipmode” 0)
(command “color” “100”)
; (laset “wal”);벽체 레이어
(command “line” p1 p2 “”)
(command “line” p3 p4 “”)
(command “color” “bylayer”)
(setq ss1 (ssget “X” (list (cons 62 100))))
(setq ss (ssget “c” p1 p4) ug (strcase “cen”) k 0);중심선 레이어
(repeat (sslength ss)
(setq e (entget (ssname ss k)))
(setq u (cdr (assoc 8 e)))
(if (= ug u)
(ssdel (ssname ss k) ss)
(setq k (1+ k)))
)
(setq sno (sslength ss) no -1)
; (command “trim” “w” p1 p4 “”)
(command “trim” ss1 “”)
(repeat sno
(setq no (1+ no))
(command (list (ssname ss no) p6)))
(command “”)
(command “change” ss1 “” “p” “c” “bylayer” “”)
(laset “dor”);문 레이어
(command “color” “7”); 문틀 색상 정의
(command “pline” p1 p11 p12 p13 p14 p24 p22 p21 p2 “”)
(command “mirror” “l” “” p6 p7 “”)
(command “color” “bylayer”)
(command “arc” p6 “e” p5 “d” (polar p6 (+ pi a2) (- (/ ds 2) 30)))
(command “mirror” “l” “” p6 p7 “”)
(command “pline” p5 p12 p15 p51 “”)
(command “mirror” “l” “” p6 p7 “”)
)
공유
파일이 모자라요 제 짐작인데 레이어 설정 구문이 없습니다..
laset 을 못찾겠다고 나오네요.. 일단 작동은 하게 해 놨습니다.
이격거리 설정이 무슨 말씀인지 모르겠네요 이격거리에 대한 구문 자체가 없는데요..
문 크기 말씀하시는 것은 아니시죠 ??
제가 구한 파일은 이건데요..
2014에서 실행이 가능한건지 확인 부탁드리고요…
이격거리 설정은…여기에는 없는데…
벽면에서 50이나 100 떨어져서 문이 그려질 수 있게 추가 할 수 있을까요??
함 봐보세요 이격이 위에것입니까 밑에것입니까 ?
이곳에는 건축계통도 있고 기계계통도 있고 전기계통도 있기때문에 알아듣기 쉽게 정확한
질문이 필요합니다 ^^;;
건축도면을 그릴때,
문과 직각으로 만나는 옆의 벽에서 거리를 두는것을 말하는거에요…
파일첨부했습니다~`
이격 옵션 넣었습니다
완전 감사합니다. ㅋㅋㅋ
그런데요 또 수정 부탁드리고 싶어요~~`
파일첨부한것처럼….
문짝이 닫힌직사각형이고…하늘색이었으면합니당…
그리고 문틀도 닫힌모양으로 노란 동그라미로 그려진 부분처럼 되었으면 완전 완전 감사하고요,
(문틀 뒤에는 벽체선이 생겨야하고요…)
그리고 벽체가 단절되고 새로 생기는 부분이…색상이나 레이어가 벽체랑 동일한 구조로 변경이 안되요..
요것들도 수정 부탁드립니다~~~~꾸벅 꾸벅
밥이라도 사드려야하는거 아닌가싶네요……ㅋㅋ친구추가합니다…ㅋㅋㅋㅋ