Pressure Vessel.lsp

UNKNOWN ;************************************** ; Name: pv (pressure vessel design) ; Description:Design a pressure vess

Views 83 Downloads 0 File size 13KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNKNOWN ;************************************** ; Name: pv (pressure vessel design) ; Description:Design a pressure vessel that according with China Spec.(basic ly same as ASME) ; By: zuo wei ; ; ; Inputs:Design Pressure, Inside diameter, Shell Height. ; ; Returns:A Design summary table and to draw the designed pressure vessel. ; ;Assumes:None ; ;Side Effects:None ;This code is copyrighted and has limited warranties. ;Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.84/lngWId.13/ qx/vb/scripts/ShowCode.htm ;for details. ;************************************** (defun c:pv () (setvar "osmode" 0) (setq tth (getvar "textsize")) (setq clu (list "Design Codes" "Densign Pressure MPa (G)" "Design Temperature (oC)" "Inside Diameter (mm)" "Vessel Hight (mm)" "Medium" "Test Pressure MPa" "Volume (m^3)" "Empty Weight (kg)" "Body Materials" "Shell Thick (mm)" "Head Thick (mm)" "Outside Paint Area (m^2)" ) ) (setq pt0 (getpoint "\nDRAWING BASE POINT: ")) (if (setq prss (getreal "\ Design Pressure at MPa (1 psi=0.007Mpa) : ")) (if (setq mat (getstring "\ Vessel Material: ")) (if (setq vid (getreal "\ Vessel ID in mm: ")) (if (setq shll (getreal "\ Shell Length: ")) (list (cons 10 prss) (cons 20 mat) (cons 30 vid) (cons 40 shll) (cons 50 pt1) ) ) ) ) ) (if (< prss 0.1) (setq prss 0.1)) (setq fy 107) (cond ((eq mat "16Mn") (setq fy 163)) ((eq mat "A709")(setq fy 163)) ((eq mat "Gr50") (setq fy 163)) ((eq mat "Q345") (setq fy 163))) ;(command "text" pt0 "" 0 fy) (setq st (/ (* prss vid) (- (* fy 2) prss))) (setq st (+ 2 st))

(setq ht (/ (* prss vid) (- (* fy 2) (* 0.5 prss)))) (setq ht (+ 3 ht)) (if (< st (+ ht 2)) (setq st ht)) (if (< ht st) (setq ht (+ 0 st)) ) (Setq st0 (rtos (* 2 (atof (rtos (/ st 2) 2 0)))2 0 )) (Setq ht0 (rtos (* 2 (atof (rtos (/ ht 2) 2 0)))2 0 )) (setq st (atof st0)) (setq ht (atof ht0)) (Setq vid0 (* 200 (atof (rtos (/ vid 200) 2 0)))) (setq vid1 (rtos vid0 2 0)) (setq vid vid0) (setq vsl (+ shll (/ vid 2) ht ht)) (setq tprss (* prss 1.5)) (setq vvl (/ (+ (* pi (/ vid 2) (/ vid 2) shll) (* 1.3333333 pi (expt (/ vid 2) 3)) ) (expt 1000 3) ) ) (setq vwg (/ (* 1.2 (+ (* pi shll st vid) (* pi vid vid ht)) 7850) (expt 1000 3) ) ) (setq parea (/ (+ (* pi shll vid) (* pi vid vid)) (expt 1000 2))) (Setq prss0 (rtos prss 2 2)) (Setq (Setq (Setq (Setq

vsl0 (rtos vsl 2 0)) tprss0 (rtos tprss 2 2)) vvl0 (rtos vvl 2 2)) vwg0 (rtos vwg 2 2))

(Setq parea0 (rtos parea 2 2)) (setq

rw (list "GB-150" prss0 "Ambient" "Air" tprss0 vvl0 vwg0matst0 ht0 parea0 )

vid1 vsl0

) (setq i 0) (setq tth (/ (+ vsl vid vid) 200)) (setvar "textsize" tth) (setq tt1 (* tth 1.8)) (setq tt2 (* tth 26)) (setq pt1 (polar pt0 0 vid)) (while (