सामग्री पर जाएँ
CADCAMFUN
दस्तावेज़

दस्तावेज़

सीएएम और जी-कोड

टूलपाथ उत्पन्न करें, मशीन प्रोग्राम पोस्ट करें, उत्सर्जित एनसी को दोबारा चलाएं और प्रत्येक परिणाम से जुड़े साक्ष्य का निरीक्षण करें।

अंग्रेज़ी से स्वचालित रूप से अनुवादित। अंग्रेज़ी मूल देखें

ज्यामिति से एक प्रोग्राम तक

@cadcamfun/core के अंतर्गत विनिर्माण कार्यक्षमता को उजागर करता है cam. ऑपरेशन जनरेटर ज्यामिति और मशीनिंग मापदंडों को टूलपाथ चाल में बदल देते हैं। पोस्ट मशीन-न्यूट्रल प्रोग्राम को कंट्रोलर टेक्स्ट में बदल देते हैं। जनरेटर एडाप्टर एप्लिकेशन फॉर्म द्वारा उपयोग किए जाने वाले मिल, लेथ और 3डी-प्रिंटर अनुरोधों का भी समर्थन करता है।

मूल विनिर्माण कर्नेल एक ऑर्डर की गई पाइपलाइन जोड़ता है: भाग और संसाधन तैयार करें, संचालन की योजना बनाएं या स्वीकार करें, कटिंग डेटा की गणना करें, गति उत्पन्न करें, एक एनसी प्रोग्राम उत्सर्जित करें, उस एनसी को स्वतंत्र रूप से दोबारा चलाएं, और साक्ष्य संलग्न करें। जेनरेट किया गया टेक्स्ट, एक पार्स किया गया प्रोग्राम और एक सत्यापित विनिर्माण आर्टिफैक्ट अलग-अलग गारंटी के साथ अलग-अलग आउटपुट हैं।

किसी मौजूदा प्रोग्राम को उत्सर्जित करें
import { cam } from "@cadcamfun/core"

const post = cam.getPost("fanuc")
if (post === undefined) throw new Error("Post is unavailable")
const nc = post.emit(program, { decimals: 3, tolerance: 0.01 })

टूलपाथ प्रतिनिधित्व

एक प्रोग्राम में ऑर्डर किए गए टूलपाथ होते हैं, प्रत्येक एक टूल पहचानकर्ता और चाल सूची से जुड़ा होता है। निर्देशांक मिलीमीटर हैं, कटिंग फ़ीड मिलीमीटर प्रति मिनट हैं, और अवधि सेकंड हैं। पारंपरिक ऑपरेशन निर्देशांक में स्टॉक टॉप के सापेक्ष काटने की गहराई नकारात्मक Z है। डोमेन कन्वेंशन को बदले बिना पोस्ट आउटपुट इकाइयों को परिवर्तित करते हैं।

चालें हैं Rapid, Linear, Arc, Dwell, Comment, Cycle, और Orient. चाप केंद्र पूर्ण XY निर्देशांक हैं; एक पोस्ट नियंत्रक-सापेक्ष I/J ऑफसेट की गणना करता है। आरंभ और अंत का मिलान XY निर्देशांक एक पूर्ण वृत्त को दर्शाता है। एक चक्र अपने रिट्रेक्ट प्लेन और फीड के साथ ड्रिल, ड्वेल, पेक या चिप-ब्रेक का इरादा रखता है।

रैखिक और तीव्र गति पर रोटरी क्षेत्र एक साथ अक्ष गति को व्यक्त करते हैं; Orient अनुक्रमित स्थिति को व्यक्त करता है। ये कोणीय क्षेत्र डिग्री का उपयोग करते हैं। एक बोली जो रोटरी गति का समर्थन नहीं कर सकती, वह अपने रोटरी फ़ील्ड को त्यागने के बजाय ऐसे प्रोग्राम को अस्वीकार कर देती है।

संचालन और जनरेटर एपीआई

ऑपरेशन लाइब्रेरी में प्रोफाइल, पॉकेट, ड्रिलिंग, फेसिंग, उत्कीर्णन, सतह मशीनिंग, रेस्ट मशीनिंग, थ्रेडिंग, चैम्फरिंग, एडाप्टिव मशीनिंग और मल्टीएक्सिस जेनरेशन शामिल हैं। प्रत्येक ऑपरेशन अपने पैरामीटर अनुबंध और शुद्ध पीढ़ी फ़ंक्शन को उजागर करता है। उपकरण आयाम, गहराई सीमा, निकासी, फ़ीड और ज्यामिति को ऑपरेशन के सत्यापन नियमों को पूरा करना होगा।

POST /api/toolpaths/generate जेनरेटर सेटिंग्स, ज्योमेट्री और प्रिंटर एक्स्ट्रा स्वीकार करता है और लौटाता है gcode, cycles, warnings, stats, program, और सामान्यतः पीढ़ी साक्ष्य। एक वैध अनुरोध जो प्रोग्राम उत्पन्न नहीं कर सकता, कारण के साथ 400 लौटाता है; एक अप्रत्याशित संगणना विफलता 500 हो जाती है। जनरेशन टूलपाथ को सहेजता नहीं है.

/api/toolpaths/suggest तत्व-संचालित पैरामीटर, फीडबैक, कटिंग आँकड़े, ऑपरेशन टेक्स्ट और चेतावनियाँ प्राप्त करता है। /api/toolpaths/parse प्रोग्राम चालों और आंकड़ों में आपूर्ति किए गए जी-कोड की व्याख्या करता है। सुझाव और विश्लेषण यह स्थापित नहीं करते कि कोई प्रोग्राम सुरक्षित या ज्यामितीय रूप से सही है।

नियंत्रक बोलियाँ

अंतर्निहित रजिस्ट्री कार्यान्वित होती है generic, fanuc, grbl, और haas. linuxcnc इस रजिस्ट्री में कार्यान्वयन के बिना एक मान्यता प्राप्त पोस्ट पहचानकर्ता है; getPost अपरिभाषित लौट सकता है. कॉल करने से पहले पोस्ट को हल करें और जांचें।

पोस्ट निश्चित-दशमलव स्वरूपण, टिप्पणी स्वच्छता, उपकरण परिवर्तन, आर्क हैंडलिंग, वैकल्पिक लाइन नंबरिंग और चक्र विस्तार के साथ एक एमिटर साझा करते हैं। डिफ़ॉल्ट तीन दशमलव स्थान हैं, डिब्बाबंद चक्र सक्षम, IJK आर्क, हेडर सक्षम, और 0.01 मिमी सहनशीलता। असमर्थित चाप प्रारूप बोली के समर्थित रूपों और रैखिककरण के माध्यम से वापस आ जाते हैं।

toolNumbers उपकरण पहचानकर्ताओं को स्पष्ट सकारात्मक पूर्णांक पॉकेट में मैप करता है। अनमैप्ड टूल कब्जे वाले नंबरों से बचते हुए प्रथम-उपयोग नंबरिंग का उपयोग करते हैं। retractBeforeToolChange ऑप्ट-इन है; यह टूल परिवर्तन से पहले Z को प्रोग्राम की उच्चतम पहुंच वाली स्थिति तक बढ़ा देता है। उपप्रोग्राम उत्सर्जन भी ऑप्ट-इन है और बोली समर्थन पर निर्भर करता है। उत्पादन उपयोग से पहले चयनित नियंत्रक के आउटपुट और मशीन कॉन्फ़िगरेशन की समीक्षा करें।

बार-बार टूलपाथ को उपप्रोग्राम के रूप में उत्सर्जित किया जा सकता है। एक टूलपाथ तब योग्य होता है, जब उसकी पोजिशनिंग चाल के बाद, उसकी गति एक अन्य टूलपाथ की गति होती है, जो समान चाल प्रकार, फ़ीड और आर्क सेंस के साथ 5 × 10⁻⁶ मिमी के भीतर अनुवादित होती है। प्रत्येक समूह को कम से कम छह शारीरिक चालों की आवश्यकता होती है और कुल मिलाकर कम से कम बारह चालें बचानी होंगी। डिब्बाबंद चक्र या रोटरी शब्दों वाले टूलपाथ कभी भी उम्मीदवार नहीं होते हैं (packages/core/src/cam/post/subprograms.ts).

मूल विनिर्माण और रिलीज़ स्तर

POST /api/toolpaths/manufacture स्वीकार CamKernelRequest, पहचान, सामग्री, वैकल्पिक मशीन, स्टॉक, उपकरण, संचालन, गुणवत्ता नियंत्रण और कार्य ऑफसेट के साथ एक संस्करण 1 सीएडी स्नैपशॉट। छूटे हुए ऑपरेशन योजनाकार को बुलाते हैं; गुम उपकरण डिफ़ॉल्ट कटर पालना का उपयोग करते हैं। असमर्थित इनपुट, अज्ञात सामग्री या उपकरण, खाली भाग ज्यामिति, अमान्य स्टॉक, और अनियोजित कार्य स्पष्ट समस्याएं लौटाते हैं।

कर्नेल प्रति-ऑपरेशन फ़ीड, स्पिंडल गति, जुड़ाव, शक्ति और बल अनुमान, चेतावनियाँ, समय और हटाए गए वॉल्यूम की गणना करता है। यह एक प्रोग्राम पोस्ट करता है और स्वतंत्र रूप से इसके उत्सर्जित एनसी की व्याख्या करता है। आर्टिफैक्ट प्रोग्राम, कटर, एनसी टेक्स्ट, स्टॉक आँकड़े, ऑपरेशन परिणाम, पहचान डाइजेस्ट, दावे और मुद्दों को बरकरार रखता है।

release है blocked, preview, या verified-program. कठिन विफलताएं या खाली एनसी ब्लॉक रिलीज़। सत्यापन के लिए प्रासंगिक दावों को पारित करना आवश्यक है; वर्तमान रिलीज़ नियम प्रोग्राम को सत्यापित चिह्नित करते हुए असमर्थित मशीन-यात्रा साक्ष्य की अनुमति देता है। यह तय करने से पहले कि साक्ष्य इच्छित मशीन को कवर करता है या नहीं, असमर्थित और अनसुलझे स्थितियों सहित प्रत्येक दावे का निरीक्षण करें।

दावों में कटिंग डेटा, मशीन सीमा, पूर्ण संचालन, तेजी से निकासी, धारक निकासी, गॉजिंग, सामग्री हटाना, एनसी रीप्ले, मशीन यात्रा और मशीन क्लीयरेंस शामिल हैं। साक्ष्य कलाकृतियों की एनसी और स्रोत पहचान से जुड़ा हुआ है। एनसी को संपादित करना या स्रोत सेटअप को बदलना उस कनेक्शन को अमान्य कर देता है जब तक कि कार्य का दोबारा मूल्यांकन नहीं किया जाता है।

रीप्ले सत्यापन और इसकी सीमाएँ

POST /api/toolpaths/verify अक्ष-संरेखित स्टॉक के विरुद्ध या तो जी-कोड या प्रोग्राम को दोबारा चलाता है। बिल्कुल एक गति स्रोत, एक उपकरण और स्टॉक सीमा की आपूर्ति करें। वैकल्पिक फिक्स्चर अक्ष-संरेखित लिफाफे हैं; वैकल्पिक लक्ष्य ठोस या जाल गॉज और शेष-स्टॉक तुलना को सक्षम करते हैं। बांसुरी, शैंक, स्टिकआउट, या धारक के आयाम गुम होने से संबंधित जांचें अधूरी रह जाती हैं।

सत्यापनकर्ता ऊँचाई फ़ील्ड में गति का नमूना देता है और समस्याएँ, निष्कासन आँकड़े, सहभागिता/एयर-कट लंबाई और एक प्रदर्शन पूर्वावलोकन लौटाता है। डिफ़ॉल्ट सहनशीलता 0.05 मिमी है। कटर व्यास से रिज़ॉल्यूशन में चूक होती है और गणना बजट में फिट होने के लिए इसे मोटा किया जा सकता है; ResolutionCoarsened रिपोर्टें जो बदलती हैं। ग्रिड रिज़ॉल्यूशन उन ज्यामितीय साक्ष्यों को सीमित करता है जिनका परिणाम समर्थन कर सकता है।

के साथ एक परिणाम ok: true कोई त्रुटि-गंभीरता समस्या नहीं है. लक्ष्य के बिना यह पूर्ण-भाग सटीकता स्थापित नहीं कर सकता; फिक्स्चर या धारक ज्यामिति के बिना यह उनकी निकासी स्थापित नहीं कर सकता है। कर्नेल का एकीकृत रीप्ले और मशीन जांच इसके कैप्चर किए गए कार्य के लिए विशिष्ट साक्ष्य जोड़ते हैं, जबकि स्टैंडअलोन सत्यापन केवल इसके आपूर्ति किए गए अनुरोध को दर्शाता है।

कार्यान्वयन मानचित्र

cam/ir.ts चाल और कार्यक्रम अनुबंधों का मालिक है; operations/ रणनीति जनरेटर का मालिक है; post/ नियंत्रक उत्सर्जन का मालिक है; generator/ एप्लिकेशन सेटिंग्स को अनुकूलित करता है और टेक्स्ट को पार्स करता है; model/ भाग ज्यामिति बनाता है; verify/ ऊंचाई-क्षेत्र रीप्ले का मालिक है; kernel/ विनिर्माण ऑर्केस्ट्रेशन और साक्ष्य का मालिक है। setup.ts और indexing.ts आपूर्ति कार्य-फ़्रेम सत्यापन और अनुक्रमित तालिका परिवर्तन।

दस्तावेज़ों को सहेजना, ड्राइंग एक्सेस की जाँच करना और स्रोत साक्ष्य को बनाए रखना साइडकार सेवाओं से संबंधित है। देखना setups के पोर्टेबल संचालन दस्तावेजों और दृढ़ता जांच के लिए।

गहराई, ऊँचाई, फ़ीड और डिफ़ॉल्ट

कोर ऑपरेशन पैरामीटर सकारात्मक कट गहराई को पूर्ण Z विमानों से अलग करते हैं। totalDepth और stepdown आवश्यक सकारात्मक परिमित लंबाई हैं; 5 मिमी स्टेपडाउन के साथ 2 मिमी की गहराई शीर्ष से नीचे 2, 4, और 5 मिमी पर पास उत्पन्न करती है। डिफ़ॉल्ट केवल तभी लागू होते हैं जब कोई फ़ील्ड गायब हो, इसलिए स्पष्ट रूप से अनुमत शून्य बरकरार रखा जाता है।

मैदानडिफ़ॉल्ट/इकाईअर्थ
clearanceHeight10 मिमीस्पष्ट तीव्र स्थिति निर्धारण के लिए विमान का उपयोग किया जाता है।
safeHeight5 मिमीऑपरेशन फ़ीड प्रविष्टि/निकास ऊंचाई।
retractHeight2 मिमीदर्रों के बीच पार्किंग की ऊंचाई; शून्य मान्य हो सकता है.
feed / plungeFeed800 / 300 मिमी/मिनटसकारात्मक कटिंग और प्लंज फ़ीड।
spindleRpm / coolant10,000 / offऑपरेशन-स्तरीय स्पिंडल और कूलेंट इरादा।

ऊंचाई को क्लीयरेंस को पूरा करना चाहिए ≥ सुरक्षित ≥ वापस लेना चाहिए। प्रोफ़ाइल डिफ़ॉल्ट बाहरी मुआवजा, चढ़ाई दिशा, शून्य परिष्करण भत्ता, प्रत्यक्ष लीड-इन, आर्क फिटिंग ऑफ और 0.01 मिमी सहनशीलता हैं। रैंप कोण डिफ़ॉल्ट रूप से 3° होता है और 0.1–45° स्वीकार करता है; हेलिक्स पिच डिफ़ॉल्ट रूप से 1 मिमी प्रति क्रांति है। घोषित पक्ष और भत्ता स्रोत रूपरेखा को बदलने के बजाय टूल-सेंटर पथ को स्थानांतरित करते हैं।

ये शुद्ध ऑपरेशन डिफ़ॉल्ट हैं. एप्लिकेशन जनरेटर की सेटिंग्स और मूल कर्नेल की सामग्री-व्युत्पन्न प्रक्रिया डेटा अलग-अलग पैरामीटर परतें हैं; उनमें समान फ़ील्ड नाम या डिफ़ॉल्ट न मानें।

स्रोत: packages/core/src/cam/params.ts और operations/profile.ts.

थ्रेड मिलिंग ISO 68-1 मूल प्रोफ़ाइल ऊंचाई का उपयोग करती है: 0.54127 × आंतरिक धागों के लिए पिच और 0.61343 × बाहरी धागों के लिए पिच (packages/core/src/cam/operations/thread.ts). टूलपाथ व्यूअर बिना फ़ीड के कटिंग मूव्स के लिए 500 मिमी/मिनट और एनीमेशन का समय निर्धारण करते समय रैपिड्स के लिए 1,000 मिमी/मिनट मानता है; ये प्लेबैक अनुमान हैं, मशीन अनुमान नहीं।

एक छोटा एनसी प्रोग्राम दोबारा चलाएं

यह इन-मेमोरी उदाहरण एक 4 मिमी-चौड़े सीधे स्लॉट 3 मिमी को एक 40 × 40 × 10 मिमी स्टॉक मॉडल के माध्यम से काटता है। यह टूलपाथ को सहेजे बिना HTTP एंडपॉइंट द्वारा उपयोग किए जाने वाले समान कोर सत्यापनकर्ता का उपयोग करता है।

स्टॉक हटाने और टकराव का निरीक्षण करें
import { cam } from "@cadcamfun/core"

const report = cam.verify.verifyToolpath({
  gcode: "G21\nG90\nG0 X-10 Y0 Z5\nG0 Z0\nG1 Z-3 F200\nG1 X10 F400\nG0 Z5\nM30",
  stock: { minX: -20, maxX: 20, minY: -20, maxY: 20, minZ: -10, maxZ: 0 },
  tool: { kind: "endmill", diameter: 4 },
  fixtures: [], tolerance: 0.05, resolution: 0.25
})
console.log(report.ok) // true for this stock/tool model
console.log(report.stats.removedVolume)
console.log(report.issues)

डुबकी को बदलना G0 Z-3 एक पैदा करता है RapidInMaterial ढूँढना. छोटी कटिंग लंबाई या धारक आयाम जोड़ने से शैंक/धारक निष्कर्ष सामने आ सकते हैं जिनका मूल अनुरोध परीक्षण नहीं किया जा सका। लक्ष्य ज्यामिति की आपूर्ति समाप्त-भाग की तुलना जोड़ती है; यह उदाहरण किसी लक्ष्य या फिक्स्चर के बारे में कोई दावा नहीं करता है।

सत्यापनकर्ता अधिकतम 2,500,000 ग्रिड सेल और 3,000,000 पथ नमूनों का बजट रखता है, तथा 80,000,000 कार्य बजट रखता है। उन सीमाओं के लिए अनुरोधों को मोटा किया जा सकता है। पूर्वावलोकन स्टॉक प्रदर्शन के लिए डाउनसैंपल होता है, इसलिए उसके पिक्सेल दूसरा, अधिक सूक्ष्म सत्यापन परिणाम नहीं हैं।

स्रोत: packages/core/src/cam/verify/verify.ts और verify/verify.test.ts.

उपप्रोग्राम को कॉल करने वाले पाठ को दोबारा चलाने पर, दुभाषिया अनुसरण करता है M98 आठ स्तरों तक गहराई तक घोंसला बनाना और 2,000,000 लाइनों पर अनियंत्रित होना बंद हो जाता है, इसलिए एक बड़ी दोहराव गणना मेमोरी को समाप्त नहीं कर सकती है (packages/core/src/cam/subprogram-text.ts).

एक असफल या पूर्वावलोकन आर्टिफैक्ट पढ़ें

कर्नेल समस्या में शामिल है a tag, severity, stage, message, and optional operation ID, NC line, and point. Follow that stage to the input that caused it: preparation checks stock/material/tools; planning selects strategies; cutting-data checks process limits; generation creates motion; posting writes the controller format; replay/evidence checks the resulting bytes.

  • NoSuitableTool या UnknownTool: व्यास, बांसुरी की लंबाई, स्टिकआउट और आपूर्ति की गई कटर लाइब्रेरी सहित चयनित कटर आईडी और ज्यामिति सीमाओं का निरीक्षण करें।
  • RapidInStock या HolderCollision: रिपोर्ट किए गए ऑपरेशन/बिंदु का पता लगाएं और प्रविष्टि, रिट्रैक्ट्स, स्टॉक और होल्डर/टेबल क्लीयरेंस का निरीक्षण करें। कटिंग फ़ीड बढ़ाने से असुरक्षित रैपिड की मरम्मत नहीं होती है।
  • Gouge: समोच्च पक्ष, ऊपर/नीचे स्तर, परिष्करण भत्ता और लक्ष्य ज्यामिति की जांच करें। कर्नेल वास्तविक रीप्ले विफलता के रूप में बाहरी भाग की आंतरिक प्रोफ़ाइल का परीक्षण करता है।
  • RemainingStock: शेष वॉल्यूम की व्याख्या करने से पहले दुर्गम कोनों, टूल त्रिज्या, फिनिश रणनीति और सत्यापन रिज़ॉल्यूशन का निरीक्षण करें।
  • ReplayMismatch: पोस्ट की गई गति और उसके दावा किए गए आईआर को असंगत मानें और कैप्चर किए गए कार्य से पुन: उत्पन्न करें।

मशीन प्रीसेट विशिष्ट वर्गों का प्रतिनिधित्व करते हैं, मापी गई मशीनों का नहीं। उपलब्ध स्नैपशॉट प्रीसेट आईडी हैं vmc-standard, haas-vf2, hsc-mill, desktop-mill, और cnc-router. पहला डिफ़ॉल्ट है. प्रीसेट के प्रदर्शन नाम से अनुमान लगाने के बजाय वास्तविक मशीन यात्रा और निकासी साक्ष्य का निरीक्षण करें।

स्रोत: packages/core/src/cam/kernel/execute.ts, machines.ts, और kernel.test.ts; तार मुद्दा फ़ील्ड में हैं packages/api/src/cam-kernel.ts.

एक पॉकेट बनाएं और उसे पोस्ट करें

सीएएम परत शुद्ध कार्यों की एक पाइपलाइन है: ज्यामिति और पैरामीटर एक ऑपरेशन में जाते हैं, ऑपरेशन रिटर्न देता है Toolpath मध्यवर्ती-प्रतिनिधित्व (आईआर) चालें, ए Program टूलपाथ को समूहित करता है, और एक पोस्ट प्रोसेसर प्रोग्राम को बोली-विशिष्ट टेक्स्ट में बदल देता है। पोस्ट से पहले जी-कोड शब्दों के बारे में कुछ भी नहीं पता था, इसलिए वही टूलपाथ जीआरबीएल, फैनुक, हास या सामान्य बोली के लिए उत्सर्जित किया जा सकता है।

पॉकेट.टीएस - पूर्ण, बन के साथ चलाने योग्य
import { cam } from "@cadcamfun/core"

const tool = { id: "t6", name: "6 mm flat end mill", kind: "endmill",
               diameter: 6, flutes: 3, maxRpm: 18000 }
// 60 × 40 × 10 mm block; its top face is at origin.z (Z = 0)
const stock = { x: 60, y: 40, z: 10, origin: { x: 0, y: 0, z: 0 },
                material: "aluminium-6061" }

const params = new cam.PocketParams({
  name: "Pocket 30x20",
  totalDepth: 3,   // mm below the stock top
  stepdown: 1.5,   // two levels: -1.5 and -3.0
  entry: "ramp",   // default is "helix"
})

const ring = [{ x: 15, y: 10 }, { x: 45, y: 10 }, { x: 45, y: 30 }, { x: 15, y: 30 }]
const pocket = cam.generatePocket(params, ring, tool, stock)

const program = { name: "pocket-demo", units: "mm", workOffset: "G54",
                  toolpaths: [pocket] }
const gcode = cam.getPost("grbl")!.emit(program)
console.log(gcode)
पॉकेट टूलपाथ: 30 × 20 मिमी, 3 मिमी गहरा, Ø6 एंड मिल कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
The moves generated by the example below, drawn in machine coordinates. Dashed amber lines are rapids (G0); green lines are feed moves (G1). Watch the ramp entry spiral down at the start of each 1.5 mm level, then the offset rings work outward (order insideOut). The translucent block is the 60 × 40 × 10 mm stock, whose top face is Z = 0.
आउटपुट (जीआरबीएल, 85 लाइनें, मध्य एलिडेड)
(PROGRAM: pocket-demo)
(UNITS: MM)
(WORK OFFSET: G54)
(OP 1: Pocket 30x20 | T1 [t6] | S10000 | F300-800)
G21 G90 G17 G94
G54
(OPERATION: Pocket 30x20)
(TOOL T1)
M3 S10000
(Pocket: Pocket 30x20)
G0 X30.000 Y21.000 Z10.000
Z5.000
Z2.000
Z1.000
G1 X36.000 Z0.732 F300
Y19.000 Z0.643
X24.000 Z0.107
Y21.000 Z0.018
X30.000 Z-0.250
X36.000 Z-0.518
Y19.000 Z-0.607
X24.000 Z-1.143
Y21.000 Z-1.232
X30.000 Z-1.500
...
(the second level repeats the ramp from Z-1.500 to Z-3.000)
...
X18.000
Y27.000
G0 Z2.000
Z10.000
M5
M2

शीर्ष से आउटपुट पढ़ना: हेडर टिप्पणियाँ प्रोग्राम, इकाइयों, कार्य ऑफ़सेट और प्रति-ऑपरेशन सारांश (टूल नंबर, आईडी, स्पिंडल गति और फ़ीड रेंज) को सूचीबद्ध करती हैं। G21 G90 G17 G94 मिलीमीटर, पूर्ण निर्देशांक, XY विमान और प्रति मिनट फ़ीड का चयन करता है। जीआरबीएल के पास कोई टूल चेंजर नहीं है, इसलिए पहले टूल की घोषणा एक टिप्पणी के रूप में की जाती है और बाद में टूल में बदलाव किए जाते हैं (CHANGE TO TOOL Tn) के बाद M0. The pocket starts with rapids down through clearance (10), safe (5), and retract (2) heights, then ramps at the 300 mm/min plunge feed. Once the ramp reaches depth it switches to the 800 mm/min cutting feed. The program ends with M5 (स्पिंडल स्टॉप) और M2.

खाली ज्यामिति की सूचना दी जाती है, चुपचाप छोड़ी नहीं जाती

यदि क्षेत्र एक बंद सीमा नहीं है, तो ऑपरेशन टिप्पणी उत्सर्जित करता है (nothing to cut: no closed boundary) और कोई गति नहीं. रिंग पॉइंट को इस रूप में पास करें { x, y } वस्तुएं. जब कोई ऑपरेशन कोई कटौती नहीं करता है तो उस टिप्पणी के लिए जेनरेट किए गए प्रोग्राम खोजें।

ऑपरेशन पैरामीटर और डिफ़ॉल्ट

प्रत्येक ऑपरेशन का पैरामीटर वर्ग समान सामान्य फ़ील्ड का विस्तार करता है। ऊँचाई पूर्ण Z मान हैं और उन्हें क्लीयरेंस को संतुष्ट करना चाहिए ≥ सुरक्षित ≥ वापस लेना; स्कीमा किसी अन्य चीज़ को अस्वीकार करती है. गहराई स्टॉक शीर्ष के नीचे सकारात्मक दूरी है; अंतिम पास को क्लिप किया गया है totalDepth.

सामान्य क्षेत्रगलती करनाअर्थ
id, nameoperation, Operationटिप्पणियों और सारांशों में दिखाई गई पहचान।
clearanceHeight10संचालन के बीच चाल के लिए ऊंचाई.
safeHeight5क्षेत्रों के बीच चाल के लिए ऊंचाई.
retractHeight2डुबकी लगाने/खिलाने से पहले ऊँचाई।
totalDepthआवश्यकस्टॉक टॉप के नीचे सकारात्मक गहराई।
stepdownआवश्यकप्रति पास सकारात्मक गहराई.
feed800फ़ीड काटना, मिमी/मिनट।
plungeFeed300प्लंजिंग और रैंपिंग के लिए फ़ीड, मिमी/मिनट।
spindleRpm10000स्पिंडल गति.
coolantoffशीतलक मोड.
संचालनविशिष्ट फ़ील्ड (डिफ़ॉल्ट)
Pocketstepover 40 (व्यास का %, 1–100), allowance 0, finishPass असत्य, climb सत्य, entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= उपकरण त्रिज्या), rampAngle 3° (0.1–45), tolerance 0.01, toolCentre असत्य।
Profileside outside | inside | onLine, climb सत्य, allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (प्रत्येक टैब: position पथ के साथ 0–1, width, height), arcFit असत्य, tolerance 0.01.
Drillनहीं stepdown या feed. peck 0 (एक स्ट्रोक), chipBreak असत्य, dwell 0 एस. पेक चक्र अंतिम गहराई से ऊपर 0.5 मिमी क्लीयरेंस रखते हैं, और चिप-ब्रेक रिट्रेक्ट्स 0.5 मिमी होते हैं।
Facestepover 60, overshoot 0 (= उपकरण त्रिज्या + 1 मिमी), alongX सत्य, tolerance 0.01.
Engravetolerance 0.01.
Threadधागा मिलिंग; प्रोफ़ाइल की गहराई 0.54127 × पिच आंतरिक और 0.61343 × पिच बाहरी.
Adaptive, आराम, सतह, कक्ष, बहु-अक्षआगे की रणनीतियाँ उसी मॉड्यूल से निर्यात की गईं; चम्फर जोड़ता है tipOffset 0.2 और lead 1.

के साथ पैरामीटर बनाएं new cam.PocketParams({ ... }) (या मिलान वर्ग) ताकि डिफ़ॉल्ट लागू हो और बाधाओं को एक बार जांचा जा सके। प्रत्येक ऑपरेशन को एक जोड़ी के रूप में भी निर्यात किया जाता है, जैसे cam.Pocket = { Params, generate }, उस कोड के लिए जो ऑपरेशन प्रकार द्वारा भेजा जाता है।

पोस्ट प्रोसेसर और आउटपुट विकल्प

पोस्ट आईडी द्वारा पंजीकृत हैं cam.posts और ऊपर देखा cam.getPost(id). linuxcnc आईडी आरक्षित है लेकिन लागू नहीं है, इसलिए getPost("linuxcnc") रिटर्न undefined. कॉल करने से पहले इसकी जांच कर लें emit.

डाकडिब्बाबंद साइकिलेंनिवास इकाईरोटरी कुल्हाड़ियाँउपकरण परिवर्तनप्रोग्राम फ़्रेम
genericहाँसेकंडहाँTn M6कोई नहीं
grblनहीं (चालों तक विस्तारित)सेकंडअस्वीकार करनाफिर टिप्पणी करें M0 विरामकोई नहीं
fanucहाँमिलीसेकंडहाँTn M6 + G43 Hn% / O####, उपप्रोग्राम
haasहाँमिलीसेकंडहाँ, G234 टीसीपीTn M6 + G43 Hn% / O####, उपप्रोग्राम

चारों चाप को इस रूप में स्वीकार करते हैं ijk या radius; linearize सदैव संभव है. एक प्रोग्राम जिसकी चाल में रोटरी कोण होते हैं, उसे चुपचाप कोण खोने के बजाय जीआरबीएल द्वारा अस्वीकार कर दिया जाता है।

उत्सर्जन विकल्पगलती करनाEffect
decimals3दशमलव बिंदु के बाद के अंक.
lineNumbersबंद{ start, step } उदाहरण के लिए, एन-शब्द लिखता है N10, N20.
useCannedCyclestrueड्रिलिंग चक्रों का उत्सर्जन करें जहां बोली में वे हैं।
arcModeijkijk, radius, या linearize.
headertrueवर्णनात्मक टिप्पणी शीर्षलेख लिखें.
tolerance0.01जब चापों को रेखीयकृत किया जाता है तो तार सहनशीलता।
toolNumbersप्रथम-उपयोग आदेशकैरोसेल पॉकेट में टूल आईडी का मानचित्र। लुप्त प्रविष्टियाँ स्पष्ट जेबों से टकराए बिना प्रथम-उपयोग क्रमांकन बनाए रखती हैं।
retractBeforeToolChangeबंदउपकरण परिवर्तन से पहले Z को उच्चतम बिंदु तक उठाएं।
stampअनुपस्थितशीर्षलेख मोहर. नियतात्मक आउटपुट के लिए इसे छोड़ दें।
subprogramsबंदवृद्धिशील उपप्रोग्राम (फैनुक और हास) के रूप में एक बार दोहराया, अनुवादित टूलपाथ लिखें।
लाइन नंबरों के साथ फैनुक नियंत्रण के लिए समान कार्यक्रम
const text = cam.getPost("fanuc")!.emit(program, { lineNumbers: { start: 10, step: 10 } })
// %
// O1000
// (PROGRAM: POCKET-DEMO)          comments are upper-cased
// ...
// N10 G21 G90 G17 G94 G40 G49 G80
// N20 G54
// N30 T1 M6
// N40 G43 H1
// N50 M3 S10000

डिफ़ॉल्ट रूप से बाइट-समान

आउटपुट बदलने वाले विकल्प (टूल-चेंज रिट्रेक्ट, सबप्रोग्राम, स्टैम्प) डिफ़ॉल्ट रूप से बंद होते हैं, इसलिए संग्रहीत अनुरोध को पुनर्जीवित करने से समान टेक्स्ट उत्पन्न होता है। cam/gcode पुराने प्रोग्रामों का पता लगाने के लिए वर्कफ़्लो चरण इस पर निर्भर करता है।

किसी मशीन पर प्रोग्राम भेजने से पहले

  1. स्टॉक की पुष्टि करें: आकार, इसके न्यूनतम कोने की उत्पत्ति, और इसका शीर्ष चेहरा किस स्थान पर है origin.z. हर गहराई नापी जाती है उस चेहरे से.
  2. फिक्स्चर के विरुद्ध ऊंचाई की जांच करें। कार्य ऑफसेट में क्लीयरेंस, सेफ और रिट्रेक्ट ऊंचाई पूर्ण Z मान हैं।
  3. वास्तविक नियंत्रक के लिए पोस्ट चुनें और पुष्टि करें कि यह लागू है (getPost एक पोस्ट लौटा दी)।
  4. सत्यापन के साथ कार्यक्रम को दोबारा चलाएं और प्रत्येक अंक को पढ़ें। किसी त्रुटि टिप्पणी की अनुपस्थिति को प्रमाण न मानें।
  5. यदि एनसी पाठ को हाथ से संपादित किया गया था, तो पुन: उत्पन्न करें या पुनः सत्यापित करें। मूल पाठ के लिए गणना किए गए साक्ष्य अब लागू नहीं होते हैं।
  6. फीड ओवरराइड को कम करके मशीन के ऊपर वाले हिस्से को ड्राई-रन करें, जैसा कि आप किसी भी नए प्रोग्राम के लिए करते हैं।

जेनरेट किया गया कोड मशीन की गारंटी नहीं है

कर्नेल और पोस्ट ज्यामिति, सीमाओं और बोली नियमों की जाँच करते हैं जिनके बारे में वे जानते हैं। वे आपके फिक्स्चर, उपकरण की लंबाई या मशीन की स्थिति नहीं जानते हैं। एक सत्यापित कार्यक्रम साक्ष्य है, सुरक्षित कटौती की गारंटी नहीं।

मूल कर्नेल साक्ष्य का दावा

ऊपर दिखाए गए जेनरेटर के अलावा, मूल कर्नेल दस दावों के साथ एक आर्टिफैक्ट लौटाता है। प्रत्येक है passed, failed, unsupported या unresolved, एक विस्तृत स्ट्रिंग के साथ। रिलीज़ स्तर उनका सारांश प्रस्तुत करता है: blocked, preview या verified-program.

दावाउदाहरण स्थितिविवरण कर्नेल द्वारा लौटाया गया
cutting-dataउत्तीर्णप्रत्येक ऑपरेशन एसिटल पीओएम-सी (डेल्रिन) और उसके कटर के लिए गणना किए गए डेटा को काटने पर चलता है
machine-limitsउत्तीर्णसीमा के भीतर स्पिंडल गति, फ़ीड, पावर, टॉर्क और कटर विक्षेपण
operations-completeउत्तीर्ण3 संचालन उत्पन्न हुआ; प्रत्येक नियोजित सुविधा का एक संचालन होता है
no-rapid-in-stockउत्तीर्णजैसा कि पुनः दोहराया गया, कोई भी तेज़ चाल स्टॉक को नहीं छूती
holder-clearanceउत्तीर्णशैंक और धारक स्टॉक से दूर रहते हैं (3-अक्ष ऊंचाई-क्षेत्र रीप्ले)
no-gougeउत्तीर्ण0 से आगे के भाग के नीचे कोई कट नहीं। 030 मिमी (पार्श्व स्लैक की एक कोशिका)
material-removedउत्तीर्णदोबारा चलाया गया स्टॉक 0.110 मिमी के भीतर के हिस्से से मेल खाता है
nc-replayउत्तीर्णपोस्ट से स्वतंत्र 3035 NC गतियों की व्याख्या; सीमाएँ 2.0e-3 mm के भीतर मेल खाती हैं
machine-travelअसमर्थितमशीन में कोई यात्रा सीमा कॉन्फ़िगर नहीं है
machine-clearanceउत्तीर्ण3035 चालों की जाँच की गई; होल्डर और शैंक टेबल से कम से कम 6.500 मिमी दूर रहें

पंक्तियाँ मूल विनिर्माण मार्गदर्शिका में POM रिक्त के लिए वास्तविक परिणाम हैं: 3 संचालन, 3071 NC लाइनें, रिलीज़ verified-program. कलाकृतियों की मशीन पोस्ट भी हो सकती है linuxcnc स्कीमा में, लेकिन कोई LinuxCNC पोस्ट लागू नहीं है, इसलिए प्रीसेट इसका उपयोग नहीं करते हैं।