दस्तावेज़
सीएएम मशीनिंग कर्नेल
विनिर्माण कार्य से लेकर एनसी और साक्ष्य तक: योजना, कटर, शेष-मात्रा ब्रैकेट के साथ वोक्सेल स्टॉक, और प्रमाणित टक्कर जांच।
अंग्रेज़ी से स्वचालित रूप से अनुवादित। अंग्रेज़ी मूल देखें
CAM कर्नेल क्या है
सीएएम कर्नेल में packages/core/src/cam/kernel (20 स्रोत फ़ाइलें, लगभग 5 260 लाइनें) मशीन एनसी के लिए एक संशोधित विनिर्माण कार्य के साथ-साथ उस एनसी के बारे में सबूत भी लेती हैं। यह कटर और कटिंग डेटा चुनता है, सीएडी सुविधाओं से संचालन की योजना बनाता है, रणनीतियों को चलाता है, जी-कोड पोस्ट करता है, वॉल्यूमेट्रिक स्टॉक के खिलाफ एनसी को स्वतंत्र रूप से दोहराता है, और टकराव के लिए टूल असेंबली की गति की जांच करता है। इसकी एल्गोरिदम पहचान है cadcamfun-cam-kernel@1.
| मॉड्यूल | भूमिका |
|---|---|
| सामग्री | उनके मशीनेबिलिटी डेटा के साथ वर्कपीस ग्रेड |
| कटर | टूल असेंबलियाँ और डिफ़ॉल्ट लाइब्रेरी (70 कटर) |
| कटिंग-डेटा | किसी सामग्री में कटर के लिए गति, फ़ीड, गहराई, भार और विक्षेपण |
| योजनाकार | सीएडी विशेषताएं → उनके कटर के साथ संचालन का आदेश दिया |
| निष्पादित करना | तैयार करें/चलाएँ: रणनीतियाँ, पोस्ट, स्वतंत्र एनसी रीप्ले, स्टॉक वंशावली, दावे और रिलीज़ स्तर |
| गतिकी, सिर | trunnion table (AC / BC) and tilting head (B about Y) |
| विधानसभा | 3डी टूल असेंबली (कटिंग ज़ोन, शैंक, होल्डर) एक प्रोफ़ाइल के रूप में और इसकी क्रांति की ठोसता |
| टक्कर | संयुक्त चाल की निरंतर जांच: प्रमाणित स्पष्ट, टकराव या अनसुलझा |
| गति | एक साथ पांच-अक्ष: स्थान → टेबल पोज़, प्रत्येक चाल को विभाजित और जांचा गया |
| भंडार | शेष-वॉल्यूम ब्रैकेट के साथ स्वर के रूप में वॉल्यूमेट्रिक स्टॉक |
| मशीन-निकासी | प्रत्येक एनसी चाल पर धारक और टांग को मेज के सामने रखें |
| उत्तल | उत्तल पतवारों के बीच सटीक दूरी (जीजेके) |
export const prepareJob: (job: ManufacturingJob) => CamResult<PreparedJob>
export const executeJob: (prepared: PreparedJob) => CamResult<CamArtifact>
export const runJob: (job: ManufacturingJob) => CamResult<CamArtifact> // prepare, then execute
export const planOnly: (job: ManufacturingJob) => CamResult<{ operations; notes; unmachined }>
export const KERNEL_ALGORITHM = "cadcamfun-cam-kernel@1" सुविधा आधारित योजना
योजनाकार एक प्रिज्मीय भाग को CAM प्रोग्रामर की तरह अनुक्रमित करता है, पैरामीट्रिक इतिहास की वास्तव में मौजूद विशेषताओं के आधार पर:
- स्टॉक टॉप का सामना करें
- रूपरेखा के चारों ओर और जेब के अंदर खुरदुरा (अनुकूली या समोच्च, दीवार भत्ते के साथ)
- काउंटरबोर, स्पॉट ड्रिलिंग, ड्रिलिंग या हेलिकल बोरिंग, काउंटरसिंक, थ्रेड मिलिंग
- दीवारें ख़त्म करो
- जब डिबरिंग के लिए कहा जाए तो ऊपरी किनारों को 2डी चम्फर से तोड़ दें
- 3डी फ्रीफॉर्म बॉडीज की रफिंग और फिनिशिंग
फीचर इतिहास के बिना एक बॉडी (एक जाल, आदिम का एक बूलियन, एक मूर्तिकला भाग) को 3 डी सतह रणनीतियों के साथ मशीनीकृत किया जाता है। योजना केवल उपकरण और क्षेत्र चुनती है; जब कार्य चलता है तो कटिंग डेटा की गणना प्रति ऑपरेशन की जाती है। 44 × 44 × 11 मिमी पीओएम-सी ब्लैंक पर वास्तविक रन ने तीन ऑपरेशनों की योजना बनाई: face फेसमिल के साथ-50, surface-rough फ़्लैट के साथ-16 और surface-finish गेंद के साथ-10, के रूप में जारी किया गया verified-program 149 सेकंड चक्र समय के साथ। वह रन अंदर खींच लिया गया है देशी विनिर्माण.
कटर और टूल असेंबली
The default library has 70 cutters of nine kinds: flat (Ø1–16, plus aluminium ZrN variants), ball (Ø1–10), bull nose, face mill, spot drill, chamfer mill, engraver, thread mills (P0.5–P2) and drills. A cutter's assembly is its half-section profile from the tip, split into cutting zone, shank and holder.
{"id":"flat-6","name":"End mill Ø6 3F carbide ALTIN","kind":"flat","diameter":6,"flutes":3,
"material":"carbide","coating":"altin","fluteLength":15,"shankDiameter":6,"stickout":29,
"holder":{"diameter":40,"length":50}}
{"points":[{"r":0,"z":0},{"r":3,"z":0},{"r":3,"z":15},{"r":3,"z":29},{"r":20,"z":29},{"r":20,"z":79},{"r":0,"z":79}],
"parts":["cutting","cutting","shank","holder","holder","holder"],"length":79,"assumedHolder":false} वोक्सेल स्टॉक और शेष-वॉल्यूम ब्रैकेट
स्टॉक एक वोक्सेल ग्रिड है। चालों के एक सेट के बाद प्रत्येक स्वर भौतिक है, निश्चित रूप से हटा दिया गया (इसका पूरा घन कटर के अंदर किसी नमूना स्थान पर पड़ा हुआ है) या संभव हटा दिया गया (इसका घन कटर के विस्तार के भीतर आया: आधा विकर्ण और आधा नमूना अंतर)। इसलिए शेष मात्रा एक ब्रैकेट है: जो सामग्री संभवतः नहीं हटाई गई वह निश्चित रूप से छोड़ी गई है, जो सामग्री निश्चित रूप से नहीं हटाई गई वह छोड़ी जा सकती है। किसी सैंपल कटर को कवर किए बिना वोक्सल को कभी भी हटाया नहीं जाता है। झुके हुए उपकरण अपनी धुरी को प्रति टिप बिंदु पर ले जाते हैं, इसलिए पांच-अक्ष स्वीप समान दो परीक्षणों का उपयोग करते हैं।
export const voxelStock: (min: Vec3, max: Vec3, voxel: number) => VoxelStock // sample step = voxel / 2
export const removeTipPath: (stock: VoxelStock, cutter: Cutter, path: ReadonlyArray<Vec3>, axes?: ReadonlyArray<Vec3>) => void
export const remainingVolume: (stock: VoxelStock) => { lower: number; upper: number } const s = voxelStock({ x: 0, y: 0, z: -10 }, { x: 40, y: 30, z: 0 }, 0.5)
// 80 × 60 × 20 = 96 000 voxels, step 0.25
removeTipPath(s, flat6, path) // slot y = 15, x 8→32, then the ring 8..32 × 8..22, all at z −3
remainingVolume(s) // {"lower":9749.5,"upper":10740} 124 ms
// stock 12 000 mm³: between 1 260 and 2 250.5 mm³ removed ब्रैकेट वोक्सेल आकार के साथ संकीर्ण होता है: वोक्सेल को आधा करने से प्रत्येक दीवार के साथ स्लैक बैंड आधा हो जाता है।
लगातार टकराव की जाँच
एक नियंत्रक अपने जोड़ों को दो बिंदुओं के बीच रैखिक रूप से घुमाता है, और उनके बीच टकराव हो सकता है। checkMotion checks the whole move: probes (the holder and shank, each non-cutting profile segment enclosed by a capsule) against obstacles (the table envelope and the part box). The lower bound is a Lipschitz argument: a signed distance changes by at most the displacement of the moving solid, so the move is bisected until every interval is proven clear by margin, एक ओवरलैप का नमूना लिया जाता है, या गहराई (12) समाप्त हो जाती है।
| निर्णय | अर्थ |
|---|---|
| स्पष्ट | प्रत्येक अंतराल पर निकासी की निचली सीमा कम से कम मार्जिन होती है |
| टक्कर | एक नमूना जांच बिंदु एक बाधा के अंदर स्थित है; at बताता है कि आप कहाँ चल रहे हैं (0 से 1) |
| अनसुलझे | गहराई के भीतर एक अंतराल स्पष्ट साबित नहीं हो सका, और कोई ओवरलैप नहीं पाया गया |
// rapid along X at nose z 60
{"verdict":"clear","clearance":26.875,"evaluations":2}
// plunge from nose z 60 to nose z 0
{"verdict":"collision","clearance":-10,"at":1,"evaluations":2}
// standing poses
z 60 {"verdict":"clear","clearance":46.875,"evaluations":2}
z 20 {"verdict":"clear","clearance":6.875,"evaluations":2}
z 10 {"verdict":"unresolved","clearance":-3.125,"evaluations":4097}
z 5 {"verdict":"collision","clearance":-5,"at":0,"evaluations":1} तीव्र रिपोर्ट 26.875 के बजाय स्थायी 46.875 की होती है क्योंकि एक चलती हुई जांच निचली सीमा को प्रमाणित करती है: यह प्रत्येक अंतराल पर विस्थापन को घटा देती है, इसे आगे उपविभाजित नहीं किया जाता है। नाक-जेड-10 मुद्रा से पता चलता है कि क्यों unresolved मौजूद है: प्रमाणित निचली सीमा नकारात्मक है (लिफाफा ओवरलैप हो सकता है) फिर भी कोई नमूना बिंदु अंदर नहीं है, इसलिए 4 097 मूल्यांकन के बाद चेकर अनुमान लगाने के बजाय रिपोर्ट करता है कि वह क्या साबित कर सकता है। लिफाफे रूढ़िवादी हैं: एक कैप्सूल अपने धारक खंड को घेरता है, इसलिए एक ओवरलैप की सूचना दी जा सकती है जहां वास्तविक उपकरण केवल करीब आएगा।
समस्या निवारण
| लक्षण | कारण | हल करना |
|---|---|---|
| कार्य स्थिति विफल: असमर्थित कार्य स्कीमा संस्करण | एक अलग कर्नेल स्कीमा के लिए कार्य बनाया गया | वर्तमान स्कीमा संस्करण के साथ कार्य का पुनर्निर्माण करें |
| शेष-आयतन ब्रैकेट चौड़ा | सुविधाओं के लिए स्वर बहुत मोटा है | एक छोटे स्वर का उपयोग करें; स्लैक प्रत्येक दीवार के साथ लगभग एक वोक्सेल है |
| तेजी से टक्कर | धारक या शैंक लिफाफा मेज या भाग तक पहुंचता है | क्लीयरेंस प्लेन को बढ़ाएं या स्टिकआउट को छोटा करें |
| एक लंबी रोटरी चाल पर अनसुलझा | लिप्सचिट्ज़ बाउंड रोटेशन सेंटर से बहुत दूर कमजोर है | चाल को विभाजित करें, या उस मार्जिन को स्वीकार करें जिसे चेकर साबित कर सकता है |
| एक अप्रत्याशित कटर के साथ ऑपरेशन की योजना बनाई गई | सामग्री और कठोरता के लिए कटर की उपयुक्तता | अपने इच्छित कटर के साथ एक टूल लाइब्रेरी पास करें |