मुख्य सामग्री पर जाएँ

G-code डायलेक्ट समर्थन

Rayforge भिन्न नियंत्रक फ़र्मवेयरों के साथ काम करने के लिए कई G-code डायलेक्ट समर्थन करता है.

स्वतः डायलेक्ट चयन​

जब कोई GRBL डिवाइस खोजा जाता है (सेटअप विज़ार्ड या डिवाइस खोज द्वारा), Rayforge फ़र्मवेयर के $I कंपाइल ध्वज पढ़ता है और सर्वोत्तम मेल खाता G-code डायलेक्ट स्वतः चुनता है — प्रायः आपको मैन्युअल रूप से एक चुनने की आवश्यकता नहीं होती. आप बाद में मशीन की G-code डायलेक्ट सेटिंग्स में चयन अध्यारोहित कर सकते हैं.

समर्थित डायलेक्ट​

Rayforge वर्तमान में ये G-code डायलेक्ट समर्थन करता है:

डायलेक्टफ़र्मवेयरसामान्य उपयोग
Grbl (Compat)GRBL 1.1+डायोड लेज़र, हॉबी CNC
Grbl (Compat, no Z axis)GRBL 1.1+Z रहित 2D लेज़र कटर
Grbl RasterGRBL 1.1+रास्टर कार्य के लिए अनुकूलित
GRBL Dynamic (Depth-Aware)GRBL 1.1+Depth-Aware लेज़र उत्कीर्णन
GRBL Dynamic (no Z axis)GRBL 1.1+Depth-Aware लेज़र उत्कीर्णन
LinuxCNCLinuxCNCनेटिव Bézier (G5) समर्थन
Mach4 (M67 Analog)Mach4तेज़-गति रास्टर उत्कीर्णन
SmoothiewareSmoothiewareलेज़र कटर, CNC
MarlinMarlin 2.0+लेज़र युक्त 3D प्रिंटर
अनुशंसित डायलेक्ट

Grbl (Compat) मानक लेज़र अनुप्रयोगों के लिए सबसे परीक्षित और अनुशंसित डायलेक्ट है.

Grbl Raster GRBL नियंत्रकों पर रास्टर उत्कीर्णन के लिए अनुकूलित है. वह लेज़र को डायनामिक पावर मोड (M4) में लगातार रखता है और अनावश्यक फ़ीडरेट कमांड छोड़ देता है, जिससे अधिक चिकना और संक्षिप्त G-code आउटपुट बनता है.

GRBL Dynamic (Depth-Aware) Depth-Aware लेज़र उत्कीर्णन के लिए अनुशंसित है जहाँ कटों के दौरान शक्ति बदलती है (जैसे, परिवर्ती गहराई उत्कीर्णन).

LinuxCNC G5 कमांड के माध्यम से नेटिव क्यूबिक Bézier वक्रों का समर्थन करता है, जो वक्र पाथों के लिए बहुत चिकना और संक्षिप्त G-code देता है. इस डायलेक्ट का उपयोग करते समय, G5 आउटपुट का लाभ उठाने के लिए उन्नत मशीन सेटिंग्स में "Bézier वक्र समर्थन" विकल्प सक्षम करें.


Mach4 (M67 Analog)​

Mach4 (M67 Analog) डायलेक्ट Mach4 नियंत्रकों के साथ तेज़-गति रास्टर उत्कीर्णन के लिए डिज़ाइन किया गया है. वह सटीक लेज़र शक्ति नियंत्रण के लिए एनालॉग आउटपुट के साथ M67 कमांड उपयोग करता है.

मुख्य सुविधाएँ​

  • M67 एनालॉग आउटपुट: इनलाइन S कमांडों के बजाय लेज़र शक्ति के लिए M67 E0 Q<0-255> उपयोग करता है
  • घटा हुआ बफ़र दबाव: शक्ति कमांडों को मोशन कमांडों से अलग करके, तेज़-गति ऑपरेशनों के दौरान नियंत्रक बफ़र पर कम दबाव पड़ता है
  • तेज़-गति रास्टर: तेज़ रास्टर उत्कीर्णन ऑपरेशनों के लिए अनुकूलित

कब उपयोग करें​

यह डायलेक्ट तब उपयोग करें जब:

  • आपके पास एनालॉग आउटपुट क्षमता वाला Mach4 नियंत्रक हो
  • आपको तेज़-गति रास्टर उत्कीर्णन चाहिए
  • मानक इनलाइन S कमांडों से आपके नियंत्रक में बफ़र ओवरफ़्लो होता हो

कमांड फ़ॉर्मेट​

डायलेक्ट ऐसा G-code जनरेट करता है:

M67 E0 Q127 ; Set laser power to 50% (127/255)
G1 X100 Y200 F1000 ; Move to position
M67 E0 Q0 ; Turn laser off

कस्टम डायलेक्ट बनाना​

किसी अंतर्निहित डायलेक्ट पर आधारित कस्टम G-code डायलेक्ट बनाने के लिए:

  1. Machine Settings → G-code Dialect खोलें
  2. नया कस्टम डायलेक्ट बनाने के लिए किसी अंतर्निहित डायलेक्ट पर Copy आइकन पर क्लिक करें
  3. आवश्यकता अनुसार डायलेक्ट सेटिंग्स संपादित करें
  4. अपना कस्टम डायलेक्ट सहेजें

प्रत्येक कस्टम डायलेक्ट एक स्वतंत्र प्रतिलिपि है: एक डायलेक्ट बदलने से अन्य डायलेक्ट या अन्य मशीनें कभी प्रभावित नहीं होतीं, इसलिए आप मौजूदा सेटअप तोड़ने की चिंता किए बिना स्वतंत्र रूप से प्रयोग कर सकते हैं. अंतर्निहित डायलेक्ट से बनी प्रतिलिपि उस अंतर्निहित से एक लिंक रखती है: जिन टेम्पलेट फ़ील्ड को आपने स्पष्ट रूप से नहीं बदला वे अंतर्निहित का पालन करते रहते हैं, इसलिए अंतर्निहित डायलेक्टों में सुधार आपकी मशीनों तक स्वतः पहुँचते हैं, जबकि आपके अपने संपादन सुरक्षित रहते हैं और कभी अध्यारोपित नहीं होते. कस्टम डायलेक्ट आपकी कॉन्फ़िगरेशन निर्देशिका में संग्रहीत होते हैं और साझा किए जा सकते हैं.

डायलेक्ट सेटिंग्स​

कस्टम डायलेक्ट संपादित करते समय, Settings पृष्ठ ये विकल्प देता है:

सतत लेज़र मोड M4/M5 को खंडों के बीच टॉगल करने के बजाय पूरे जॉब के दौरान लेज़र को डायनामिक पावर मोड (M4) में सक्रिय रखता है. यह रास्टर उत्कीर्णन के लिए उपयोगी है जहाँ लेज़र को स्कैन रेखाओं के दौरान लगातार चालू रहना होता है.

मोडल फ़ीडरेट पिछली कमांड के बाद से फ़ीडरेट न बदलने पर मोशन कमांडों से फ़ीडरेट पैरामीटर (F) छोड़ देता है. इससे अधिक संक्षिप्त G-code बनता है और नियंत्रक को भेजे गए डेटा की मात्रा घटती है.

फ़ोकसिंग के लिए अलग लेज़र-ऑन कमांड​

कुछ डायलेक्ट कम शक्ति पर लेज़र चालू करने के लिए एक अलग कमांड कॉन्फ़िगर करने का समर्थन करते हैं, जो फ़ोकस मोड के लिए उपयोगी है. इससे आप वास्तविक कटिंग या उत्कीर्णन के दौरान उपयोग होने वाली कमांड से भिन्न कमांड दृश्य "लेज़र पॉइंटर" व्यवहार के लिए उपयोग कर सकते हैं. इस विकल्प के लिए अपने डायलेक्ट का सेटिंग्स पृष्ठ जाँचें.


टेम्पलेट प्लेसहोल्डर​

कस्टम डायलेक्ट बनाते या संपादित करते समय, प्रत्येक कमांड टेम्पलेट गतिशील मान जोड़ने के लिए Python फ़ॉर्मेट स्ट्रिंग प्लेसहोल्डर उपयोग करता है. {name} या {name:.0f} सिंटैक्स उपयोग करें (जैसे, बिना दशमलव अंकों के फ़ॉर्मेट करने के लिए {power:.0f}).

टेम्पलेट द्वारा उपलब्ध प्लेसहोल्डर​

टेम्पलेटप्लेसहोल्डर
Laser Onpower
Focus Laser Onpower
Laser Off(कोई नहीं)
Tool Changetool_number
Set Speedspeed
Travel Movex, y, z, x_cmd, y_cmd, z_cmd, extra_cmd, f_command, s_command
Linear Movex, y, z, x_cmd, y_cmd, z_cmd, extra_cmd, f_command, s_command, i, j, power
Arc (CW)x, y, z, x_cmd, y_cmd, z_cmd, extra_cmd, f_command, s_command, i, j, power
Arc (CCW)x, y, z, x_cmd, y_cmd, z_cmd, extra_cmd, f_command, s_command, i, j, power
Bezier Cubicx, y, z, x_cmd, y_cmd, z_cmd, extra_cmd, f_command, s_command, i, j, p, q, power
Air On/Off(कोई नहीं)
Home All(कोई नहीं)
Home Axisaxis_letter
Move Tospeed, x, y, z
Jogspeed
Clear Alarm(कोई नहीं)
Set WCS Offsetp_num, x, y, z
Probe Cycleaxis_letter, max_travel, feed_rate
Dwellseconds, milliseconds

प्लेसहोल्डर संदर्भ​

निर्देशांक​

प्लेसहोल्डरविवरण
xफ़्लोट के रूप में लक्ष्य X निर्देशांक (जैसे, 100.0)
yफ़्लोट के रूप में लक्ष्य Y निर्देशांक (जैसे, 200.0)
zफ़्लोट के रूप में लक्ष्य Z निर्देशांक (जैसे, 5.0)
x_cmdX-अक्ष कमांड स्ट्रिंग, जैसे, " X100.0". अपरिवर्तित होने पर छोड़ा जाता है (यदि "अपरिवर्तित निर्देशांक छोड़ें" सक्षम हो)
y_cmdY-अक्ष कमांड स्ट्रिंग, जैसे, " Y200.0". अपरिवर्तित होने पर छोड़ा जाता है
z_cmdZ-अक्ष कमांड स्ट्रिंग, जैसे, " Z5.0". अपरिवर्तित होने पर छोड़ा जाता है
extra_cmdA, B, C अक्षों के लिए अतिरिक्त अक्ष कमांड स्ट्रिंग (जैसे, " A90.0"). कोई अतिरिक्त अक्ष कॉन्फ़िगर न होने पर रिक्त

गति​

प्लेसहोल्डरविवरण
f_commandफ़ीडरेट कमांड स्ट्रिंग, जैसे, " F3000". मोडल और अपरिवर्तित होने पर छोड़ा जाता है
s_commandस्पिंडल/शक्ति कमांड स्ट्रिंग, जैसे, " S500". डायनामिक/रास्टर मोडों और सतत लेज़र मोड में उपयोग
iप्रारंभ स्थिति से चाप या Bézier नियंत्रण बिंदु X ऑफ़सेट
jप्रारंभ स्थिति से चाप या Bézier नियंत्रण बिंदु Y ऑफ़सेट
pअंत स्थिति से दूसरे Bézier नियंत्रण बिंदु X ऑफ़सेट (केवल Bezier Cubic)
qअंत स्थिति से दूसरे Bézier नियंत्रण बिंदु Y ऑफ़सेट (केवल Bezier Cubic)

शक्ति और गति​

प्लेसहोल्डरविवरण
powerपूर्ण लेज़र शक्ति मान (फ़्लोट). फ़ॉर्मेट स्पेसिफ़ायर समर्थन करता है, जैसे, बिना दशमलव के {power:.0f}
speedगति मान (Move To और Jog कमांडों के लिए)
tool_numberटूल/लेज़र हेड नंबर

मशीन और प्रोबिंग​

प्लेसहोल्डरविवरण
axis_letterएकल अक्ष अक्षर, जैसे, "X", "Y", "Z" (Home Axis और Probe के लिए)
p_numWCS P-संख्या (जैसे, G54 के लिए 1)
max_travelअधिकतम प्रोब चालन दूरी (केवल Probe Cycle)
feed_rateप्रोब फ़ीडरेट (केवल Probe Cycle)

Dwell​

प्लेसहोल्डरविवरण
secondsफ़्लोट के रूप में सेकंड में ड्वेल अवधि (जैसे, 1.5)
millisecondsपूर्णांक के रूप में मिलीसेकंड में ड्वेल अवधि (जैसे, 1500)

प्रीएम्बल और पोस्टस्क्रिप्ट​

प्रीएम्बल और पोस्टस्क्रिप्ट स्क्रिप्ट मशीन और वर्तमान जॉब वर्णित करने वाले प्लेसहोल्डरों का एक अलग सेट समर्थन करते हैं:

प्लेसहोल्डरविवरण
machine.nameमशीन का नाम
machine.active_wcsवर्तमान में सक्रिय वर्क निर्देशांक प्रणाली (जैसे, G54)
machine.axis_extents[0]कार्य क्षेत्र चौड़ाई (mm)
machine.axis_extents[1]कार्य क्षेत्र ऊँचाई (mm)
wcs_offset[0] … wcs_offset[2]सक्रिय वर्क निर्देशांक प्रणाली का X/Y/Z ऑफ़सेट
doc.nameनिर्यात हो रहे दस्तावेज़ का नाम
job.extents[0] … job.extents[3]जॉब बाउंडिंग बॉक्स: न्यूनतम X, न्यूनतम Y, अधिकतम X, अधिकतम Y

उदाहरण के लिए, कुछ मशीनें स्वयं जॉब फ़्रेम करती हैं — G-code फ़ाइल ऑफ़लाइन चलाते समय भी — प्रीएम्बल टिप्पणी से जॉब सीमाएँ पढ़कर:

; Bounds: X{job.extents[0]} Y{job.extents[1]} to X{job.extents[2]} Y{job.extents[3]}

सुझाव​

  • फ़ॉर्मेट स्पेसिफ़ायर समर्थित हैं: {power:.0f} शक्ति को पूर्णांक के रूप में फ़ॉर्मेट करता है, {power:.2f} दो दशमलव स्थानों के रूप में.
  • "अपरिवर्तित निर्देशांक छोड़ें" सेटिंग नियंत्रित करती है कि अंतिम कमांड के बाद से अक्ष स्थिति न बदलने पर x_cmd, y_cmd, और z_cmd रिक्त छोड़े जाएँ या नहीं. इससे G-code आकार घटता है.
  • "मोडल फ़ीडरेट" सेटिंग नियंत्रित करती है कि फ़ीडरेट न बदलने पर f_command छोड़ा जाए या नहीं.
  • किसी कमांड को पूरी तरह छोड़ने के लिए टेम्पलेट फ़ील्ड रिक्त छोड़ें (जैसे, bezier_cubic को "" सेट करने से नेटिव Bézier आउटपुट अक्षित हो जाता है और रैखिकीकरण पर लौट आता है).

संबंधित पृष्ठ​