دستورات G-Code : فهرست کامل و آموزش

 دستورات G-Code : فهرست کامل و آموزش

“درک دستورات G-code شما را یک مرحله پیشرفته تر می کند. ادامه مطلب را بخوانید تا اصول اولیه این کد را سریع بیاموزید!
به زبان ساده ، جی کد یک زبان برنامه نویسی برای کنترل عددی رایانه (CNC) است. به عبارت دیگر ، این زبان توسط رایانه ای کنترل می شود که دستگاه را کنترل می کند و تمام دستورات مورد نیاز برای حرکت و سایر اقدامات را منتقل می کند.

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

در این مقاله ، ما اصول G-code ، از جمله نحوه خواندن ، درک و نوشتن چند خط فرمان را پوشش می دهیم ، و حتی برای مبتدیان مطلق در برنامه نویسی زمینه ای محکم ایجاد می کنیم. بنابراین ، بدون بحث بیشتر ، بیایید از ابتدا شروع کنیم!”

G-code چیست؟

دستورات G-code برای دستور دادن به ماشین برای انجام اقدامات خاص استفاده می شود
دستورات G-code برای دستور دادن به ماشین برای انجام اقدامات خاص استفاده می شود

برای کسانی که به طور کلی با برنامه نویسی آشنا هستند ، G-code را به عنوان دستورالعمل های متوالی در نظر بگیرید ، که هر کدام به چاپگر سه بعدی می گویند که وظیفه خاصی را انجام دهد. این خطوط به عنوان دستورات شناخته می شوند و چاپگر آنها را یک به یک اجرا می کند تا به انتهای کد برسد.

در حالی که اصطلاح “G-code” برای اشاره کلی به زبان برنامه نویسی استفاده می شود ، شامل یکی از دو نوع دستورات مورد استفاده در چاپ سه بعدی است: دستورات “عمومی” و “متفرقه”.

خطوط فرمان عمومی مسئول انواع حرکت در چاپگر سه بعدی هستند. چنین دستوراتی با حرف “G ” شناخته می شوند. علاوه بر کنترل حرکت سه محور که توسط هد چاپگر سه بعدی انجام می شود ، آنها همچنین اکستروژن فیلامنت را نیز بر عهده دارند.

از طرف دیگر دستورات متفرقه به دستگاه دستور می دهد تا کارهای غیر هندسی را انجام دهد. در چاپ سه بعدی ، چنین وظایفی شامل دستورات گرمایش برای نازل و بد و همچنین کنترل فن است. دستورات متفرقه با حرف “M” مشخص می شوند.

ترکیبات

خطوط فرمان شامل چندین پارامترها هستند
خطوط فرمان شامل چندین پارامترها هستند

هر خط فرمان G-code از شکل خاصی پیروی می کند. هر خط تنها مربوط به یک فرمان است که می تواند منجر به کدهای بسیار طولانی شود.

اولین آرگومان هر خط داده شده ، خود کد فرمان است. همانطور که دیدیم ، می تواند یک نوع کد “G” یا “M” باشد ، و به دنبال آن یک عدد که دستور را مشخص می کند. به عنوان مثال ، “G0” مربوط به یک دستور حرکت خطی است.

بعد از آن پارامترهایی می آیند که دستور را با دقت بیشتری تعریف می کنند. برای حرکت خطی G0 ، که شامل موقعیت نهایی و سرعت حرکت آن که همچنین با حروف بزرگ مشخص می شود است. هر فرمان دارای پارامترهای خاص خود است که به زودی خواهیم دید.

یادداشتی در مورد تعریف G-code

قبل از شروع کار ، هنگامی که دستورات مختلف را مرور می کنیم ، بعد از یک حرف و عدد نقطه ویرگول را مشاهده می کنید که توضیح می دهد کد چه کار می کند. در اینجا نمونه ای از خطی است که دارای یادداشت کد است:

G1 ؛  X25 Y5  

من یک یادداشت کد هستم!

برنامه نویسان اغلب باید توضیحاتی را به زبان انگلیسی ساده وارد کنند تا برنامه نویسان دیگر خطوط یا بخش های خاصی از کد را درک کنند. همچنین ممکن است اتفاق بیفتد که چرا چیزها را به شیوه خاصی کدگذاری کرده اید و در نتیجه زمان زیادی برای کشف دوباره مسائل دشوار شده است.

راه حل این مشکل یادداشت کد است. یادداشت شامل هر چیزی (در همان خط) به دنبال یک نقطه ویرگول است و هنگام اجرای G-code توسط دستگاه کاملاً نادیده گرفته می شود. به این ترتیب ، آنها کاملاً برای چشم برنامه نویسان طراحی شده اند.

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

G0 & G1: حرکت خطی

دستورات G0 و G1 مسئول حرکت و اکستروژن خطی هستند
دستورات G0 و G1 مسئول حرکت و اکستروژن خطی هستند

دستورات G0 و G1 هر دو حرکتهای خطی را انجام می دهند. طبق قرارداد ، G0 برای حرکات بدون اکستروژن مانند حرکتهای اولیه استفاده می شود ، در حالی که G1 شامل تمام حرکتهای خطی اکسترودر است.

هر دو دستور یکسان عمل می کنند. پارامترهای G0 یا G1 شامل موقعیت نهایی برای تمام محورهای و Y و Z ، میزان اکستروژن انجام شده در حین حرکت و سرعت تعیین شده توسط نرخ تغذیه در واحدهای تنظیم شده است.

مثال

G1 X90 Y50 Z0.5 F3000 E1 به چاپگر سه بعدی می گوید در یک خط مستقیم (G1) به سمت مختصات نهایی X = 90 mm ، Y = 50 mm ، Z = 0.5 mm با نرخ سرعت (F) 3000 میلی متر در دقیقه حرکت کند و در همین هنگام اکسترودر (E)  1میلی متر مواد را از دستگاه اکسترود کند .

بیشتر حرکتهای خطی در یک لایه انجام می شوند ، بدین معنی که مختصات Z معمولاً از خط فرمان حذف می شود.

G90 و G91: موقعیت یابی مطلق و نسبی

موقعیت یابی نسبی با مختصات قبلی تعریف می شود ، در حالی که مطلق اینطور نیست

دستورات G90 و G91 به دستگاه می گوید که چگونه مختصات مورد استفاده برای حرکت را تفسیر کند. G90 “موقعیت مطلق” را تعیین می کند ، که معمولاً پیش فرض است ، در حالی که G91 برای “موقعیت نسبی” است.

هیچ یک از دستورات نیازی به پارامتر ندارد و تنظیم یکی به طور خودکار دیگری را لغو می کند. نحوه عملکرد موقعیت بسیار ساده است ، بنابراین بیایید مستقیماً وارد شویم.

مثال

فرض کنید می خواهیم هد چاپ را در یک خط به X = 30 منتقل کنیم. در حالت موقعیت یابی مطلق ، به این شکل است:

G90 ؛ موقعیت مطلق را تعیین می کند

G0 X30 ؛ به مختصات X = 30 حرکت می کند

این حرکت ساده به چاپگر می گوید که هد چاپ را طوری حرکت دهد که در X = 30 قرار گیرد.

حال ، برای حرکت موقعیت نسبی ، باید بدانیم که سر چاپ در حال حاضر کجاست. فرض کنیم در X = 10 است:

G91 ؛ موقعیت نسبی را تعیین می کند

G0 X20؛ 30 + میلی متر در امتداد محور X حرکت می کند

G91 ابتدا به دستگاه می گوید مختصات را نسبت به موقعیت فعلی تفسیر کند (X = 10). با دانستن این امر ، دستگاه به سادگی باید 20 میلی متر در جهت مثبت محور X حرکت کند ، بنابراین ، همانطور که در نظر داریم به X = 30 برسد.

G28 & G29: تراز کردن بد و هوم خودکار

G28 و G29 برای مرحله راه اندازی مفید هستند
G28 و G29 برای مرحله راه اندازی مفید هستند

ما فرایند تعیین محدودیت های فیزیکی همه محورهای حرکت را “homing” می نامیم. فرمان G28 این کار را با حرکت دادن هد چاپ انجام می دهد تا زمانی که باعث توقف پایانی برای تشخیص محدودیت ها شود.

homing نه تنها برای جهت گیری ماشین بلکه برای جلوگیری از حرکت سر چاپ به خارج از مرزها نیز مهم است. دستور G28 معمولاً قبل از هر فرآیند چاپ انجام می شود.

محورهای خاص را می توان به صورت جداگانه با درنظر گرفتن پارامترهای ، Y یا Z قرار داد. در غیر این صورت ، G28 به تنهایی هر سه را در خود جای می دهد.

مثال

G28 X Y ؛ هوم محورهای X و Y فقط انجام شود

G28 ؛ هوم همه محورها

دستور دیگر ، G29 ، توالی تراز خودکار بد را شروع می کند. روشهای مختلفی برای تراز کردن بد قبل از چاپ سه بعدی وجود دارد ، زیرا این روش معمولاً توسط سیستم عامل تنظیم می شود و نه توسط کاربران نهایی. به همین دلیل ، ما در مورد روش ها و پارامترهای دستور وارد جزئیات نمی شویم. فقط بدانید که G29 معمولاً پس از یک هوم خودکار (G28) ارسال می شود و باید همانطور که توسط سیستم عامل تعیین شده است تراز خودکار بد را انجام دهد

مثال

G29 ؛ تراز کردن خودکار بد انجام شود

M104 ، M109 ، M140 و M190: تنظیم دما

این دستورات M وظیفه کنترل دمای هات اند و دمای بد را بر عهده دارند
این دستورات M وظیفه کنترل دمای هات اند و دمای بد را بر عهده دارند

اینها دستورات متفرقه ضروری هستند که باز هم هیچ حرکتی را شامل نمی شوند.

برای شروع ، فرمان M104 دمای هدف را برای هات اند تعیین می کند و آن را تا زمانی که دستورالعمل دیگری داده نشود ، حفظ می کند.

برخی از پارامترها شامل مقدار دمای واقعی (S) و هد چاپ (T) برای گرم کردن (برای تنظیمات اکستروژن متعدد) است.

مثال

M104 S210 ؛ دمای موردنظر را برای هات اند به 210 درجه تنظیم کنید

این خط فرمان به دستگاه دستور می دهد تنها هات اند خود را تا 210 درجه سانتی گراد گرم کند. پس از تنظیم درجه حرارت مورد نظر ، چاپگر در حین گرم کردن هات اند خط فرمان بعدی را انجام می دهد.

متناوبا ، اگر بخواهیم منتظر بمانیم تا قبل از حرکت به خط بعدی به آن هدف برسیم ، می توانیم از دستور M109 استفاده کنیم.

M109 S210 ؛ دمای هدف را برای هات اند 210 درجه تنظیم کنید و تا زمانی که به آن نرسیدید کاری انجام ندهید

تنظیم درجه حرارت بد بسیار شبیه به هات اند است ، اما در عوض با دستورات M140 و M190:

M140 S110 ؛ دمای هدف برای بد را روی 110 درجه تنظیم کنید

M190 S110 ؛ دمای هدف را برای بد روی 110 درجه تنظیم کنید و تا رسیدن به آن هیچ کاری انجام ندهید

M106 و M107: کنترل فن

هر دو فرمان M106 و M107 تمام فن های چاپگر سه بعدی شما را کنترل می کنند
هر دو فرمان M106 و M107 تمام فن های چاپگر سه بعدی شما را کنترل می کنند

یکی دیگر از وظایف اساسی پرینترهای سه بعدی ، دستورات متفرقه M106 و M107 هستند که کنترل فن را فراهم می کنند.

M106 فن را روشن کرده و سرعت آن را تنظیم می کند. این امر به ویژه برای فن خنک کننده قطعه مفید است ، زیرا سرعتهای مختلفی در طول فرآیند چاپ سه بعدی در لایه اول و بریج زدن مورد نیاز است.

پارامتر سرعت باید مقداری بین 0 تا 255 باشد. مقدار 255  ، 100٪ قدرت را تأمین می کند و هر عددی در این محدوده بر این اساس درصدی را مشخص می کند.

مثال

M106 ؛ فن را با حداکثر سرعت (100٪) روشن کنید

M106 S128 ؛ یک فن را روشن کرده و روی 50٪ قدرت قرار دهید

چندین فن کنترل شده با سرعت را می توان با پارامترهای index (P) تعریف کرد ، زیرا به هر فن یک شاخص توسط سیستم عامل اختصاص داده شده است.

در نهایت ، فرمان M107 یک فن مشخص را خاموش می کند. اگر هیچ پارامتر شاخصی ارائه نشده باشد ، فن خنک کننده قطعه معمولاً یکی از مواردی است که باید خاموش شود.

ما اکنون در موقعیت مناسبی هستیم تا قطعه ای از کد را که برای چاپ سه بعدی استفاده می شود ، بررسی کنیم. برنامه های G-code را می توان به سه بخش مجزا تقسیم کرد ، همانطور که در ادامه خواهیم دید.

شایان ذکر است که اگر از ویرایشگر متن برای باز کردن یک فایل G-code ایجاد شده توسط یک اسلایسر سه بعدی استفاده می کنید ، ممکن است فوراً با دستورات G یا M شروع نشود. به عنوان مثال ، یک اسلایسر مانند Cura یا Simplify3D کد را با برخی از پارامترهای فرآیند چاپ که قبلاً در نظرات تعریف شده است ، شروع می کند. این خطوط بر چاپ تأثیر نمی گذارد ، بلکه به عنوان مثال یک مرجع سریع برای پارامترهایی مانند ارتفاع لایه ارائه می دهد.

فاز 1: راه اندازی اولیه

"مرحله راه اندازی" شامل تمام دستورات مورد نیاز برای آماده سازی چاپگر برای چاپ است
“مرحله راه اندازی” شامل تمام دستورات مورد نیاز برای آماده سازی چاپگر برای چاپ است

بخش اول هر برنامه شامل کارهای آماده سازی قبل از شروع چاپ مدل است. در زیر شش خط اول دستورات اولیه G-code از یک کار چاپ سه بعدی واقعی آمده است.

G90

M82

M140 S80

M104 S200

G28

G29

همانطور که اکنون می دانیم ، خط اول می گوید که حرکات باید از موقعیت مطلق استفاده کنند ، در حالی که خط دوم به اکسترودر می گوید که اکستروژن را نیز به صورت مطلق تفسیر کند.

خط سوم و چهارم شروع به گرم کردن بد و نازل تا دمای مورد نظر خود می کنند. توجه داشته باشید که منتظر دمای مورد نظر نخواهند بود ، به این معنی که چاپگر سه بعدی هنگام گرم شدن خودکار هوم را تنظیم می کند و بد را تراز می کند.

برخی از روالهای اولیه (به عنوان مثال روشی که PrusaSlicer استفاده می کند) شامل یک فرآیند پاکسازی نازل است ، مانند چاپ یک خط مستقیم قبل از پرش به مرحله چاپ.

فاز 2: چاپ

فرایند چاپ عمدتا از یک سری حرکات و اکستروژن تشکیل شده است
فرایند چاپ عمدتا از یک سری حرکات و اکستروژن تشکیل شده است

اینجا جادو اتفاق می افتد اگر به یک فایل باز شده G-code نگاه کنید ، می بینید که برای ما غیرممکن است که بفهمیم نازل در واقع چه می کند.

چاپ سه بعدی یک فرایند لایه به لایه است ، بنابراین خواهید دید که این مرحله حین چاپ یک لایه حرکات زیادی را در داخل صفحه XY شامل می شود. پس از انجام این کار ، یک حرکت کوچک در جهت Z ، آغاز لایه بعدی را مشخص می کند.

در اینجا مثالی از نحوه نمایش دستورات G-code در مرحله چاپ آمده است:

G1 X103.505 Y153.291 E4.5648 ؛ حرکت و اکستروژن در صفحه XY

G1 X103.291 Y153.505 E4.5804 ؛ حرکت و اکستروژن در صفحه XY

G1 Z0.600 F3000 ؛ تغییر لایه

G1 X104.025 Y154.025 F9000 ؛ حرکت در صفحه XY

G1 X95.975 Y154.025 E0.4133 F1397 ؛ حرکت و اکستروژن در صفحه XY

  

مرحله 3: چاپگر را ریست کنید

دستورات نهایی G-code معمولا تنظیم مجدد موقعیت ها و وضعیت است
دستورات نهایی G-code معمولا تنظیم مجدد موقعیت ها و وضعیت است

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

به عنوان مثال ، نازل ممکن است به یک موقعیت از پیش تعیین شده برود ، هات اند و هیت بد خاموش شده و موتورها ، از جمله اقدامات دیگر ، غیرفعال شوند.

M107 ؛ فن را خاموش کنید

G1 Z10 ؛ نازل را از چاپ دور کنید

M104 S0 ؛ هات اند را خاموش کنید

M140 S0 ؛ هیت بد را خاموش کنید

M84 ؛ موتورها را خاموش کنید

اگر شما هم به یک پرینتر سه بعدی علاقه دارید پرینتر سه بعدی صنعتی S5050  را به شما پیشنهاد می کنیم

ورودی ها و خروجی های ترمینال

OctoPrint دارای یک پنجره ترمینال برای ارسال و دریافت مستقیم G-code است
OctoPrint دارای یک پنجره ترمینال برای ارسال و دریافت مستقیم G-code است

تا به حال ، ما فقط در مورد ارسال دستورات G-code رایانه به چاپگر سه بعدی (معمولاً از طریق کارتSD یا USB) صحبت می کردیم. با این حال ، این تنها روش ارتباطی نیست.

برخی از نرم افزارهای کنترل مانند Pronterface و OctoPrint امکان برقراری ارتباط مستقیم با چاپگر سه بعدی را دارند ، در این صورت می توانید دستورات را به صورت دستی وارد کنید.

به دلایل واضح ، چاپ هر چیزی با ارسال خطوط کد به صورت جداگانه عملی نخواهد بود. اما گاهی اوقات این روش ارتباطی برای اهداف دیگری مانند بازیابی اطلاعات ارزشمند برای کالیبراسیون یا حتی زمانی که چاپگر سه بعدی فاقد صفحه نمایش است ، مورد نیاز است.

به عنوان مثال ، دستور “گزارش دمای” M105 دمای نازل و بد  فعلی را بازیابی می کند (که ممکن است بعداً توسط چیزی مانند OctoPrint نمایش داده شود).

این ارتباط همچنین برای مشاهده و تغییر تنظیمات EEPROM که در سطح سیستم عامل دارای کد سخت هستند بسیار مفید است. پارامترهایی مانند پله های موتور/میلی متر ، حداکثر نرخ تغذیه یا PID را می توان از طریق M503 (“تنظیمات گزارش”) مشاهده کرد ، به صورت دستی تغییر داد و سپس از طریق M500 (“ذخیره تنظیمات”) ذخیره کرد.

نوشتن G-code

برخی از ابزارهای تجسم G-code می توانند برای یادگیری نحوه نوشتن کد بسیار مفید باشند
برخی از ابزارهای تجسم G-code می توانند برای یادگیری نحوه نوشتن کد بسیار مفید باشند

در حال حاضر ، شما باید بتوانید G-code را بسیار بهتر بخوانید و درک کنید. با این وجود ، می توانید از نوشتن آن نیز سود ببرید.

این تجسم آنلاین G-code یک ابزار عالی برای آزمایش مهارت های شما است ، زیرا می توانید دستورات کد G را بنویسید و بر این اساس آنها را شبیه سازی کنید. در واقع بسیار سرگرم کننده است!

با نگاهی به فایلهای G-code صادر شده از اسلایسر ها ، باید بینشی در مورد نحوه عملکرد G-code برای چاپ سه بعدی در اختیار شما قرار دهد. مطمئن شوید که یک برگه مرجع دستورات در کنار خود دارید و کد را کشف کنید!

 سازگاری

یادگیری G-code یک کار مداوم و مفید است
یادگیری G-code یک کار مداوم و مفید است

ما امیدواریم که با درک دستورات G-code ، به یک کاربر چاپگر سه بعدی با دانش و قدرتمند تبدیل شوید. در حالی که G-code پیچیده ترین زبان رایانه نیست ، اما هنوز نیاز به تمرین و مطالعه زیادی دارد.

قبل از اتمام این مقاله ، شاید ارزش آن را داشته باشد که کمی در مورد سازگاری با G-code صحبت کنیم.

انواع مختلفی از سیستم عامل چاپ سه بعدی وجود دارد و هر کدام ممکن است “دستورالعمل” متفاوتی از G-code داشته باشند. این می تواند منجر به مشکلات عمده سازگاری شود ، زیرا دستوراتی که برای یک دستگاه کار می کنند ممکن است برای دستگاه دیگر کار نکنند.

نرم افزار اسلایسر با ارسال کد از طریق درایورهای پس پردازش مخصوص دستگاه ، این کار را انجام می دهد. پس پردازنده دستورالعمل کد ورودی را تشخیص داده و کد را به چیزی که سیستم عامل آن را درک می کند ، تبدیل می کند.

 با این اوصاف ، امیدواریم از این راهنمای مختصر لذت برده باشید. کد نویسی مبارک!

 ترجمه و جمع آوری : واحد تحقیق و توسعه خدمات پرینتر های سه بعدی ثمین samin3d

 

فاطمه کلانکی

پست های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *