دستورات G-Code : فهرست کامل و آموزش
- 1 . G-code چیست؟
- 2 . ترکیبات
- 3 . یادداشتی در مورد تعریف G-code
- 4 . G0 & G1: حرکت خطی
- 5 . G90 و G91: موقعیت یابی مطلق و نسبی
- 6 . G28 & G29: تراز کردن بد و هوم خودکار
- 7 . M104 ، M109 ، M140 و M190: تنظیم دما
- 8 . M106 و M107: کنترل فن
- 9 . فاز 1: راه اندازی اولیه
- 10 . فاز 2: چاپ
- 11 . مرحله 3: چاپگر را ریست کنید
- 12 . ورودی ها و خروجی های ترمینال
- 13 . نوشتن G-code
- 14 . سازگاری
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 شامل موقعیت نهایی برای تمام محورهای X و 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 برای مرحله راه اندازی مفید هستند
ما فرایند تعیین محدودیت های فیزیکی همه محورهای حرکت را "homing" می نامیم. فرمان G28 این کار را با حرکت دادن هد چاپ انجام می دهد تا زمانی که باعث توقف پایانی برای تشخیص محدودیت ها شود.
homing نه تنها برای جهت گیری ماشین بلکه برای جلوگیری از حرکت سر چاپ به خارج از مرزها نیز مهم است. دستور G28 معمولاً قبل از هر فرآیند چاپ انجام می شود.
محورهای خاص را می توان به صورت جداگانه با درنظر گرفتن پارامترهای X ، Y یا Z قرار داد. در غیر این صورت ، G28 به تنهایی هر سه را در خود جای می دهد.
مثال
G28 X Y ؛ هوم محورهای X و Y فقط انجام شود
G28 ؛ هوم همه محورها
دستور دیگر ، G29 ، توالی تراز خودکار بد را شروع می کند. روشهای مختلفی برای تراز کردن بد قبل از چاپ سه بعدی وجود دارد ، زیرا این روش معمولاً توسط سیستم عامل تنظیم می شود و نه توسط کاربران نهایی. به همین دلیل ، ما در مورد روش ها و پارامترهای دستور وارد جزئیات نمی شویم. فقط بدانید که G29 معمولاً پس از یک هوم خودکار (G28) ارسال می شود و باید همانطور که توسط سیستم عامل تعیین شده است تراز خودکار بد را انجام دهد
مثال
G29 ؛ تراز کردن خودکار بد انجام شود
M104 ، M109 ، M140 و M190: تنظیم دما
این دستورات 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 فن را روشن کرده و سرعت آن را تنظیم می کند. این امر به ویژه برای فن خنک کننده قطعه مفید است ، زیرا سرعتهای مختلفی در طول فرآیند چاپ سه بعدی در لایه اول و بریج زدن مورد نیاز است.
پارامتر سرعت باید مقداری بین 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 ، چاپگر سه بعدی را به حالت پیش فرض معقول می رسانند.
به عنوان مثال ، نازل ممکن است به یک موقعیت از پیش تعیین شده برود ، هات اند و هیت بد خاموش شده و موتورها ، از جمله اقدامات دیگر ، غیرفعال شوند.
M107 ؛ فن را خاموش کنید
G1 Z10 ؛ نازل را از چاپ دور کنید
M104 S0 ؛ هات اند را خاموش کنید
M140 S0 ؛ هیت بد را خاموش کنید
M84 ؛ موتورها را خاموش کنید
اگر شما هم به یک پرینتر سه بعدی علاقه دارید پرینتر سه بعدی صنعتی S5050 را به شما پیشنهاد می کنیم
ورودی ها و خروجی های ترمینال
OctoPrint دارای یک پنجره ترمینال برای ارسال و دریافت مستقیم G-code است
تا به حال ، ما فقط در مورد ارسال دستورات G-code رایانه به چاپگر سه بعدی (معمولاً از طریق کارتSD یا USB) صحبت می کردیم. با این حال ، این تنها روش ارتباطی نیست.
برخی از نرم افزارهای کنترل مانند Pronterface و OctoPrint امکان برقراری ارتباط مستقیم با چاپگر سه بعدی را دارند ، در این صورت می توانید دستورات را به صورت دستی وارد کنید.
به دلایل واضح ، چاپ هر چیزی با ارسال خطوط کد به صورت جداگانه عملی نخواهد بود. اما گاهی اوقات این روش ارتباطی برای اهداف دیگری مانند بازیابی اطلاعات ارزشمند برای کالیبراسیون یا حتی زمانی که چاپگر سه بعدی فاقد صفحه نمایش است ، مورد نیاز است.
به عنوان مثال ، دستور "گزارش دمای" M105 دمای نازل و بد فعلی را بازیابی می کند (که ممکن است بعداً توسط چیزی مانند OctoPrint نمایش داده شود).
این ارتباط همچنین برای مشاهده و تغییر تنظیمات EEPROM که در سطح سیستم عامل دارای کد سخت هستند بسیار مفید است. پارامترهایی مانند پله های موتور/میلی متر ، حداکثر نرخ تغذیه یا PID را می توان از طریق M503 ("تنظیمات گزارش") مشاهده کرد ، به صورت دستی تغییر داد و سپس از طریق M500 ("ذخیره تنظیمات") ذخیره کرد.
نوشتن G-code
برخی از ابزارهای تجسم G-code می توانند برای یادگیری نحوه نوشتن کد بسیار مفید باشند
در حال حاضر ، شما باید بتوانید G-code را بسیار بهتر بخوانید و درک کنید. با این وجود ، می توانید از نوشتن آن نیز سود ببرید.
این تجسم آنلاین G-code یک ابزار عالی برای آزمایش مهارت های شما است ، زیرا می توانید دستورات کد G را بنویسید و بر این اساس آنها را شبیه سازی کنید. در واقع بسیار سرگرم کننده است!
با نگاهی به فایلهای G-code صادر شده از اسلایسر ها ، باید بینشی در مورد نحوه عملکرد G-code برای چاپ سه بعدی در اختیار شما قرار دهد. مطمئن شوید که یک برگه مرجع دستورات در کنار خود دارید و کد را کشف کنید!
سازگاری
یادگیری G-code یک کار مداوم و مفید است
ما امیدواریم که با درک دستورات G-code ، به یک کاربر چاپگر سه بعدی با دانش و قدرتمند تبدیل شوید. در حالی که G-code پیچیده ترین زبان رایانه نیست ، اما هنوز نیاز به تمرین و مطالعه زیادی دارد.
قبل از اتمام این مقاله ، شاید ارزش آن را داشته باشد که کمی در مورد سازگاری با G-code صحبت کنیم.
انواع مختلفی از سیستم عامل چاپ سه بعدی وجود دارد و هر کدام ممکن است "دستورالعمل" متفاوتی از G-code داشته باشند. این می تواند منجر به مشکلات عمده سازگاری شود ، زیرا دستوراتی که برای یک دستگاه کار می کنند ممکن است برای دستگاه دیگر کار نکنند.
نرم افزار اسلایسر با ارسال کد از طریق درایورهای پس پردازش مخصوص دستگاه ، این کار را انجام می دهد. پس پردازنده دستورالعمل کد ورودی را تشخیص داده و کد را به چیزی که سیستم عامل آن را درک می کند ، تبدیل می کند.
با این اوصاف ، امیدواریم از این راهنمای مختصر لذت برده باشید. کد نویسی مبارک!
ترجمه و جمع آوری : واحد تحقیق و توسعه خدمات پرینتر های سه بعدی ثمین samin3d