مهارت پرینت سه بعدی خود را افزایش دهید:
راهنمای دستورات کاربردی G-Code پرینترهای سه بعدی
G-Code زبانی است که توسط سیستمهای کامپیوتری برای ارتباط با پرینتر سه بعدی به کار میرود.
در این مقاله آموزشی دو قسمتی، طرز نوشتن تمامی کدهای مهم «جی کد» را یاد خواهید گرفت.
با استفاده از G-Code یک کامپیوتر میتواند حرکت اکسترودر چاپگر سه بعدی را در زمان، مکان و چگونگی آن در طول فرآیند پرینت کنترل نماید.
اگر تاکنون اصلا با دستورات «جی کد» سروکار نداشتهاید، عجیب نیست چون اکثر نرمافزارها همچون Cura و Simplify3D ، فایلهای G-Code را به طور اتوماتیک از مدلهای سه بعدی CAD میسازند.
بنابراین اکثر کاربران هرگز این کدها را نخواهند دید یا تنها چند خط کد ساده را برای لحظهای کوتاه می بینند.
اگر میخواهید وسعت دید عمیقتری از فرآیند پرینت سه بعدی داشته باشید؛ دانستن دستورات این زبان پرکاربرد الزامیست.
با اطلاع از چون و چرای زبان «جی کد» شما در چاپ سه بعدی قدرت فوقالعادهای پیدا خواهید کرد:
• کسانی که این مرحله را طی میکنند، راحتتر مشکلات پرینتر خود را حل میکنند.
• هر بخش از فرایند چاپ سه بعدی را در کنترل خواهند داشت.
• قادر به شناسایی و جلوگیری از خطا حین چاپ سه بعدی خواهند بود.
اگر موارد بالا برای شما جذاب است، پس این مقاله متعلق به شماست.
هدف ما این است که مهارتهای پایهای G-Code را به دست آورید. بعد از خواندن هر دو قسمت این مقاله آموزشی شما مهارتهای زیر را کسب خواهید کرد:
• خواندن و درک کدهای G-Code
• نوشتن کدهای «جی کد» دلخواه و سنجش آنلاین آنها
• توانایی استفاده از عملگر پیش نمایش جی کد «G-code Preview functionality» برای عیبیابی طرحهای سه بعدی پیچیده پرینت.
حالا بیایید مقاله بخش اول شروع کنیم!
آموزش G-Code: زبان جی کد چیست؟
«جی کد» مخفف عبارت «Geometric Code» میباشد. هدف اصلی این برنامه راهنمایی یک ماشین برای حرکت در سه محور جغرافیایی X، Y، Z است.
اگرچه این زبان برای دستوردهی به یک ماشین الکترونیک برای انجام کارهای غیرهندسی نیز به کار میرود، همانند: تنظیم ضریب خروج اکسترودر یا تغییر دمای بستر چاپ.
در تعریف فنی، G-Code یک زبان برنامهنویسی کنترلی عددی است. برای آنهایی که به برنامهنویسی کامپیوتری آشنایی دارند، «جی کد» زبانی محبوب و آسان است
زیرا سینتکس سادهای داشته و نیازی به تعریف ساختارهای پیشرفته همچون توابع، عبارات شرطی، حلقهها ندارد.
کسانی هم که اطلاعی از برنامهنویسی کامپیوتر ندارند میتوانند «جی کد» را به خطهای متوالی از دستورالعملهای سیستمی تشبیه کنند:
هر خط یک عملکرد خاص را به پرینتر سه بعدی انتقال میدهد؛ پرینتر سه بعدی خط به خط این دستورات را اجرا کرده تا به خطوط پایانی برسد.
آموزش G-Code: چطور دستورات جی کد را بخوانیم؟
فکر کردهاید یک خط دستور «جی کد» چه طور به نظر میآید، خط زیر را نگاه کنید:
G1 X-9.2 Y-5.42 Z0.5 F3000.0 E0.0377
وحشت نکنید، الان تمامی کاراکترها را به شما توضیح میدهیم!
این خط کد به چاپگر سه بعدی دستور میدهد تا در یک خط مستقیم با مقصد مختصاتی X=-9.2، Y=-5.42 و محور Z=0.5 با ضریب تغذیه دستگاه برابر 3000.0 حرکت کند.
همچنین در بخش آخر این دستور، ضریب اکسترودر متریال برابر 0.0377 حین حرکت تعیین شده است. همین، دیدید چه قدر راحت و قابل فهم است.
یک سوال: چطور چندین سطر کد شبیه این را از یکدیگر تشخیص داده میشود و تفسیر ماشین میشوند؟
جواب: هر خط کد با یک نشان دستوری آغاز میشود، در دستور بالا این نشان G1 است. هر کدی که بعد از این نشانه یا دستور بیاید اصطلاحا آرگومان (argument) نامیده میشود.
در واقع طبق توضیحاتی که در بالا دادیم هر آرگومان به پرینتر سه بعدی برای اجرای دستور کمک میکند. پس یکبار دیگر کد بالا را بررسی میکنیم:
• هر آرگومان با یک کاراکتر انگلیسی شروع شده و یک مقدار نیز تعریف میشود.
• پس آرگومان X=-9.2 یعنی حرکت محور X مساوی با مقدار منفی 9.2
• آرگومان F3000.0 به معنی Feed Rate با مقدار 3000.0
• آرگومان E0.0377 به معنی Extrusion rate با مقدار 0.0377
تمرین: آرگومانهای کد زیر را تفسیر کنید:
G1 X5 Y5 Z0 F3000.0 E0.02
اگر توانستید دستور بالا را بدین ترتیب تفسیر کنید به شما تبریک میگوییم، بخش اول آموزش را کامل درک کردهاید!
خط بالا یعنی: در خط مستقیم محور X و Y برابر 5 و محور Z برابر صفر (یعنی بدون حرکت) با سرعت چاپ feed rate: 3000.0 و ضریب متریال اکسترودر برابر 0.02
کاراکتر G1 کد بالا یک دستور هندسی است و برای فرمان دادن به پرینتر سه بعدی برای حرکات سه محوری مختصات کاربرد دارد.
حالا اگر بخواهید وظیفهای غیرهندسی مثل تنظیم دمای بستر پرینت یا خاموش روشن کردن موتور را به چاپگر اعلام کنید چه کار خواهید کرد؟
بدین منظور زبان «جی کد» دستور غیرهندسی با کارکتر M را تعریف کرده که در اول هر خط کد میآید. واقعا هم بنام دستورهای «M Code» معروف هستند؛ مثلا M140 دمای بستر چاپ را تنظیم میکند.
در لیست زیر کاربرد هر کاراکتر دستوری زبان «G-Code» را توضیح دادهایم:
- Gnnn: دستور استاندارد جی کد برای حرکت در یک نقطه مختصاتی
- Mnnn: دستور استاندارد RepRap : به طور مثال تنظیم مقدار خنک کنندگی (cooling fan)
- Tnnn: انتخاب ابزار (tool) در استاندارد RepRap. یک ابزار که با نازل همراه میشود و ممکن است با یک یا چند اکسترودر تغذیه شود.
- Snnn: پارامتری دستوری مثل زمان در ثانیه، دما، ولتاژ برای ارسال به موتور
- Pnnn: پارامتری دستوری مثل زمان در میلی ثانیه، نسبت ( proportional: Kp ) در میزان سازی PID
- Xnnn: محور مختصات X برای تعیین حرکت. مقدار اعشاری یا صحیح میپذیرد
- Ynnn: محور مختصات Y برای تعیین حرکت. مقدار اعشاری یا صحیح میپذیرد
- Znnn: محور مختصات Z برای تعیین حرکت. مقدار اعشاری یا صحیح میپذیرد
- U,V,W: محورهای مختصاتی اضافی در سیستم RepRap
- Innn: پارامتر X-offset در حرکت قوسی (arc). انتگرال (Ki) در میزان سازی PID
- Jnnn: پارامتر X-offset در حرکت قوسی (arc)
- Dnnn: پارامتر تعریف قطر دایره. مشتق در میزان سازی PID
- Hnnn: پارامتر عددی گرمایی (heater) در میزان سازی PID
- Hnnn: پارامتر عددی گرمایی (heater) در میزان سازی PID
- Fnnn: سرعت نازل پرینتر سه بعدی بر حسب میلیمتر بر دقیقه
- Rnnn: پارامتر تنظیم دما
- Qnnn: پارامتر منسوخ شده
- Ennn: درجه تغذیه اکسترودر. فاکتوری شبیه به سه محور مختصات با این تفاوت که میزان مصرف فیلامنت را تعیین میکند.
- Nnnn: شماره خط. برای درخواست تکرار ارسال در مواقعی همچون خطای ارتباطی به کار میرود.
- nnn: Checksum نمایش نوع خطا بر حسب مقادیر عددی (راهنمای عیب یابی در جی کد)
مهمترین دستورات برنامه نویسی Gcode پرینتر سه بعدی
در بخشهای قبلی درباره دستور G1 توضیح دادیم؛ تنظیم حرکت مختصاتی هد نازل پرینتر سه بعدی.
این تنها بخشی از مجموع عملکردهای این دستور است. حالا میخواهیم در اینجا به دیگر موارد دستور G در زبان «جی کد» بپردازیم.
شماره 1: G0 یا حرکت سریع
دستور G0 به اکسترودر پرینتر سه بعدی فرمان میدهد تا در حداکثر سرعت حرکتی ممکن به محور مختصاتی داده شده منتقل شود. در این دستور انتقال نازل در حالتی انجام میشود که هر دو محور تقریبا همزمان حرکت خود را کامل کنند.
بنابراین در حین حرکت G0 ، نازل هیچ متریالی در اسکترودر تزریق نمیکند.
به طور کلی کاربرد دستور G0 زبان «جی کد» برای چاپگر سه بعدی آوردن سریع نازل هد به مختصات دلخواه در شروع یا میانه پرینت است.
مثال: G0 X7 Y18
شماره 2: G1 یا حرکت کنترلی
دستور G1 به نازل هد پرینتر سه بعدی فرمان میدهد تا در یک حرکت با سرعتی مشخص از نقطه فعلی به مختصات تعیین شده ادامه کد است.
این سرعت انتقال نازل با آرگومان F (بخشهای قبلی مفصل توضیح دادیم) تعیین میشود.
در این دستور انتقال نازل در حالتی انجام میشود که هر دو محور تقریبا همزمان حرکت خود را کامل کنند. در حرکت G1 نازل قادر است به اکسترودر فرمان تزریق متریال را صادر کند که آرگومان E آنرا مشخص میکند.
در واقع بخش اعظم فرآیند پرینت سه بعدی در این دستور صورت میگیرد؛ اگر فایل «جی کد» را حین کار پرینتر سه بعدی باز کنید اغلب خط دستورات با G1 شروع شدهاند.
مثال: G1 X7 Y18 F500 E0.02
شماره 3: G17/G18/G19 یا تنظیم جهش
مجموعه این دستورات نوع پرش نازل را تعیین میکند. معمولا G17 پرش محور X-Y را برای اغلب ماشینها به طور پیش فرض تعیین میکند. G18 برای پرش محور Z-X و G19 تعیین کننده پرش Y-Z است.
مثال:
G18 G02 X2 Z0 I1 K0 = (G18 sets XZ plane)
شماره 4: G20/G21 یا تنظیم واحدها:
این دو دستور برای تعیین واحد اندازهگیری به کار میرود. G20 مقدار عددی واحد اینچ و G21 برای واحد میلیمتر به کار میرود. دقت کنید این دو واحد تفاوتهای بزرگی را میسازند، چون:
G20
G0 X7 Y18
به معنی حرکت محور X و Y به مقادیر 7 و 18 اینچ است در حالی که
G21
G0 X7 Y18
به معنی حرکت محور X و Y به مقادیر 7 و 18 میلیمتر میباشد.
شماره- 5: G28 یا بازگشت به خانه
دستور G28 به دستگاه می گوید که به حالت اولیه برگردد. بازگشت به خانه می تواند با کد دستوری زیر تعریف شود:
G28.1 X0 Y0 Z0
شماره 6: G90 یا حالت مطلق
دستور حالت مطلق به دستگاه می گوید که مختصات را به عنوان مختصات مطلق تفسیر کند. این به معنی یک دستور «جی کد» است.
G0 X10
این دستور دستگاه را به مختصات 10 واحد برای محور X می فرستد.
شماره – 7: G91 یا حالت نسبی
حالت نسبی بر عکس حالت مطلق است. دستور G91 به دستگاه می گوید مختصات را به عنوان مختصات نسبی تفسیر کند. اگر اکنون دستگاه در حالت 10 واحد برای محور X است، دستور جی کد زیر:
G91
G0 X10
به دستگاه می گوید که از موقعیت کنونی اش 10 واحد در جهت محور X حرکت کند. در انتهای عملیات دستگاه در حالت X=20 قرار می گیرد.
شماره – 8: G2 یا حرکت ساعتگرد
این دستور به دستگاه می گوید که از حالت کنونی اش در جهت عقربه های ساعت حرکت کند. نقطه پایانی توسط مختصات X و Y مشخص می شود.
مرکز چرخش با پارامتر I مشخص می شود که موقعیت کنونی محور X نسبت به مرکز چرخش را نشان می دهد.
علامت J موقعیت کنونی محور Y از مرکز چرخش را نشان می دهد.
برای مثال:
G21 G90 G17
G0 X6 Y18
G2 X18 Y6 I0 J-12
شماره – 9: G3 یا حرکت خلاف ساعتگرد
درست همانند دستور G2، دستور G3 نیز حرکت دایره وار می سازد اما این بار بر خلاف جهت عقربه های ساعت.
مثال:
G21 G90 G17
G0 X-5 Y25
G3 X-25 Y5 I0 J-20
شماره – 10: توضیحات کد
اگر به هر کدام از دستورات واقعی «جی کد» نگاه کنید خواهید دید که در ادامه دستورات و استدلال های آن، نوشته هایی به انگلیسی نیز می آید. برای نمونه:
G0 X-25 Y5 ; rapid movement to X=-25 and Y=5
همان طور که در خط بالا می بینید، متن انگلیسی همیشه بعد از نقطه ویرگول می آید. اغلب لازم است برنامه نویسان توضیحاتی را به انگلیسی اضافه کنند تا برنامه نویسان دیگر بتوانند انگیزه یک خط خاص یا یک بخش کد را درک کنند.
اصلا برنامه نویسان دیگر را فراموش کنید! اگر شما بعد از چند سال به یک کد که خودتان نوشته اید نگاه کنید ممکن است نتوانید به یاد بیاورید که چرا کدگذاری را در این جهت خاص انجام داده اید و فهمیدن مجدد آن هم کاری دشوار است.
برای حل این مشکل شما باید کد توضیحات وارد کنید. توضیحات بعد از اضافه کردن علامت نقطه ویرگول (Semicolon) می آید. شما می توانید بعد از گذاشتن علامت نقطه ویرگول هر چیزی که می خواهید بنویسید اما این کار اغلب برای توضیح علت و منطقی که درباره آن کد وجود دارد به کار می رود.
هر چیزی که بعد از علامت نقطه ویرگول در یک خط نوشته شود، در زمان عمل به دستور جی کد توسط پرینتر نادیده گرفته شده و فقط در چشمان انسان معنی دارد. اینجا یک نمونه دیگر که در آن توضیح کد وجود دارد:
G1 X-25 Y5; I am a code comment!
بسیار خوب! قسمت اول مرجع آموزشی برنامه نویسی G-code برای چاپگر سه بعدی به پایان رسید. اکنون پیشنهاد میکنیم «بخش دوم آموزش برنامه نویسی جی کد» را مطالعه کنید.