(defun c:elbowd (/ dia rad spa deg spa1 pt1 dia2 rad1 deg1 slope pp1 pp2 pp3 pp4 pl1 pl2 thk)
(setvar “cmdecho” 0)
(setvar “orthomode” 1)
(setvar “osmode” 0)
(setvar “cecolor” “3”)
(setq dia 1000
thk 6
rad (* dia 1.5)
spa 60
deg 90
spa1 4)
(setq pt1 (getpoint “n Base Point >”))
(princ “n Duct center 직경을 입력하세요 < “)(princ dia)
(setq dia (getreal ” > : “))
(if (= nil dia) (setq dia 1000))
(princ “n Duct center 두께를 입력하세요 < “)(princ thk)
(setq thk (getreal ” > : “))
(if (= nil thk) (setq thk 6))
(setq rad (* dia 1.5))
(princ “n Elbow 반지름을 입력하세요 < 1.5D = “)(princ rad)
(setq rad (getreal ” > : “))
(if (= nil rad) (setq rad (* dia 1.5)))
;; duct bending 직경산출 (=dia-thk)
(setq dia (- dia thk))
(princ “n 등분수를 입력하세요 < “)(princ spa)
(setq spa (getreal ” > : “))
(if (= nil spa) (setq spa 60))
(princ “n Elbow 각도를 입력하세요 < “)(princ deg)
(setq deg (getreal ” > : “))
(if (= nil deg) (setq deg 90))
(princ “n Elbow 편수를 입력하세요 < “)(princ spa1)
(setq spa1 (getreal ” > : “))
(if (= nil spa1) (setq spa1 4))
; (setq dia2 (/ dia 2))
(setq rad1 (* (tan (dtr (/ deg spa1))) (- rad (/ dia 2))))
(setq dia1 (/ (* dia pi) spa))
(setq deg1 (/ 360 spa))
(setq pp1 (polar pt1 (dtr 90) (* (- rad (/ dia 2)) (tan (dtr (/ 90.0 (* spa1 2)))))))
(command “pline” pt1 pp1 “”)
(setq pl1 (ssget “l”))
(repeat (/ spa 2)
(progn
(setq slope (abs (- (/ dia 2) (* (/ dia 2) (cos (dtr deg1))))))
(setq pp2 (polar pp1 0 dia1))
(setq pp3 (polar pp2 (dtr 90) (* (tan (dtr (/ 90.0 (* spa1 2)))) slope)))
(setq deg1 (+ deg1 (/ 360 spa)))
(command “pline” “” pp3 “”)
(command “pedit” “l” “j” pl1 “” “”)
(setq pl1 (ssget “l”))
(setq pp1 pp2)
));;end repeat
(setq pl1 (ssget “l”))
(command “mirror” “l” “” pt1 (polar pt1 0 (/ (* dia pi) 2)) “”)
(command “pedit” “l” “j” pl1 “” “”)
(setq pl1 (ssget “l”))
(command “mirror” “l” “” pp3 (polar pt1 0 (/ (* dia pi) 2)) “”)
(command “pedit” “l” “j” pl1 “” “”)
(setvar “cecolor” “bylayer”)
(setvar “osmode” 37)
);;end defun
제일 댓글 달기 싫은 글이 이런거죠.