; กำหนดตัวแปรต่างๆ ในฟังชั่น input
(setq dia (getdist "\n ขนาดเส้นผ่าศูนย์กลางท่อ : <20>
")) ; กำหนด dia (Diameter) เป็นขนาดเส้นผ่าศูนย์กลางท่อ
(if (not dia) (setq dia 20.0)) ; กำหนดค่าเริ่มต้นของ dia เป็น
20.0 mm. หรือ 1/2"
(setq tk (getint "\n ความหนาท่อ
<4> : ")); กำหนด tk เป็นความหนาท่อ (getint เลขจำนวนเต็ม)
(if (not tk) (setq tk 4)) ; กำหนดค่าเริ่มต้นของ tk เป็น 4 mm.
(setq p1 (getpoint "\n จุดเริ่มต้น Pick Frist Point: ")); กำหนดจุดเริ่มต้นของท่อ
(setq p2 (getpoint p1 "\n จุดสุดท้าย Pick Second Point: ")); กำหนดจุดสุดท้ายของท่อ
(command "_LINE" p1 p2 "") ; ใช้คำสั่ง line วาดเส้นแนวท่อ
(setq ssline (ssget "L")) ; กำหนดให้เส้นที่เราวาดเป็นตัวเลือก ssline ด้วย
(ssget "L")
(command "_CIRCLE" p1 (/ dia 2)) ; วาดวงกลมขนาดเส้นผ่าศูนย์กลางท่อ
dia
(setq ssdiax (ssget "L")) ; กำหนดให้วงกลมขนาดเส้นผ่าศูนย์กลางท่อ dia เป็นตัวเลือก
ssdiax ด้วย (ssget
"L")
(command "_CIRCLE" p1 (- (/ dia 2) tk)) ; วาดวงกลมขนาดเส้นผ่าศูนย์กลางท่อ dia-tk
(setq ssdian (ssget "L")) ; กำหนดให้วงกลมขนาดเส้นผ่าศูนย์กลางท่อ dia-tk เป็นตัวเลือก
ssdian ด้วย (ssget
"L")
(command "_SWEEP" ssdiax "" ssline) ;
ใช้คำสั่ง SWEEP ของ
3D ใช้ตัวเลือก ssdiax
("" = Enter) ใช้ตัวเลือก
ssline แนวท่อ
(setq ss3dx (ssget "L")) ; กำหนดให้ท่อ dia 3D เราวาดเป็นตัวเลือก
ss3dx ด้วย (ssget
"L")
(command "_SWEEP" ssdian ""
ssline) ; ใช้คำสั่ง SWEEP
ของ 3D ใช้ตัวเลือก ssdian ("" = Enter) ใช้ตัวเลือก ssline แนวท่อ
(setq ss3dn (ssget "L")) ; กำหนดให้ท่อ dia-tk 3D เราวาดเป็นตัวเลือก
ss3dn ด้วย (ssget
"L")
(command "_SUBTRACT" ss3dx "" ss3dn
"") ; ใช้คำสั่ง SUBTRACT
ตัดออกของ 3D ใช้ตัวเลือก
ss3dx ("" = Enter)
(princ) ; ลบechoสิ้นสุดคำสั่ง
) ; สิ้นสุดฟังก์ชัน
;;--------------------------------------------------------------------
(defun pipe2D (/ p1 p2)
(setq old_osnap (getvar
"osmode"))
|
(defun rtd (x) ;radial
to degee
(/
(* x 180) pi))
(defun dtr (x) ;degee
to radial
(* x
(/ pi 180)))
; กำหนดตัวแปรต่างๆ ในฟังชั่น input
(setq dia (getdist "\n ขนาดเส้นผ่าศูนย์กลางท่อ : <20> ")) ; กำหนด dia (Diameter) เป็นขนาดเส้นผ่าศูนย์กลางท่อ
(if (not dia) (setq dia 20.0)) ; กำหนดค่าเริ่มต้นของ dia เป็น 20.0
mm. หรือ 1/2"
(setq tk (getint "\n ความหนาท่อ <4> : ")); กำหนด tk เป็นความหนาท่อ (getint เลขจำนวนเต็ม)
(if (not tk) (setq tk 4)) ; กำหนดค่าเริ่มต้นของ tk เป็น 4 mm.
(setq p1 (getpoint "\n จุดเริ่มต้น Pick Frist Point:
")); กำหนดจุดเริ่มต้นของท่อ
(setq p2 (getpoint p1 "\n จุดสุดท้าย Pick Second Point:
")); กำหนดจุดสุดท้ายของท่อ
(setq ang0 (angle p1 p2)) ;;angle
0.0
(setq ang1 (+ ang0 (DTR 90.0))) ;;angle 90.0
(setq ang2 (+ ang0 (DTR 180.0))) ;;angle 180.0
(setq ang3 (+ ang0 (DTR 270.0))) ;;angle 270.0
(setq p3 (Polar p1 ang1 (/ dia 2.0))
p4
(Polar p3 ang0 (distance p1 p2))
p5 (Polar p4 ang3 dia)
p6
(Polar p5 ang2 (distance p1 p2))
p7
(Polar p1 ang1 (-(/ dia 2.0) tk))
p8
(Polar p7 ang0 (distance p1 p2))
p9
(Polar p1 ang3 (-(/ dia 2.0) tk))
p10
(Polar p9 ang0 (distance p1 p2))
)
(command "_line" p1 p2 ""); วาดเส้นตรงที่จะทำเป็นเส้นศูนย์กลาง center line
(setq sscen (ssget "L")) ; กำหนดให้เส้นที่เราวาดเป็นตัวเลือก sscen ด้วย (ssget "L")
(command "_pline" p3 p4 p5 p6 "c"); วาดเส้นต่อเนื่องเป็นท่อ
(command "_line" p7 p8 ""); วาดเส้นตรงที่จะทำเป็นเส้นประ hidden line
(setq sshid1 (ssget "L")) ; กำหนดให้เส้นที่เราวาดเป็นตัวเลือก sshid1 ด้วย (ssget "L")
(command "_line" p9 p10 ""); วาดเส้นตรงที่จะทำเป็นเส้นประ hidden line
(setq sshid2 (ssget "L")) ; กำหนดให้เส้นที่เราวาดเป็นตัวเลือก sshid2 ด้วย (ssget "L")
(if (null (tblsearch "LType"
"center")); ตรวจสอบเส้นศูนย์กลาง
center line ว่ามีอยู่หรือไม่
(command "_linetype"
"load" "center" "acad.lin" ""
""); ถ้าไม่มีอยู่ให้ทำการเรียกใช้งานเส้นศูนย์กลาง center line
);if null center line
(if (null (tblsearch "LType"
"HIDDEN")); ตรวจสอบเส้นประ
hidden line ว่ามีอยู่หรือไม่
(command "_linetype"
"load" "hidden" "acad.lin" ""
""); ถ้าไม่มีอยู่ให้ทำการเรียกใช้งานเส้นประ hidden line
);if null hidden line
(command "_chprop" sscen ""
"_ltype" "center" "" ; เปลี่ยนเส้นตรง
Line ให้เป็นเส้นศูนยกลาง center line
"_chprop" sshid1 sshid2 ""
"_ltype" "hidden" "" ; เปลี่ยนเส้นตรง
Line ให้เป็นเส้นประ hidden line
"_chprop" sscen sshid1 sshid2
"" "_ltScale" "1" "" ;แก้สเกลเส้นศูนย์กลางกับเส้นประเป็นสเกล 1
"_chprop" sscen sshid1 sshid2
"" "Color" "Yellow" "";เปลี่ยนสีเส้นศูนย์กลางกับเส้นประเป็นสเกล
เป็นสีเหลือง
)
(setvar "osmode" old_osnap)
(princ) ; ลบechoสิ้นสุดคำสั่ง
) ; สิ้นสุดฟังก์ชัน
|
(initget "2D 3D");ข้อความตัวเลือก
(setq view (getkword "Select View
[2D/3D] <2D>: "));Popup เมนูให้เลือก
(if (not view)(setq view "2D")) ; กำหนกค่าเริ่มต้นให้เป็น 2D
(cond
((= view "2D")(pipe2D)) ; ใช้ cond เป็นตัวเลือกถ้าค่า view = “2D” ให้เรียกใช้งาน
pipe2D
((= view "3D")(pipe3D)) ; ใช้ cond เป็นตัวเลือกถ้าค่า view = “3D” ให้เรียกใช้งาน
pipe3D
)
(princ)
)
(prompt "\nEnter P23D
to start.")