พูดง่ายๆ ก็คือ มาโครคือการใช้สูตรในการประมวลผลส่วนต่างๆ ตัวอย่างเช่น วงรี ถ้าไม่มีมาโคร เราต้องคำนวณจุดบนเส้นโค้งทีละจุด แล้วค่อยๆ ประมาณด้วยเส้นตรง หากเป็นชิ้นงานที่ต้องการความเรียบสูง เราจำเป็นต้องคำนวณจุดต่างๆ จำนวนมาก แต่หลังจากใช้มาโครแล้ว เราใส่สูตรวงรีเข้าไปในระบบ แล้วให้พิกัด Z และบวกจำนวนทุกครั้ง จากนั้นจึง มาโครจะคำนวณพิกัด X และทำการตัดโดยอัตโนมัติ อันที่จริงแล้วหน้าที่หลักของมาโครในโปรแกรมคือการคำนวณ
รูปภาพ
01
เกี่ยวกับโปรแกรมมาโคร
โปรแกรมมาโครคืออะไร
เมื่อตั้งโปรแกรม เราจะเก็บชุดคำสั่งที่สามารถทำหน้าที่บางอย่างให้สมบูรณ์ไว้ในหน่วยความจำ เช่น รูทีนย่อย และเรียกคำสั่งเหล่านั้นด้วยคำสั่งทั่วไป เมื่อใช้งาน เราเพียงแค่ให้คำสั่งทั่วไปนี้เพื่อเรียกใช้ฟังก์ชันที่เก็บไว้ ชุดคำสั่งนี้เรียกว่า user macro program body หรือเรียกสั้นๆ ว่าโปรแกรมมาโคร
คำสั่งทั่วไปนี้เรียกว่าคำสั่งเรียกแมโครของผู้ใช้ เมื่อเขียนโปรแกรม โปรแกรมเมอร์จะต้องจำคำสั่งมาโครเท่านั้น แต่ไม่ต้องจำโปรแกรมมาโคร
การเขียนโปรแกรมมาโครจะใช้เมื่อใด
1) เส้นโค้งสูตรการประมวลผลที่ตั้งโปรแกรมด้วยตนเอง (การคำนวณอย่างง่าย การป้อนข้อมูลที่รวดเร็ว)
2) เส้นทางการตัดปกติ (เป็นโมดูลการตัด)
3) การควบคุมระหว่างโปรแกรม (การตั้งโปรแกรม)
4) การจัดการเครื่องมือ (การสึกหรอของเครื่องมือ)
5) การวัดอัตโนมัติ (โพรบในเครื่องจักร)
ความแตกต่างระหว่างโปรแกรมมาโครกับโปรแกรมปกติ
1) ในเนื้อหาของโปรแกรมมาโคร สามารถใช้ตัวแปรได้ สามารถกำหนดค่าให้กับตัวแปรได้ สามารถคำนวณระหว่างตัวแปรได้ และโปรแกรมสามารถกระโดดได้
2) ในโปรแกรมทั่วไป สามารถระบุได้เฉพาะค่าคงที่ และไม่สามารถดำเนินการระหว่างค่าคงที่ได้ โปรแกรมสามารถทำงานตามลำดับเท่านั้นและไม่สามารถข้ามได้ ดังนั้นฟังก์ชันต่างๆ จึงได้รับการแก้ไขและไม่สามารถเปลี่ยนแปลงได้
3) ฟังก์ชันมาโครเป็นฟังก์ชันพิเศษสำหรับผู้ใช้ในการปรับปรุงประสิทธิภาพของเครื่องมือกล CNC และการใช้โปรแกรมมาโครอย่างชำนาญในการประมวลผลชิ้นงานที่คล้ายกันจะได้ผลลัพธ์สองเท่าโดยใช้ความพยายามเพียงครึ่งเดียว
02
ตัวแปรและรูปแบบของโปรแกรมมาโคร
คุณสมบัติของโปรแกรมมาโคร
โปรแกรมแมโครสามารถใช้ตัวแปร และสามารถใช้ตัวแปรเพื่อดำเนินการที่สอดคล้องกัน ค่าตัวแปรจริงสามารถกำหนดให้กับตัวแปรโดยคำสั่งของโปรแกรมแมโคร
สามประเภทของตัวแปร
รูปแบบการแสดงตัวแปรของระบบ CNC คือ "#" ตามด้วยตัวเลข 1 ถึง 4 หลัก และตัวแปรมี 3 ประเภทคือ
(1) ตัวแปรโลคัล: #1~#33 เป็นตัวแปรที่ใช้ในโปรแกรมแมโคร ซึ่งใช้สำหรับการถ่ายโอนตัวแปรอิสระ
(2) ตัวแปรทั่วไป: ผู้ใช้สามารถใช้งานได้อย่างอิสระ และเป็นเรื่องปกติสำหรับแต่ละรูทีนย่อยและแต่ละโปรแกรมมาโครที่เรียกโดยโปรแกรมหลัก #100~#149 หลังจากปิดเครื่อง ค่าตัวแปรทั้งหมดจะถูกล้าง ในขณะที่ #500~#509 หลังจากปิดเครื่อง ค่าตัวแปรจะถูกบันทึก
(3) ตัวแปรระบบ: กำหนดโดยตามด้วยตัวเลข 4 หลัก สามารถรับข้อมูลแบบอ่านอย่างเดียวหรืออ่าน/เขียนที่อยู่ในตัวประมวลผลเครื่องมือกลหรือหน่วยความจำ NC รวมถึงพารามิเตอร์การแลกเปลี่ยนที่เกี่ยวข้องกับตัวประมวลผลเครื่องมือกล การได้มาซึ่งสถานะเครื่องมือกล พารามิเตอร์ ข้อมูลระบบ เช่น พารามิเตอร์การประมวลผล
รูปแบบการเรียกใช้โปรแกรมมาโครอย่างง่าย
การเรียกใช้โปรแกรมมาโครอย่างง่ายหมายความว่าในโปรแกรมหลัก โปรแกรมมาโครสามารถเรียกได้ด้วยบล็อกเดียว
รูปแบบการเรียกใช้:
G65 P (หมายเลขโปรแกรมมาโคร) L (จำนวนการทำซ้ำ) (การกำหนดตัวแปร)
ในหมู่พวกเขา: G65—คำสั่งเรียกโปรแกรมมาโคร;
P (หมายเลขโปรแกรมมาโคร) - รหัสของโปรแกรมมาโครที่จะเรียก
L (จำนวนการทำซ้ำ) - จำนวนการรันซ้ำของโปรแกรมมาโครเมื่อจำนวนการทำซ้ำคือ 1 สามารถละเว้นได้
(การกำหนดตัวแปร) - กำหนดค่าให้กับตัวแปรที่ใช้ในโปรแกรมมาโคร
สิ่งที่เหมือนกันระหว่างโปรแกรมมาโครและรูทีนย่อยคือโปรแกรมมาโครหนึ่งโปรแกรมสามารถเรียกใช้โดยโปรแกรมมาโครอื่นได้สูงสุด 4 ครั้ง
รูปแบบการเขียนโปรแกรมมาโคร
รูปแบบการเขียนของโปรแกรมแมโครจะเหมือนกับของรูทีนย่อย รูปแบบคือ:
0-(0001-8999 คือหมายเลขโปรแกรมมาโคร)
คำสั่ง N10
N-M99
ในเนื้อหาของโปรแกรมมาโครข้างต้น นอกจากคำสั่งโปรแกรมที่ใช้กันทั่วไปแล้ว ยังสามารถใช้ตัวแปร คำสั่งการดำเนินการเลขคณิต และคำสั่งควบคุมอื่นๆ ได้อีกด้วย ค่าตัวแปรถูกกำหนดไว้ในคำสั่งเรียกโปรแกรมมาโคร
03
แอปพลิเคชันโปรแกรมมาโครระบบ FANUC
(1) การเซาะร่องโปรแกรมมาโคร
รูปภาพ
1) คำสั่ง WHILE
G00 X52 Z2;
#2=-14;
เป็นจุดเริ่มต้นของเครื่องมือในทิศทาง z (เนื่องจากความกว้างของเครื่องมือคือ 4 มม. จุดเริ่มต้นจึงถูกกำหนดไว้ที่ Z-14)
ในขณะที่ [#2 GE -30] DO2;
เป็นข้อจำกัดในแนว z เมื่อ z เท่ากับ -30 ทิศทาง z จะไม่เคลื่อนที่อีกต่อไป
G00 Z〔#2〕;
ตำแหน่งปัจจุบันในทิศทาง z
#2=#2-2;
ระยะเคลื่อนที่ในทิศทาง z เคลื่อนที่ครั้งละ 2 มม
#1=52;
คือจุดเริ่มต้นของมีดในแนว x
ในขณะที่ [#1 GE 20] DO1;
ข้อ จำกัด ในทิศทาง X เมื่อเส้นผ่านศูนย์กลางเท่ากับ 20 จะไม่ตัดอีกต่อไป
G01 X〔#1〕F0.2;
ระยะกินลึกในแนว x
G00 X〔#1 บวก 1〕;
จำนวนการถอยกลับสัมพัทธ์ในทิศทาง x
#1=#1-1;
ระยะก้าวในแนว x (ตัดครั้งละ 1 มม.)
สิ้นสุด 1;
G00 X52;
สิ้นสุด 2;
โปรแกรมที่สมบูรณ์:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
ในขณะที่〔#2GE-30〕DO2; END1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
ในขณะที่〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 บวก 1〕;
#1=#1-1;
G00 X52;
สิ้นสุด 2;
G00 X150 Z150;
M30;
2) คำสั่ง IF
G00 X52 Z-2;
#1=-14;
เป็นจุดเริ่มต้นของทิศทาง z ของเครื่องมือ (ความกว้างของเครื่องมือคือ 4 มม.)
N2 #1=#1-2;
คือการเคลื่อนที่ในแนวแกน z
#2=52;
คือจุดเริ่มต้นของเครื่องมือในแนว x
N1#2=#2-1;
คือระยะขั้นในแนว x (ความลึกของการตัด 1 มม. แต่ละครั้ง)
G01 X〔#2〕F0.2;
ตำแหน่งปัจจุบันในทิศทาง X
G00 X〔#2 บวก 1〕;
จำนวนการถอยกลับสัมพัทธ์ในทิศทาง X
IF [#2 GE 21] GOTO1;
ข้อจำกัดในทิศทาง x (เมื่อค่า x ถูกตัดเป็น 20 จะดำเนินการตามขั้นตอนต่อไปนี้ และจะไม่มีการส่งคืน)
G00 X52;
X ถอยกลับไปที่ตำแหน่ง 52
G00 Z〔#1〕;
ตำแหน่งปัจจุบันในทิศทาง Z
IF [#1 GE -30] GOTO2;
ข้อจำกัดในทิศทาง Z เมื่อ z เท่ากับ -30 ทิศทาง z จะไม่เคลื่อนที่
โปรแกรมที่สมบูรณ์:
O1234;
G40G97G99;
T0101;
S1000M3;
G00 X52 Z-2;
#1=-14;
N2 #1=#1-2;
#2=52;
N1#2=#2-1;
G01 X〔#2〕F0.2;
G00 X〔#2 บวก 1〕;
ถ้า〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) การเขียนโปรแกรมวงรี
1) รูปแบบมาตรฐานของวงรีคำสั่ง WHILE:
#1=a;
a: จุดเริ่มต้นของเครื่องมืออยู่ที่ทิศทางบวก 1 มม. เทียบกับแกน Z ของวงรี
ในขณะที่ [#1 GE b] DO1;
b: จุดสิ้นสุดของการประมวลผลวงรีอยู่ที่ทิศทางลบ b มม. เทียบกับแกน Z ของวงรี (หากประมวลผลครึ่งวงรีสมบูรณ์ ดังนั้น a และ b จะเป็นค่าสองค่าที่มีค่าเดียวกันและมีเครื่องหมายต่างกัน)
#2= c*SQRT[1-#1*#1/d*d];
c: แกนกึ่งกลางของวงรี
d: แกนกึ่งเอกของวงรี (คำนวณ #2 ตามสูตรวงรี แกนกึ่งเอกคือ d แกนกึ่งเอกคือ c #2 แทนค่าของ X #1 คือค่าของ Z , และ SQRT หมายถึงรากที่สอง)
G01 X〔±2*#2 บวก e〕Z〔#1±f〕;
e: ออฟเซ็ต (ค่าเส้นผ่านศูนย์กลาง) ของแกน X ของวงรีที่สัมพันธ์กับระบบพิกัดของชิ้นงาน
f: ค่าชดเชยของแกน Z ของวงรีที่สัมพันธ์กับระบบพิกัดของชิ้นงาน
#1=#1-1; ระยะก้าว (ขยับครั้งละ 1 มม.)
สิ้นสุด 1;
หมายเหตุ: เมื่อหมุนวงรีเว้า "±" ในวงเล็บหลัง X จะถือเป็น "-"; เมื่อหมุนวงรีนูน เครื่องหมาย "±" ในวงเล็บหลัง X จะถือเป็น " บวก "
เมื่อแกน X ของวงรีเลื่อนไปทางบวก เครื่องหมาย "±" ในวงเล็บหลัง Z จะแทน " บวก " เมื่อแกน X ของวงรีเลื่อนไปทางลบ เครื่องหมาย "±" ในวงเล็บหลัง Z จะแทน "-"
2) รูปแบบมาตรฐานของคำสั่ง IF วงรี
#1=a;
a: จุดเริ่มต้นของเครื่องมืออยู่ที่ทิศทางบวก 1 มม. เทียบกับแกน Z ของวงรี
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: แกนกึ่งสั้นของวงรี c: แกนกึ่งเอกของวงรี (ตามสูตรวงรี X/c บวก Y/b=1 SQRT หมายถึงรากที่สอง)
G01X〔±2*#2 บวก d〕Z〔#1±e〕F0.2; d: ออฟเซ็ต (ค่าเส้นผ่านศูนย์กลาง) ของแกน X ของวงรีเทียบกับพิกัดจุดศูนย์ e: แกน Z ของวงรีเทียบกับระนาบศูนย์ ออฟเซ็ต
#1=#1-1;
ระยะก้าว (ขยับครั้งละ 1 มม.)
ถ้า [#1 GE -f] GOTO1
f: การยุติการประมวลผลวงรี
หมายเหตุ: เมื่อหมุนวงรีเว้า "±" ในวงเล็บหลัง X จะถือเป็น "-"; เมื่อหมุนวงรีนูน เครื่องหมาย "±" ในวงเล็บหลัง X จะถือเป็น " บวก " เมื่อแกน X ของวงรีเบี่ยงเบนไปทางบวก เครื่องหมาย "±" ในวงเล็บหลัง Z จะแทน " บวก " เมื่อแกน X ของวงรีเบี่ยงเบนไปทางลบ เครื่องหมาย "±" ในวงเล็บหลัง Z จะแทน "-"
รูปภาพ
คำสั่ง WHILE
#1=20;
ในขณะที่〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 บวก 50〕Z〔#1-25〕;
#1=#1-1;
สิ้นสุด 1;
คำสั่ง IF
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 บวก 50〕Z〔#1-25〕F0.2;
#1=#1-1;
IF[#1GE-20]GOTO1;
โปรแกรมที่สมบูรณ์
O1234;
G40G97G99;
T0101;
S1000 M3;
G00 X50 Z2;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G0 G42 Z-5;
#1=20;
ในขณะที่〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 บวก 50〕Z〔#1-25〕F0.2;
#1=#1-1;
สิ้นสุด 1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
รูปแบบที่สมบูรณ์ของคำสั่ง IF จะถูกละไว้ (เช่นเดียวกันกับคำสั่ง IF ตราบใดที่มีการเพิ่มวงจร) ในระบบ FANUC-0i สามารถเพิ่มโปรแกรมมาโครใน G73 เท่านั้น
(3) การประมวลผลพาราโบลา
1) รูปแบบมาตรฐานของคำสั่งพาราโบลา WHILE:
#1=a;
a: จุดเริ่มต้นของเครื่องมือคือ mm ในทิศทางของแกนพาราโบลา Z
ในขณะที่ [#1 GE -b] DO1;
b: คือความยาวการประมวลผลของวงรีในทิศทาง z
#2=SQRT〔-#1*5/3〕;
(ตามสูตรพาราโบลา Z=-3/5*X*X ให้หาค่าของ X ซึ่งเป็น #2 โดย SQRT หมายถึงรากที่สอง)
G01 X〔±2*#2 บวก c〕Z〔#1〕;
c: คือออฟเซ็ต (ค่าเส้นผ่านศูนย์กลาง) ของแกน X ของพาราโบลาที่สัมพันธ์กับระบบพิกัดของชิ้นงาน "±"
เมื่อใช้ "บวก" จะเป็นส่วนนูน และเมื่อรับ "-" จะเป็นส่วนเว้า
#1=#1-1; ระยะก้าว (ขยับครั้งละ 1 มม.)
สิ้นสุด 1;
2) รูปแบบมาตรฐานของคำสั่ง IF พาราโบลา
#1=a;
a: จุดเริ่มต้นของเครื่องมือคือ mm ในทิศทางของแกนพาราโบลา Z
N1 #2=SQRT〔-#1*5/3〕;
(ตามสูตรพาราโบลา Z=-3/5*X*X ให้หาค่าของ X ซึ่งเป็น #2 โดย SQRT หมายถึงรากที่สอง)
G01 X〔±2*#2 บวก b〕Z〔#1〕;
b: มันคือออฟเซ็ต (ค่าเส้นผ่านศูนย์กลาง) ของแกนทิศทาง X ของพาราโบลาที่สัมพันธ์กับจุดศูนย์พิกัด เมื่อ "±" แทน " บวก " จะเป็นส่วนนูน และเมื่อ "-" แทน จะเป็นส่วนเว้า
#1=#1-1;
(ระยะก้าวในทิศทาง Z การเคลื่อนไหวแต่ละครั้งคือ 1 มม.)
ถ้า〔#1 GE -c〕GOTO1; c: ความยาวการประมวลผลของวงรีในทิศทาง z
พาราโบลา IF
ประโยคอีกรูปแบบหนึ่ง
#1=a;
N1 #2=SQRT〔( บวก )#1*5/3〕;
เครื่องหมาย "บวก" สามารถละเว้นได้
G01 X〔2*#2 บวก b〕Z〔-#1〕;
#1=#1 บวก 1;
IF [#1 LE c] GOTO1;
สมมติว่าพาราโบลาอยู่ในทิศทางบวกของ Z ให้ใช้ Z〔-#1〕 เพื่อให้พาราโบลาสมมาตรกับทิศทางลบ
รูปภาพ
คำสั่ง WHILE
#1=0;
ในขณะที่ [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 บวก 30〕Z〔#1〕;
#1=#1-1;
สิ้นสุด 1;
คำสั่ง IF
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 บวก 30〕Z〔#1〕;
#1=#1-1;
IF [#1 GE -15] GOTO1;
โปรแกรมที่สมบูรณ์
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X42 Z1;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G00 G42 Z0;
#1=0;
ในขณะที่ [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 บวก 30〕Z〔#1〕;
#1=#1-1;
สิ้นสุด 1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) ความแตกต่างระหว่างคำสั่ง WHILE และคำสั่ง IF
1) ทิศทางของข้อความทั้งสองต่างกัน
คำสั่ง WHILE จะย้อนกลับ
ตัวอย่าง: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
สมมติว่าเมื่อเครื่องมือกลดำเนินการประโยค #1=20 นี้ จะดำเนินการต่อไป หลังจากดำเนินการ #1=#1-1 ค่าของ #1 จะกลายเป็น 19 ซึ่งไม่ตรงตามเงื่อนไขข้อจำกัดอีกต่อไป ดังนั้นค่าจะไม่ส่งคืน (ตัดไปที่ 20 ในทิศทาง X)
G00 X〔#1 บวก 1);
#1=#1-1;
สิ้นสุด 1;
2) คำสั่ง IF จะส่งกลับไปข้างหน้า
ตัวอย่าง: N1 #2=#2-1;
G01X〔#2〕F0.2; สมมติว่า #2=20 เมื่อแมชชีนทูลดำเนินการประโยคนี้ จะดำเนินการต่อไปจนกว่า IF〔#2 GE 20〕GOTO1; ถ้าตรงตามเงื่อนไข ก็จะกลับไปที่ N1# 2=#2-1 ต่อไป; และค่า X ปัจจุบันจะกลายเป็น 19 ซึ่งไม่ตรงตามเงื่อนไขข้อจำกัดอีกต่อไป จากนั้นจึงดำเนินการอีกครั้ง
G01X〔#2〕F0.2; สุดท้ายรันโปรแกรมต่อไปนี้ (ทิศทาง X ถูกตัดเป็น 19)
G00X〔#2 บวก 1);
IF [#2 GE 20] GOTO1;
3) ดังที่เห็นได้จากโปรแกรมเซาะร่องข้างต้น จำนวนคำในคำสั่ง IF น้อยกว่าคำสั่ง WHILE มาก
4) เนื่องจากทิศทางย้อนกลับที่แตกต่างกัน ให้อ่านประโยคคำสั่ง WHILE น้อยลงหนึ่งประโยค และอีกประโยคสำหรับคำสั่ง IF ระหว่างการประมวลผล
04
โปรแกรมมาโครระบบ SIEMENS (เครื่องกลึง)
หมายเหตุ: โปรแกรมมาโครถูกตั้งโปรแกรมด้วยตัวแปร และหมายเลขตัวแปรของระบบ Siemens จะแสดงด้วย R
ตัวอย่างเช่น เขียนด้วยวิธีการเขียนโปรแกรมทั่วไป: G01X-10
โปรแกรมมาโครสามารถแสดงเป็น:
R1=-10
G01 X=R1
การโอนแบบมีเงื่อนไข:
IF GOTOB: กระโดดถอยหลัง
ถ้า GOTOF: กระโดดไปข้างหน้า
เขียนในโปรแกรมทั่วไป
GO1X100
ตัวแปรสามารถแสดงเป็น:
R1=0
AA: R1=R1 บวก 1
G01X=R1
ไอเอฟ R1<100 GOTOB AA
R1 เป็นตัวแปรอิสระ ค่าเริ่มต้นคือ 0 R1=R1 บวก 1 หมายความว่า ค่าที่เพิ่มขึ้นของตัวแปรอิสระคือ 1 เมื่อโปรแกรมผ่านบรรทัดนี้ทุกครั้ง ค่าของ R1 เพิ่มขึ้น 1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA
ถ้า R1 มากกว่าหรือเท่ากับ 100 โปรแกรมจะหยุดทำงาน
สามารถใช้โปรแกรมมาโครได้ทั้งในโหมด G90 และ G91 แต่ความหมายต่างกัน เช่น
R1=0, G90R1=R1 บวก 1, G1X=R1, ค่าของ X หลังจากผ่านไปครั้งที่สองของโปรแกรมนี้คือ 2
R1=0, G91R1=R1 บวก 1, G1X=R1, ค่าของ X หลังจากผ่านไปครั้งที่สองของโปรแกรมคือ 3 คำอธิบาย: ค่าของ R1 คือ 1 หลังจากผ่านครั้งแรก ผ่านของโปรแกรม และค่าของ R1 เป็นค่าผ่านที่สอง มันคือ 2 แต่ในโหมด G91 จะขึ้นอยู่กับค่าก่อนหน้า
(1) การเซาะร่อง
รูปภาพ
T1
ที.ซี
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
ไปถึงจุดเริ่มต้นอย่างรวดเร็ว
Z-10
R1=3
กำหนดความกว้างของใบมีดเป็น 3 มม
R2=-10-R1-0.2
จุดเริ่มต้นของเครื่องมือคือ -10 และใช้ด้านซ้ายของใบมีดเมื่อตั้งค่าเครื่องมือ
การตั้งค่าเครื่องมือ ดังนั้นควรลบความกว้างของใบมีดออก 0.2 คือค่าเผื่อการเก็บผิวละเอียด
G1Z=R2F0.1
เครื่องมือมาถึงจุดเริ่มต้นของแกน Z
AA:ร2=ร2-2.5
R3=50
แกน X ของร่องถึงจุด
BB: ร3=ร3-2
กำหนดระยะกินลึกของมีดแต่ละเล่มเป็น 2 มม
G1X=R3
X=R3 บวก 1
0การคายเศษ .5 มม. ด้านหนึ่งทุกๆ 2 มม. ความลึกของการตัด
IF R3>30 บวก 0.4 GOTOB BB
Define the groove depth as 10mm, if R3>30มม. โปรแกรมจะกระโดดถอยหลังไปที่เครื่องหมาย BB และ 0.4 คือค่าเผื่อการจบสกอร์
G0X50
เครื่องมือมาถึงจุดเริ่มต้นของแกน X
G1Z=R2
IF R2>{{0}} บวก 0.2 GOTOB AA
กำหนดความกว้างของร่องเป็น 20มม. และ 0.2 คือค่าเผื่อการเก็บผิวละเอียด
G0X50
G01Z-13
จบ
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
ถอน
G0X100
Z100
M05
M30
(2) วงรี
1) รูปแบบพื้นฐาน
R1=0
กำหนดตัวแปร R1 ด้วยค่าเริ่มต้น 0
AA:R2=b×SQRT(1-R1×R1/a×a)
ตามสมการวงรี a คือกึ่งแกนเอกของวงรี b คือกึ่งแกนรองของวงรี และ SQRT เป็นสัญลักษณ์รากที่สอง
G1X=±2×R2 บวก XZ=R1-Z
กำหนดตำแหน่งและรูปร่างของวงรี บวก 2 คือนูน -2 คือเว้า X, Z คือระยะห่างระหว่างแกนของชิ้นงานกับแกนของวงรี (ระบบเส้นผ่านศูนย์กลาง)
R1=R1-1
กำหนดขั้นตอนการประมวลผล
IF R1>=n GOTOB AA
ถ้าตัวแปร R1
2) ตัวอย่างการเขียนโปรแกรม:
รูปภาพ
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
รอบ 95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 บวก 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) พาราโบลา
1) รูปแบบพื้นฐาน:
R1=0
ตั้งค่าเริ่มต้นของตัวแปร R1 เป็น 0
AA: R2=SQRT(-R1×n)
ได้ตามรูปแบบพื้นฐานของพาราโบลา โดยที่ SQRT เป็นเครื่องหมายกรณฑ์ และ n คือสัมประสิทธิ์
G01X=2×R2 บวก n
Z=R1
เส้นทางการประมวลผล บวก 2 คือนูน n คือค่าของจุดเริ่มต้นของแกน X
R1=R1-1
ค่าที่เพิ่มขึ้นของตัวแปรคือ 1 มม
IF R1>-30 GOTOB AA
If the variable R1>-30 โปรแกรมจะข้ามกลับไปที่เครื่องหมาย: AA
2) ตัวอย่างการเขียนโปรแกรม:
รูปภาพ
T1
ทีซี
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
รอบ 95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 บวก 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




