;***********************************************
(defun c:direc()
(graphscr)
(setvar “blipmode” 1)
(setq sp1 (getpoint “nStart point : “))
(setq om (getvar “orthomode”))
(setvar “orthomode” 1)
(setq sp2 (getpoint sp1 “nEnd point : “))
(command “line” sp1 sp2 “” )
(setq l_direc (angle sp1 sp2))
(setq sp1x (car sp1 )
sp1y (cadr sp1 )
sp2x (car sp2 )
sp2y (cadr sp2 ))
(command “ucsicon” “off”)
(command “ucs” “o” sp1)
(command “ucs” “z” (rtd l_direc))
(setq lp (getpoint “nSide to drawing: “))
(command “erase” “l” “” )
(setvar “orthomode” om)
(setvar “blipmode” 0)
(setq lpx (car lp )
lpy (cadr lp ))
(command “ucs” “”)
(command “ucsicon” “on”)
(if (> lpy 0)
(setq direc (+ l_direc (* 0.5 pi)))
(setq direc (- l_direc (* 0.5 pi)))
)
(setq l_direc1 l_direc
l_direc2 (+ l_direc pi))
)
;******************************************************************
;********************** Insulation drawing*************************
;******************************************************************
(defun c:insu(/ stp1 sp3 stp2 sp4 stp3 sp1 stp4 sp2
ea v_eq eq pp qq p0 p1 p2 p3 q0 q1 q2 q3
width length)
(graphscr)
(setvar “cmdecho” 0)
(COMMAND “UCS” “W”)
(SETQ t1 (MGET “nWidth of Insulation :” 75.0 3))
(c:direc)
(setvar “blipmode” 0)
(setq osm (getvar “osmode”))
(setvar “osmode” 0)
(setq sp3 (polar sp1 direc t1))
(setq sp4 (polar sp2 direc t1))
;******************** Aux points***************************
(if (< lpy 0)
(setq stp1 sp3 stp2 sp4 stp3 sp1 stp4 sp2
direc (+ direc pi))
(setq stp1 sp1 stp2 sp2 stp3 sp3 stp4 sp4)
)
(setq culr (getvar “clayer”))
(command “layer” “s” “insulation” “” “”)
(command “pline” stp1 stp3 stp4 stp2 “c”)
(setq width t1
length (distance sp1 sp2))
(setq v_eq (/ width 4))
(setq ea (fix (/ length v_eq)))
(setq eq (/ (/ length ea) 2))
(setq pp (polar stp1 direc eq))
(setq qq (polar stp1 direc (- width eq)))
;******************** Start Arc dwg ***************************
(setq lp1 (polar stp1 direc (- width eq )))
(setq q1 (polar qq l_direc eq))
(command “arc” “c” lp1 q1 “a” “90”)(P-ADD)
;******************** Repeat ***************************
(repeat ea
(setq p0 nil p1 nil p2 nil p3 nil q0 nil q1 nil q2 nil q3 nil)
(setq p0 (polar pp l_direc 0))
(setq p1 (polar p0 l_direc eq))
(setq p2 (polar p1 l_direc eq))
(setq p3 (polar p2 l_direc eq))
(setq q0 (polar qq l_direc 0))
(setq q1 (polar q0 l_direc eq))
(setq q2 (polar q1 l_direc eq))
(setq q3 (polar q2 l_direc eq))
(command “line” p0 q1 “”)(P-ADD)
(command “line” q1 p2 “”)(P-ADD)
(command “arc” “c” p1 p0 p2)(P-ADD)
(command “arc” “c” q2 q3 q1)(P-ADD)
(setq pp (polar p1 l_direc eq))
(setq qq (polar q1 l_direc eq))
)
(command “break” “l” q3 stp4)
(command “layer” “s” culr “”)
(setq direc nil)
(setq l_direc nil)
(command “_.pedit” “_M” ss “” “_Y” “_J” “” “”)
(setvar “cmdecho” 0)
(setvar “blipmode” 0)
(setvar “osmode” osm)
(princ)
)
(defun p-add ()
(if (not ss) (setq ss (ssadd)))
(ssadd (entlast) ss)
)
(defun rtd (a) (/ (* a 180.0) pi))
위에는 단열재 그리기 리습을 구해서 적용해보는데 오류가 납니다.
따로 파일이 필요한건지 궁금하네요.
그리고 아래 첨부파일은 여기서 찾은 리습인데요.
이거 간격수정 어떻게 하나요?
안에 값을 수정하라하는데 뭘 수정해야할 지 모르겠습니다.
간격이 벌어진 단열재 말고 완전이 붙어있는 단열재를 그리고 싶습니다.