هر دستگاه CNC برای کشیدن دایره، قوس و گوشههای گرد نیاز به دستوراتی دارد که مسیر منحنی را به حرکت واقعی محورها تبدیل کند. این وظیفه بر عهده G02 و G03 است. اگر تا امروز فقط با حرکت خطی G00 و G01 کار کردهاید و با دیدن خطوطی مثل «G02 X10 Y10 I10 J0» گیج میشوید، این مقاله برای شماست. در این راهنما میآموزید G02 و G03 چه تفاوتی دارند، پارامترهای I و J و K و R چه معنایی دارند، چطور صفحه کاری را با G17 تا G19 انتخاب کنیم و چه خطاهایی ممکن است پیش بیاید.
درونیابی دایرهای و نقش G02 و G03
در CNC، کنترلر نمیتواند یک منحنی واقعی را مستقیم اجرا کند. بهجای آن، دو محور (یا بیشتر) را بهطور هماهنگ حرکت میدهد تا نوک ابزار روی یک کمان حرکت کند. به این کار درونیابی دایرهای (Circular Interpolation) میگویند. دستورات G02 و G03 دقیقاً همین کار را انجام میدهند:
- G02: حرکت دایرهای در جهت ساعتگرد (Clockwise یا CW)
- G03: حرکت دایرهای در جهت پادساعتگرد (Counter-Clockwise یا CCW)
هر دو دستور مدال (Modal) هستند، یعنی تا وقتی دستور حرکت دیگری مثل G01 نیاید، فعال میمانند. برای آشنایی با ساختار کلی برنامه و سایر دستورات، آموزش G-Code فارسی از صفر و راهنمای جامع G-Code در CNC را بخوانید.
جهت ساعتگرد و پادساعتگرد در G02 و G03 یعنی چه؟
برای تشخیص جهت در G02 و G03 باید صفحه را از سمت مثبت محور سوم نگاه کنید. مثلاً در صفحه XY (که رایجترین حالت است) باید از بالا و از سمت مثبت محور Z به قطعه نگاه کنید. آنچه در این دید ساعتگرد است، G02 و آنچه پادساعتگرد است، G03 است.
اشتباه گرفتن جهت یکی از اشتباهات رایج کاربران تازهکار است. یک راه ساده برای یادآوری: اگر عقربه ساعت را روی میز و از بالا ببینید، حرکت عقربهها همان G02 است. هنگام استفاده از G02 و G03 همیشه ابتدا صفحه کاری و دید ناظر را در ذهن مشخص کنید.
انتخاب صفحه کاری برای G02 و G03: G17 و G18 و G19
قبل از استفاده از G02 و G03 باید مشخص کنید قوس در کدام صفحه اتفاق میافتد:
- G17: صفحه XY (پیشفرض بیشتر فرزها و روترها). پارامترهای مرکز: I و J
- G18: صفحه XZ. پارامترهای مرکز: I و K
- G19: صفحه YZ. پارامترهای مرکز: J و K
در برش پلاسما و لیزر که کار فقط روی یک صفحه تخت انجام میشود، معمولاً همان G17 کافی است. اگر کنترلر شما برای محور چرخشی هم تنظیم شده باشد، مطالعه محور C مماس بر مسیر میتواند مفید باشد.
ساختار کلی دستور G02 و G03
ساختار عمومی G02 و G03 در صفحه XY چنین است:
G02 X__ Y__ I__ J__ F__ G03 X__ Y__ I__ J__ F__
یا با فرمت شعاع:
G02 X__ Y__ R__ F__ G03 X__ Y__ R__ F__
- X و Y: مختصات نقطه پایان قوس
- I و J: فاصله مرکز قوس از نقطه شروع، در جهت X و Y (بهصورت نسبی)
- R: شعاع قوس
- F: سرعت پیشروی (Feed Rate)
نقطه شروع قوس همان نقطهای است که ابزار در لحظه اجرای G02 و G03 در آن قرار دارد. یعنی همیشه قبل از قوس، با G00 یا G01 باید ابزار را به نقطه شروع برسانید.
روش اول: فرمت I و J و K برای G02 و G03
در این روش، موقعیت مرکز قوس نسبت به نقطه شروع مشخص میشود. I فاصله مرکز در راستای X و J فاصله در راستای Y است. مقدار میتواند مثبت یا منفی باشد. مثال:
G90 G17 G00 X0 Y0 G02 X10 Y10 I10 J0 F500
در این مثال ابزار از نقطه (0,0) شروع میکند. مرکز قوس ۱۰ واحد در جهت X از نقطه شروع است، یعنی در (10,0). نقطه پایان (10,10) است. در نتیجه ابزار یک ربع دایره به شعاع ۱۰ را ساعتگرد طی میکند. این مثال ساده کمک میکند معنی I و J را در G02 و G03 دریابید.
مزیت این فرمت آن است که برای قوسهای کامل (دایره) هم کار میکند و هیچ ابهامی در مورد مرکز وجود ندارد. به همین دلیل نرمافزارهای CAM بیشتر از آن استفاده میکنند.
روش دوم: فرمت شعاع R برای G02 و G03
در فرمت R، بهجای مرکز، شعاع قوس را مینویسید:
G02 X10 Y10 R10 F500
اما مشکل اینجاست که برای دو نقطه شروع و پایان و یک شعاع مشخص، همیشه دو دایره ممکن وجود دارد. برای رفع این ابهام در G02 و G03 قاعده زیر اعمال میشود:
- اگر R مثبت باشد، کنترلر قوس کوچکتر (حداکثر ۱۸۰ درجه) را انتخاب میکند.
- اگر R منفی باشد، قوس بزرگتر (بیش از ۱۸۰ درجه) انتخاب میشود.
فرمت R برای قوسهای ساده خوانا و راحت است، اما برای دایره کامل قابل استفاده نیست، چون نقطه شروع و پایان یکی است و دایره بینهایت حالت دارد. در این حالت باید از I و J استفاده کنید.
کشیدن دایره کامل با G02 و G03
برای اجرای یک دایره کامل با G02 و G03، نقطه پایان را برابر نقطه شروع میگذارند و مرکز را با I و J تعیین میکنند:
G00 X0 Y0 G02 I10 J0 F400
در این مثال ابزار از (0,0) شروع میکند، مرکز دایره در (10,0) است و ابزار یک دور کامل ساعتگرد میزند و به نقطه شروع برمیگردد. اگر نقطه X و Y را ننویسید، کنترلر آنها را برابر نقطه فعلی در نظر میگیرد. برای حرکت پادساعتگرد کافی است G02 و G03 را جابهجا کنید و از G03 استفاده نمایید.
درونیابی مارپیچ (هلیکال) با G02 و G03
اگر هنگام اجرای G02 و G03 مقدار محور سوم (معمولاً Z) را هم بنویسید، ابزار مسیر مارپیچ طی میکند. این روش برای ایجاد سوراخهای بزرگ با فرز، دندهکاری و برش رزوههای بزرگ استفاده میشود:
G02 X0 Y0 I10 J0 Z-1 F300
در این دستور ابزار همزمان که یک دایره کامل میزند، یک میلیمتر پایین میرود. این ترفند باعث میشود بجای فرو بردن مستقیم، ابزار بهصورت تدریجی وارد قطعه شود و فشار کمتری روی آن بیاید. بحث سرعت و فشار را در چگونه سرعت برش CNC را افزایش دهیم بخوانید.
مختصات مطلق و نسبی در G02 و G03
مقدار X و Y در G02 و G03 بسته به حالت مطلق (G90) یا نسبی (G91) تفسیر میشود. اما I و J در بیشتر کنترلرها پیشفرض نسبی هستند، یعنی همیشه فاصله مرکز از نقطه شروع را نشان میدهند و به G90 یا G91 وابسته نیستند. بعضی کنترلرها با دستور G90.1 و G91.1 این رفتار را تغییر میدهند. حتماً دفترچه کنترلر خود را بررسی کنید. نقطه شروع و مبدأ مختصات را هم از نقطه رفرنس در CNC بشناسید.
ارتباط G02 و G03 با جهت برش و جبران شعاع ابزار
انتخاب بین G02 و G03 فقط به شکل کار نیست؛ روی نوع برش هم اثر دارد. در فرزکاری با ابزار راستگرد (M03)، برش همجهت (Climb Milling) روی کانتور بیرونی معمولاً با حرکت پادساعتگرد (G03) انجام میشود و در جیب داخلی با حرکت ساعتگرد (G02). برش همجهت معمولاً سطح صافی تولید میکند و فشار کمتری به ابزار وارد میشود.
همچنین اگر از جبران شعاع ابزار (G41 و G42) استفاده میکنید، جهت حرکت در G02 و G03 باید با سمت جبران هماهنگ باشد. اشتباه در این هماهنگی باعث میشود اندازه قطعه برابر طرح نباشد.
خطاهای رایج هنگام استفاده از G02 و G03
اینها پرتکرارترین مشکلات کاربران هستند:
- خطای شعاع (Radius Error): وقتی فاصله مرکز تا نقطه شروع با فاصله مرکز تا نقطه پایان برابر نباشد، کنترلر خطا میدهد. در G02 و G03 با I و J این خطا ناشی از اشتباه محاسباتی یا گرد کردن زیاد اعداد است. در بسیاری از کنترلرها اختلاف کوچک (چند صدم میلیمتر) پذیرفته میشود.
- جهت اشتباه: تعویض G02 و G03 باعث میشود قوس در سمت مخالف کشیده شود. دقت کنید از کدام سمت مینگرید.
- فراموش کردن صفحه: اگر G17 فعال نباشد و بخواهید در XY قوس بزنید، I و J معنی نمیدهند.
- نداشتن نقطه شروع صحیح: اگر قبل از G02 و G03 ابزار در نقطه درست نباشد، تمام قوس جابهجا میشود.
- استفاده از R برای دایره کامل: کنترلر ممکن است خطا بدهد یا هیچ حرکتی انجام ندهد.
- سرعت پیشروی نامناسب: در قوسهای کوچک، سرعت بالا باعث کاهش دقت یا لرزش میشود. اگر دستگاه لرزش دارد، علت لرزش دستگاه CNC را بخوانید.
نقش نرمافزار CAM و پستپروسسور در تولید G02 و G03
در عمل بیشتر برنامهها را نرمافزار CAM تولید میکند. اگر طراحی شما شامل قوس و دایره باشد، CAM باید آنها را بهصورت G02 و G03 خروجی بدهد؛ در غیر این صورت قوسها به هزاران خط کوچک تبدیل میشوند که حجم کد را بالا میبرد و نرمی حرکت را کاهش میدهد. گزینه «خروجی قوس» یا «Arc Fitting» را در تنظیمات پستپروسسور بررسی کنید. اطلاعات بیشتر در پست پروسسور چیست و CAD/CAM چیست آمده است.
اگر طرح شما DXF است و میخواهید بدون تولید جداگانه G-Code آن را اجرا کنید، به مقاله اجرای فایل DXF بدون G-Code در برش لیزر فلزی مراجعه کنید. در این حالت هم کنترلر داخلی مسیرهای دایرهای را به حرکت معادل G02 و G03 تبدیل میکند.
مثال کامل G02 و G03: مستطیل با گوشههای گرد
یک مستطیل ۴۰ در ۲۰ میلیمتر با گوشههای گرد به شعاع ۵ میلیمتر را در نظر بگیرید که از گوشه پایینچپ شروع میشود و پادساعتگرد برش میخورد:
G90 G17 G21 G00 X5 Y0 G01 Z-1 F200 G01 X35 Y0 F500 G03 X40 Y5 I0 J5 G01 X40 Y15 G03 X35 Y20 I-5 J0 G01 X5 Y20 G03 X0 Y15 I0 J-5 G01 X0 Y5 G03 X5 Y0 I5 J0 G00 Z5
در این برنامه، خطوط مستقیم با G01 و گوشههای گرد با G02 و G03 (در اینجا فقط G03) اجرا شدهاند. توجه کنید مقدار I و J همیشه مرکز گوشه را نسبت به نقطه شروع همان قوس نشان میدهند. برای مثال در اولین قوس، شروع در (35,0) و مرکز در (35,5) است، پس I صفر و J برابر ۵ میشود.
نکات کاربردی برای نوشتن کد با G02 و G03
- قبل از اجرای واقعی، برنامه را در شبیهساز بدون قطعه تست کنید.
- از اعداد با دقت کافی (حداقل سه رقم اعشار) برای I و J استفاده کنید تا خطای شعاع نگیرید.
- برای دایرههای بزرگ، قوس را به دو یا چند قسمت تقسیم کنید، چون برخی کنترلرها قوسهای بیش از ۳۶۰ درجه را نمیپذیرند.
- سرعت پیشروی را در قوسهای کوچک کم کنید.
- همیشه پس از G02 و G03 با G01 یا G00 مسیر را ادامه دهید تا حالت مدال اشتباهی باقی نماند.
اگر میخواهید مرجع کاملتری از دستورات داشته باشید، لیست کدهای رایج در کنترلرهای CNC رادونیکس: تسلط بر G-Code هم مفید است.
پرسشهای متداول درباره G02 و G03
تفاوت G02 و G03 چیست؟
G02 قوس را ساعتگرد و G03 پادساعتگرد اجرا میکند. بقیه پارامترها در G02 و G03 یکسان است.
بهتر است از I و J استفاده کنم یا R؟
برای دایره کامل و دقت بالا I و J بهتر است. برای قوسهای ساده و خوانایی بیشتر، R مناسب است. هر دو فرمت در G02 و G03 معتبرند.
چرا کنترلر خطای شعاع میدهد؟
به این دلیل که فاصله مرکز تا شروع و پایان برابر نیست. مقادیر I و J یا مختصات پایان را دوباره بررسی کنید.
آیا همه کنترلرها از G02 و G03 پشتیبانی میکنند؟
تقریباً همه کنترلرهای استاندارد، اما جزئیات مثل مدال بودن I و J یا حداکثر زاویه قوس ممکن است متفاوت باشد.
جمعبندی
G02 و G03 ستون فقرات حرکتهای منحنی در برنامهنویسی CNC هستند. با درک جهت ساعتگرد و پادساعتگرد، انتخاب درست صفحه (G17 تا G19)، تفاوت فرمت I و J با R و رعایت نکات خطایابی، میتوانید کدهای دقیق و روان بنویسید و خروجی نرمافزار CAM را هم بهتر بخوانید. با تمرین چند مثال ساده و اجرای آنها در شبیهساز، تسلط بر G02 و G03 خیلی سریع حاصل میشود. برای مشاوره درباره کنترلر و نرمافزار مناسب دستگاه خود، با رادونیکس در تماس باشید.