در دنیای مدرن تولید صنعتی، ماشینهای CNC یکی از ارکان اصلی دقت، سرعت و بهرهوری هستند. این دستگاهها از زبان برنامهنویسی مخصوصی استفاده میکنند که به کمک دستورات G-code و M-code، عملیات مختلف برش، تراش، سوراخکاری و حکاکی را کنترل میکنند. اما آنچه باعث اجرای صحیح این دستورات میشود، درک دقیق مختصات جغرافیایی یا همان موقعیتیابی فضایی در فضای سهبعدی است.
در این مقاله جامع، به بررسی دقیق G-code، M-code و نقش حیاتی مختصات جغرافیایی در برنامهنویسی ماشینهای CNC میپردازیم. این راهنما برای اپراتورها، مهندسان، برنامهنویسان و حتی علاقهمندان تازهوارد بسیار مفید خواهد بود.

G-code چیست و چه نقشی دارد؟
G-code یا Geometric Code مجموعهای از دستوراتی است که به ماشین CNC میگوید «کجا» حرکت کند و «چگونه» این کار را انجام دهد. این دستورات به ماشین کمک میکنند تا مسیرهای حرکتی ابزار را در فضای مختصات مشخص کند.
برخی از مهمترین دستورات G-code عبارتند از:
– G00 حرکت سریع بدون برش
– G01 حرکت خطی با نرخ تغذیه مشخص
– G02 حرکت دایرهای ساعتگرد
– G03 حرکت دایرهای پادساعتگرد
مثال:
حرکت خطی به مختصات (50,25) با سرعت تغذیه 200 میلیمتر در دقیقه → G01 X50 Y25 F200
M-code چیست و چه تفاوتی با G-code دارد؟
در حالی که G-code برای کنترل هندسه و حرکت استفاده میشود، M-code یا Miscellaneous Code وظیفه مدیریت عملکردهای کمکی دستگاه را بر عهده دارد؛ مانند روشن یا خاموش کردن اسپیندل، فعالسازی خنککننده یا توقف برنامه.
در نظر داشته باشید که M-Code با توجه به نوع دستگاهها متفاوت است و در هر دستگاهی دستورات M-Code با توجه به نوع کنترلر و سازنده دستگاه متغیر است.
تفاوت اصلی :
– G-code به «حرکت ابزار» میپردازد.
– M-code به «عملیات کنترلی دستگاه» اختصاص دارد.
مختصات جغرافیایی در CNC چیست؟
درک صحیح مختصات جغرافیایی، کلید اجرای دقیق برنامههای CNC است. دستگاههای CNC در یک فضای سهبعدی (XYZ) کار میکنند که موقعیت هر نقطه، بر اساس یک سیستم مختصاتی تعریف میشود.
سیستم مختصات کارتزین (X, Y, Z)
ماشینهای CNC از سیستم مختصات دکارتی استفاده میکنند که شامل سه محور اصلی است:
X: محور افقی (چپ و راست)
Y: محور عمودی (جلو و عقب)
Z: محور عمق (بالا و پایین)
در برخی دستگاههای پیشرفته، محورهای بیشتری نیز وجود دارد (مثلاً محور A برای چرخش حول X یا محور B برای چرخش حول Y).

سیستمهای مختصات مطلق (G90) و نسبی (G91)
یکی از بخشهای حیاتی برنامهنویسی CNC، درک تفاوت میان موقعیتدهی مطلق و نسبی است.
-G90 مختصات مطلق: هر نقطه بر اساس یک مرجع ثابت (نقطه صفر قطعه یا ماشین) تعریف میشود.
-G91 مختصات نسبی: هر حرکت بر اساس موقعیت فعلی ابزار تعریف میشود.
مثال:
G90 –
ابزار به موقعیت 50میلیمتر از مبدا حرکت میکند → G01 X50
G91 –
ابزار 50 میلیمتر از موقعیت فعلی حرکت میکند → G01 X50
درک این تفاوت از بروز خطاهای خطرناک جلوگیری میکند و کنترل بهتری روی اجرای عملیات فراهم میسازد.
مقایسه بین مختصات مطلق و نسبی در عمل
– در سیستم مختصات مطلق (G90)، مبنا همیشه صفر قطعه یا ماشین است، یعنی موقعیتها نسبت به یک نقطه ثابت و مشخص تعیین میشوند. این روش خوانایی سادهتری دارد چون هر موقعیت به صورت دقیق و واضح تعریف شده است. به همین دلیل، برای عملیاتهای دقیق و یکباره که نیاز به دقت بالا دارند، مناسبتر است.
-اما در سیستم مختصات نسبی (G91)، مبنا موقعیت فعلی ابزار است، یعنی حرکتها نسبت به محل فعلی ابزار تعریف میشوند. این روش نیاز به دقت بیشتری در ترتیب دستورات دارد چون هر حرکت به حرکت قبلی وابسته است. به همین دلیل، برای عملیاتهای تکرارشونده و پی در پی که ابزار باید به صورت مرحله به مرحله حرکت کند، مناسبتر است.
رابطه بین G-code / M-code و مختصات جغرافیایی
در قلب برنامهنویسی CNC، رابطهای تنگاتنگ بین G-code، M-code و مختصات جغرافیایی وجود دارد. در واقع، G-code بدون مختصات، بیمعناست؛ چراکه این دستورات مکان، جهت و مسیر حرکت ابزار را دقیقاً در فضای مختصاتی تعریف میکنند.
چرا مختصات جغرافیایی درک G-code را ممکن میسازد؟
فرض کنید یک دستور ساده مانند G01 X50 Y20 دارید. این دستور به دستگاه میگوید به موقعیت (50،20) حرکت کند، اما:
– اگر سیستم مختصات مطلق (G90) فعال باشد، این یعنی حرکت از نقطه صفر به آن مختصات.
– و چنانچه سیستم نسبی (G91) فعال باشد، ابزار از موقعیت فعلیاش 50mm در X و 20mm در Y حرکت میکند.
بنابراین، بدون دانستن نوع سیستم مختصاتی، اجرای G-code میتواند خطرناک باشد و باعث برخورد ابزار یا خرابی قطعه شود.
تعامل G-code با مختصات جغرافیایی
– G00 برای حرکت سریع استفاده میشود و وابسته به مختصات X، Y و Z است، یعنی دستگاه به سرعت به موقعیت مشخص شده روی این محورها حرکت میکند.
– G01 برای برش خطی کاربرد دارد و نیازمند مختصات دقیق موقعیت نهایی است چون حرکت دستگاه باید به صورت کنترلشده و با سرعت مشخص انجام شود.
– G02 و G03 برای برش دایرهای یا قوسدار هستند که نیاز به مختصات شعاع یا مرکز قوس دارند تا مسیر قوس به درستی تعیین شود.
– G28 باعث بازگشت دستگاه به نقطه مرجع یا موقعیت صفر میشود و همچنین وابسته به مختصات است.
– M03 برای روشن کردن اسپیندل (ابزار برش یا دریل) به کار میرود و مستقل از مختصات است، یعنی این دستور فقط اسپیندل را روشن میکند بدون توجه به موقعیت دستگاه.
– M30 نیز برای پایان برنامه استفاده میشود و باز هم مستقل از موقعیت دستگاه است؛ با اجرای آن برنامه به پایان میرسد و دستگاه آماده اجرای دستور جدید میشود.
در نظر داشته باشید که M-Code با توجه به نوع دستگاهها متفاوت است و در هر دستگاهی دستورات M-Code با توجه به نوع کنترلر و سازنده دستگاه متغیر است.
نکته مهم:
همه دستورهای حرکتی G-code بدون مختصات، کار نمیکنند. بنابراین، درک دقیق فضا و موقعیتیابی فضایی، پیشنیاز اجرای امن و دقیق برنامههای CNC است.
انواع سیستم مختصات در ماشینکاری CNC
دستگاههای CNC از چند نوع سیستم مختصات استفاده میکنند که هرکدام در موقعیتدهی ابزار کاربرد دارند:
1. سیستم مختصات ماشین (Machine Coordinates)
– نقطه صفر این سیستم معمولاً موقعیت اولیه کارخانهای دستگاه است.
– همیشه ثابت است.
– با دستور G53 قابل فراخوانی است.
2. سیستم مختصات قطعهکار (Work Coordinates)
– نقطه صفر این سیستم معمولاً توسط اپراتور تعریف میشود (مثلاً گوشه بالا-چپ قطعه).
– از دستورات G54 تا G59 برای تعریف موقعیت استفاده میشود.
3. سیستم مختصات ابزار (Tool Offsets)
– جبران خطای طول و قطر ابزار
– دستورات مانند G43 یا H01 برای فعالسازی آن استفاده میشود.
مقایسهی سیستم مختصات در ماشینکاری CNC
سیستم مختصات ماشین که با کد G53 شناخته میشه، نقطه صفرش روی کارخانه یا مرجع سختافزاری دستگاه قرار داره و کنترلش هم از طریق سختافزار انجام میشه. مزیت اصلی این سیستم، دقت بالای مرجعدهی و اطمینان از موقعیت دقیق هست.
بعدش سیستم مختصات قطعهکار هست که شامل کدهای G54 تا G59 میشه. نقطه صفر این سیستم توسط اپراتور تنظیم میشه و کنترلش با نرمافزار انجام میشه. این سیستم به خاطر انعطافپذیری بالایی که در موقعیتدهی قطعه داره، خیلی کاربردیه.
در نهایت، سیستم مختصات ابزار که با کدهای مثل G43 شناخته میشه، نقطه صفرش وابسته به طول ابزاره و کنترلش هم توسط نرمافزار انجام میشه. این سیستم کمک میکنه تا دقت بیشتری در عمق برش داشته باشیم و باعث میشه برشها دقیقتر و بهتر انجام بشن.
به طور خلاصه، هر سیستم مختصات نقش خاص خودش رو داره؛ ماشین برای دقت سختافزاری، قطعهکار برای انعطافپذیری نرمافزاری و ابزار برای دقت بیشتر در عمق و طول برش.
نقش مختصات جغرافیایی در جلوگیری از خطاهای مرگبار در CNC
خطا در درک یا تعریف مختصات ممکن است منجر به خسارات جبرانناپذیری شود. در ادامه چند نمونه از خطاهای واقعی در برنامهنویسی CNC را مرور میکنیم که ریشه در اشتباه در مختصات داشتهاند:
مطالعه موردی 1: استفاده اشتباه از G90 و G91
در یک پروژه صنعتی، اپراتور به اشتباه در ابتدای برنامه از G91 (نسبی) به جای G90 (مطلق) استفاده کرد. نتیجه این اشتباه:
- ابزار با هر فرمان G01 به میزان بیشتری از حد انتظار حرکت کرد.
- ابزار با قطعه برخورد کرد و موجب شکستگی تیغه شد.
نتیجه: همیشه از فعال بودن G90 یا G91 اطمینان داشته باشید و با توجه به نیاز برنامه انتخاب کنید.
مطالعه موردی 2: عدم تعریف صحیح G54
در دستگاهی دیگر، اپراتور موقعیت G54 را بدون اندازهگیری دقیق تنظیم کرده بود. این کار باعث شد:
- سوراخکاریها در نقاط اشتباه انجام شوند.
- یک دسته کامل قطعه از بین برود.
مثالهای عملی از ترکیب G-code، M-code
در این بخش، چند نمونه واقعی از برنامههای G-code را بررسی میکنیم که بهطور مستقیم از مختصات جغرافیایی برای هدایت حرکات ابزار و کنترل عملکرد دستگاه استفاده میکنند. این مثالها به شما کمک میکنند تا پیوند بین G-code، M-code و سیستم مختصات را بهصورت کاملاً عملی درک کنید.
مثال 1: برنامه ساده برش یک مربع
هدف این برنامه: برش یک مربع به ابعاد 20×20 میلیمتر از یک صفحه فلزی.
واحدها بر حسب میلیمتر ; G21
استفاده از مختصات مطلق ; G90
حرکت سریع به نقطه شروع ; G0 X0 Y0
روشن کردن اسپیندل ; M03
پایین آوردن ابزار برای برش ; G1 Z-1 F100
حرکت به راست ; G1 X20
حرکت به بالا ; G1 Y20
حرکت به چپ ; G1 X0
برگشت به نقطه شروع ; G1 Y0
توقف اسپیندل ; M05
بالا بردن ابزار ; G0 Z10
پایان برنامه ; M30
نکات آموزشی این مثال:
- تمام حرکات در مختصات مطلق (G90) تعریف شدهاند.
- استفاده از M03 و M05 برای کنترل اسپیندل.
- محورهای X و Y در مسیر مربع کاملاً مشخصاند.
در نظر داشته باشید که M-Code با توجه به نوع دستگاهها متفاوت است و در هر دستگاهی دستورات M-Code با توجه به نوع کنترلر و سازنده دستگاه متغیر است.

مثال 2: سوراخکاری چند نقطه با مختصات نسبی
در این مثال، ابزار بهصورت نسبی بین نقاط حرکت میکند تا چند سوراخ پشتسر هم ایجاد کند.
G21
استفاده از مختصات نسبی ; G91
G0 X0 Y0
M03
G1 Z-2 F80
روشن کردن سیستم خنککننده ; M08
مکث ۱ ثانیه ; G4 P1
G0 Z2
G0 X10
G1 Z-2
G4 P1
G0 Z2
G0 X10
G1 Z-2
G4 P1
G0 Z2
خاموش کردن خنککننده ; M09
M05
M30
چه چیزی این کد را خاص میکند؟
- هر حرکت به جلو (X10) بر اساس موقعیت قبلی تعریف شده.
- استفاده از G4 برای مکث بین سوراخها.
- M08/M09 کنترل سیستم خنککننده هستند که در نقاط خاص فعال و غیرفعال میشوند.
در نظر داشته باشید که M-Code با توجه به نوع دستگاهها متفاوت است و در هر دستگاهی دستورات M-Code با توجه به نوع کنترلر و سازنده دستگاه متغیر است.
ابزارهای کاربردی برای آزمایش کدهای G-code و بررسی مختصات
بررسی و اعتبارسنجی کدهای CNC پیش از اجرا روی دستگاه، از خرابی قطعات، آسیب به دستگاه یا اشتباهات انسانی جلوگیری میکند. در ادامه، چند ابزار رایج برای تست و تحلیل G-code آوردهایم:
نرمافزارهای CAD/CAM برای تولید G-code
– Fusion 360
مناسب برای طراحی و تولید G-code در محیط گرافیکی
– SolidCAM
ادغامشده با SolidWorks
– MasterCAM
مورد استفاده در صنایع پیشرفته
شبیهسازهای G-code (برای مشاهده و اعتبارسنجی)
شبیهسازی بصری سریع با نمایش مسیر ابزار
– CAMotics
مدلسازی سهبعدی اجرای برنامه CNC
خطاهای رایج در استفاده از G-code، M-code و مختصات جغرافیایی
استفادهی نادرست از G-code و M-code، بهویژه در ارتباط با مختصات، میتواند خسارات جدی به ابزار، قطعه کار و حتی خود دستگاه وارد کند. در این بخش، رایجترین اشتباهاتی که برنامهنویسان CNC و اپراتورها مرتکب میشوند را بررسی میکنیم تا از آنها جلوگیری شود.
1. اشتباه در تنظیم نوع مختصات (G90 / G91)
یکی از بزرگترین خطاها، استفاده اشتباه از مختصات مطلق به جای نسبی یا برعکس است. این موضوع باعث میشود که ابزار از مسیر اصلی خارج شود.
مثال:
– در حالی که قصد حرکت به 10 میلیمتر جلو را دارید، در حالت G90، این مقدار به عنوان موقعیت مطلق خوانده میشود نه فاصله.
راهحل:
– همیشه در ابتدای برنامه، نوع مختصات را صراحتاً مشخص کنید.
– از کامنتها برای یادآوری نوع مختصات استفاده کنید.
2. بیتوجهی به Z قبل از حرکت XY
اگر ابزار پایین است و دستور حرکت در محور X یا Y صادر شود، ممکن است با سطح قطعه برخورد کند.
راهحل:
– همیشه ابزار را قبل از حرکت افقی به بالا ببرید (G0 Z10).
3. عدم هماهنگی سرعت تغذیه (F-code)
استفاده از سرعت تغذیه نامناسب در دستور G1 ممکن است باعث سوختن ابزار یا ضعیف شدن کیفیت برش شود.
مثال:
– استفاده از F2000 به جای F200 در عملیات حفاری فولاد
راهحل:
– همیشه مقادیر سرعت تغذیه را با توجه به جنس متریال و نوع ابزار تنظیم کنید.

نکات کاربردی برای جلوگیری از خطا
برای جلوگیری از بروز خطا در فرایند برش یا اجرای برنامه، چند نکته کاربردی مهم وجود داره که رعایتشون میتونه خیلی کمککننده باشد.
اول از همه، استفاده از شبیهساز خیلی مهمه؛ یعنی قبل از اینکه برنامه رو روی دستگاه واقعی اجرا کنی، اون رو توی یه شبیهساز بررسی کن تا مطمئن شی که همه چیز درست کار میکنه.
دوم، بازبینی دستی خطبهخط هست. حتی اگر برنامه بهصورت خودکار تولید شده، یه بار هم خودت خطبهخط اون رو بخون و بررسی کن. چون ممکنه خطاهایی باشن که فقط با چشم دیده بشن.
سوم، تنظیم نقطه صفر دقیق رو فراموش نکن. همیشه باید نقطه صفر دستگاه یا همون Zero Point رو درست و دقیق تعریف کنی، چون کل مسیر برش بر اساس اون تنظیم میشه.
و در نهایت، افزودن کامنتها داخل برنامه خیلی کمک میکنه. با نوشتن توضیحات (کامنت) برای هر بخش از کد، هم خودت راحتتر میفهمی چه کاری قراره انجام بشه و هم اگر کسی دیگه بخواد کد رو بخونه، سردرگم نمیشه.
این چهار نکته ساده ولی حیاتی میتونن جلوی خیلی از اشتباهات وقتگیر و پرهزینه رو بگیرن.
در این چکلیست، نکات مهم و ضروری پیش از اجرای هر برنامه CNC را مرور میکنیم (برای دانلود کلیک کنید).
جمعبندی
در دنیای مدرن تولید صنعتی، درک G-code، M-code و مختصات جغرافیایی CNC یک مهارت حیاتی برای هر اپراتور، برنامهنویس یا مهندس مکانیک است. تسلط بر این کدها، نه تنها بهرهوری کارگاه را افزایش میدهد بلکه باعث بهینهسازی زمان، کاهش خطا و جلوگیری از آسیبهای پرهزینه میشود.
پرسشهای متداول (FAQ)
در این بخش، به رایجترین سوالاتی که کاربران و علاقهمندان به برنامهنویسی CNC درباره G-code، M-code و مختصات جغرافیایی دارند، پاسخ میدهیم. این سوالات به شما کمک میکند تا درک عمیقتری از کاربردهای عملی و نحوهی کار این کدها داشته باشید.
– تفاوت G-code و M-code چیست؟
G-code دستورات هندسی یا حرکتی را کنترل میکند؛ مثل حرکت در راستای محور X، Y یا Z.
در مقابل، M-code عملکردهای کمکی یا غیرحرکتی را کنترل میکند؛ مثل روشن یا خاموش کردن اسپیندل، پمپ خنککننده، یا پایان برنامه.
– G-code از چه مختصاتی استفاده میکند؟
G-code از دو نوع سیستم مختصات پشتیبانی میکند:
1. مختصات مطلق (G90): موقعیت بر پایه نقطه صفر (zero point)
2. مختصات نسبی (G91): موقعیت نسبت به آخرین نقطهای که ابزار در آن قرار دارد
استفاده از نوع اشتباه مختصات میتواند باعث خطاهای جدی شود.
– آیا مختصات جغرافیایی واقعی (عرض و طول جغرافیایی) در CNC استفاده میشود؟
خیر. اصطلاح «مختصات جغرافیایی» در CNC به مختصات فضایی محلی در محورهای X، Y، Z اشاره دارد، نه مختصات جغرافیایی GPS مانند عرض (Latitude) و طول (Longitude). البته در سیستمهای بسیار پیشرفته یا صنعتی که به موقعیتیابی جهانی نیاز دارند، مثل CNC در صنایع هوافضا یا ماهوارهای، میتوان از دادههای GPS در کنار نرمافزارهای CAM پیشرفته استفاده کرد.
– آیا میتوان G-code را دستی نوشت؟
بله. بسیاری از برنامهنویسان CNC حرفهای، مخصوصاً برای پروژههای ساده یا بهینهسازی عملیات، کد را مستقیماً به صورت دستی مینویسند. با این حال، برای پروژههای پیچیده، استفاده از نرمافزارهایی مانند:
– SolidCAM
– MasterCAM
– Fusion 360
– نرمافزار آیجمزایران (با چیدمان هوشمند و تولید کد)
توصیه میشود. نرمافزارها بهطور خودکار G-code را تولید کرده و خطای انسانی را کاهش میدهند.
– آیا میتوانم از یک G-code روی چند دستگاه استفاده کنم؟
فقط در صورتی که دستگاهها دارای کنترلر یکسان باشند (مانند Fanuc، Siemens، Heidenhain)، امکان استفاده مجدد وجود دارد. در غیر این صورت، باید کد مطابق با دستورات قابل فهم کنترلر دستگاه مقصد ویرایش یا ترجمه شود.
اگر در حوزه برش لیزر و چیدمان قطعات فعالیت میکنید، حتماً میدانید که کاهش پرت ورق، افزایش سرعت چیدمان و سازگاری نرمافزار با دستگاههای مختلف چقدر اهمیت دارد. IGEMS IRAN یک نرمافزار تخصصی چیدمان قطعات برش لیزری است که به شما کمک میکند تا هزینههای تولید را کاهش دهید، سرعت کار را بالا ببرید و از هر ورق، بیشترین بهره را ببرید.
💡 همین حالا نسخه تست رایگان را دریافت کنید! برای دریافت نسخه تست، کافیست با پشتیبانی ما تماس بگیرید یا از طریق صفحه دانلود رایگان نرم افزار IGEMS اقدام کنید. مشاوران ما آماده پاسخگویی به شما هستند!
🆔 برای دنبال کردن آخرین اخبار و آموزشها، ما را در اینستاگرام دنبال کنید.
📞 تماس با پشتیبانی: 2217-635-0912

نظری وجود ندارد! اولین نفر باشید.