6
29
23
初来乍到
;; PIPE2FLAT;; draws layout of wrapper template;; with inside AND outside diameter.;; Onlys Askes for OD, and refers to standard pipe schedules for the rest.;; D = Diameter;; A = Angel;; R = Radians;; doesn't work with an OD of 6. I have no idea why. It works with 6.0000001 or 5.9999999. So, don't ask me.(defun dtr (a) ;; i told you not to delete this. (* pi (/ a 180.00)) ;; stop it.)(defun c:PIPE2FLAT () (setq D1 (getreal "Enter OD of Pipe, Please")) (setq A1 (getreal "Enter Angle")) (setq D1H (/ D1 2)) (setq R1 (dtr A1)) (setq SINR (sin R1)) (setq COSR (cos R1)) (setq TAN1 (/ SINR COSR)) (setq H1 (+ (* TAN1 D1) 3)) (setq PT1 (list 0 0)) (setq PT2 (list D1 0)) (setq PT3 (list D1H 0)) (setq PT4 (list D1 3)) (setq PT5 (list 0 H1)) (setq PT6 (list 0 3)) (entmake (list (cons 0 "line") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 8 "_Draft_NoProcess") (cons 10 PT1) (cons 11 PT2) ) ) (setq L1 (entlast)) ; base line (entmake (list (cons 0 "line") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 8 "_Draft_NoProcess") (cons 10 PT6) (cons 11 PT4) ) ) (setq L2 (entlast)) ; 2nd base line (entmake (list (cons 0 "line") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 8 "_Draft_NoProcess") (cons 10 PT2) (cons 11 PT4) ) ) (setq L3 (entlast)) ; shorter vertical (entmake (list (cons 0 "line") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 8 "_Draft_NoProcess") (cons 10 PT1) (cons 11 PT5) ) ) (setq L4 (entlast)) ; longer vertical (entmake (list (cons 0 "line") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 8 "_Draft_NoProcess") (cons 10 PT4) (cons 11 PT5) ) ) (setq L5 (entlast)) ; angel (entmake ; layout arc (list (cons 0 "Arc") (cons 8 "_Draft_NoProcess") (cons 10 PT3) (cons 40 D1H) (cons 50 (dtr 180)) (cons 51 0) ) ) (setq ARC1 (entlast)) ;; this section gets 6 even degrees on that arc you made (setq PT7 (polar PT3 (dtr (* (/ 180 6) 1)) D1H)) (setq PT7a (list (car PT7) 3)) (setq PT8 (polar PT3 (dtr (* (/ 180 6) 2)) D1H)) (setq PT8a (list (car PT8) 3)) (setq PT9 (polar PT3 (dtr (* (/ 180 6) 3)) D1H)) ;; apex (setq PT9a (list (car PT9) 3)) (setq PT10 (polar PT3 (dtr (* (/ 180 6) 4)) D1H)) (setq PT10a (list (car PT10) 3)) (setq PT11 (polar PT3 (dtr (* (/ 180 6) 5)) D1H)) (setq PT11a (list (car PT11) 3)) ;; takes those points and transfers them striaght up (setq PT7b (inters PT4 PT5 PT7 PT7a nil)) (setq PT8b (inters PT4 PT5 PT8 PT8a nil)) (setq PT9b (inters PT4 PT5 PT9 PT9a nil)) (setq PT10b (inters PT4 PT5 PT10 PT10a nil)) (setq PT11b (inters PT4 PT5 PT11 PT11a nil)) (entmake (list (cons 0 "line")