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

दस्तावेज़

सीएएम मशीनिंग कर्नेल

विनिर्माण कार्य से लेकर एनसी और साक्ष्य तक: योजना, कटर, शेष-मात्रा ब्रैकेट के साथ वोक्सेल स्टॉक, और प्रमाणित टक्कर जांच।

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

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डी टूल असेंबली (कटिंग ज़ोन, शैंक, होल्डर) एक प्रोफ़ाइल के रूप में और इसकी क्रांति की ठोसता
टक्करसंयुक्त चाल की निरंतर जांच: प्रमाणित स्पष्ट, टकराव या अनसुलझा
गतिएक साथ पांच-अक्ष: स्थान → टेबल पोज़, प्रत्येक चाल को विभाजित और जांचा गया
भंडारशेष-वॉल्यूम ब्रैकेट के साथ स्वर के रूप में वॉल्यूमेट्रिक स्टॉक
मशीन-निकासीप्रत्येक एनसी चाल पर धारक और टांग को मेज के सामने रखें
उत्तलउत्तल पतवारों के बीच सटीक दूरी (जीजेके)
प्रवेश बिंदु (निष्पादन.ts)
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 प्रोग्रामर की तरह अनुक्रमित करता है, पैरामीट्रिक इतिहास की वास्तव में मौजूद विशेषताओं के आधार पर:

  1. स्टॉक टॉप का सामना करें
  2. रूपरेखा के चारों ओर और जेब के अंदर खुरदुरा (अनुकूली या समोच्च, दीवार भत्ते के साथ)
  3. काउंटरबोर, स्पॉट ड्रिलिंग, ड्रिलिंग या हेलिकल बोरिंग, काउंटरसिंक, थ्रेड मिलिंग
  4. दीवारें ख़त्म करो
  5. जब डिबरिंग के लिए कहा जाए तो ऊपरी किनारों को 2डी चम्फर से तोड़ दें
  6. 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.

फ़्लैट-6 और असेंबलीप्रोफ़ाइल(फ़्लैट-6) — वास्तविक आउटपुट
{"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}
फ़्लैट-6 असेंबली इसके स्वीप पर कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
असेंबली प्रोफ़ाइल घूमती है: बांसुरी आर 3 ज़ेड 0 से 15 (एम्बर), शैंक से ज़ेड 29, धारक आर 20 से ज़ेड 79। नीचे दिए गए स्लॉट की शुरुआत में टिप, स्टॉक टॉप में 3 मिमी।

वोक्सेल स्टॉक और शेष-वॉल्यूम ब्रैकेट

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

stock.ts
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 }
स्लॉट और रिंग 3 मिमी गहराई के साथ फ्लैट-6 — वास्तविक आउटपुट
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
पुनः चलाया गया स्टॉक (बाहरी सीमा) कक्षा में खींचें · ज़ूम करने के लिए स्क्रॉल करें · पैन करने के लिए दाईं ओर खींचें
प्रत्येक वोक्सल कॉलम की ऊपरी सतह जिसे संभवतः हटाया भी नहीं गया है, ऊपर के रन से: स्लॉट और रिंग को 3 मिमी गहराई में काटा जाता है (स्लैक का एक वोक्सल दीवारों के साथ चरणों के रूप में दिखता है)।

ब्रैकेट वोक्सेल आकार के साथ संकीर्ण होता है: वोक्सेल को आधा करने से प्रत्येक दीवार के साथ स्लैक बैंड आधा हो जाता है।

लगातार टकराव की जाँच

एक नियंत्रक अपने जोड़ों को दो बिंदुओं के बीच रैखिक रूप से घुमाता है, और उनके बीच टकराव हो सकता है। 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)
अनसुलझेगहराई के भीतर एक अंतराल स्पष्ट साबित नहीं हो सका, और कोई ओवरलैप नहीं पाया गया
फ़्लैट-6 टेबलबॉक्स पर एक रेखीय दृश्य में(20, 15, −10, 200, 100, 20) - वास्तविक आउटपुट
// 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 मूल्यांकन के बाद चेकर अनुमान लगाने के बजाय रिपोर्ट करता है कि वह क्या साबित कर सकता है। लिफाफे रूढ़िवादी हैं: एक कैप्सूल अपने धारक खंड को घेरता है, इसलिए एक ओवरलैप की सूचना दी जा सकती है जहां वास्तविक उपकरण केवल करीब आएगा।

समस्या निवारण

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