2012-04-16 17 views
5

की गणना करें मैं एक सीएनसी मिल के लिए ड्राइवर को कार्यान्वित कर रहा हूं, और मुझे जी-कोड आर्क कमांड को लागू करने में समस्या हो रही है।एन-आयामी आर्क पथ

मुझे मध्यबिंदु सर्कल एल्गोरिदम के कई कार्यान्वयन मिले हैं, लेकिन यह वास्तव में उपयोग करने योग्य नहीं है।

मिडपॉइंट सर्कल अलगो के साथ समस्या मुझे मिली, यह है कि यह 2 डी है और एक ही समय में सभी ऑक्टों को खींचता है, जबकि मुझे 3 डी पथ के माध्यम से अनुक्रमिक चरणों की आवश्यकता होती है, जो प्रारंभ, अंत और केंद्र बिंदुओं के अनुसार दी जाती है ।

मुझे फ्लोटिंग पॉइंट ऑपरेशंस का उपयोग करके nice multidimensional equivalent of Bresenham’s line drawing algo मिला। शायद एक चाप ड्राइंग के लिए एक समान बात मौजूद है?

मैं बहुत सारी सोच और प्रयोग का उपयोग करके अपनी इच्छा के लिए इस अलगाव को झुका सकता हूं, लेकिन चूंकि एक चाप खींचना एक अनसुलझा समस्या नहीं है, और सीएनसी मशीनों को पहले बनाया गया है, मुझे आश्चर्य है कि क्या एक सुरुचिपूर्ण समाधान पहले से मौजूद है ?

+0

क्या आप 3 डी स्पेस में 1 डी वक्र के साथ पथ ढूंढने की कोशिश कर रहे हैं, या एक पथ जिसमें 3 डी स्पेस में 2 डी घुमावदार सतह शामिल है? – Beta

उत्तर

0

मेरा dxftools एक बहुत ही स्मार्ट 2 डी कटर के लिए डीएक्सएफ फाइलों को प्रोसेस करने के लिए इस्तेमाल किए गए पायथन पैकेज में 2 डी में लाइन सेगमेंट में एक चाप को विभाजित करने के लिए एक फ़ंक्शन है। आप इस कोड का उपयोग कर सकते हैं और फिर 3 डी स्पेस में मनमाने ढंग से रखने के लिए 3 डी समन्वय ट्रैनफॉर्मेशन का उपयोग कर सकते हैं। समन्वय परिवर्तन के उदाहरण मेरे py-stl पैकेज में पाए जा सकते हैं।

0

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

एक सॉफ्टवेयर चरण पीढ़ी प्रणाली में, पुराने आदेश की स्थिति और नई आज्ञा दी गई स्थिति के बीच का अंतर प्रत्येक धुरी के साथ निर्धारित किया जाता है, और इसका उपयोग प्रत्यक्ष डिजिटल संश्लेषण विधि (डीडीएस) का उपयोग कर डिजिटल वेवफ़ॉर्म जनरेटर की दरों को अद्यतन करने के लिए किया जाता है।)। फिर, एक उच्च दर (आमतौर पर प्रत्येक 20-50μs) पर, डीडीएस प्रत्येक धुरी के लिए निर्धारित करता है कि उस समय एक कदम उत्पन्न किया जाना चाहिए या नहीं।

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

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

संबंधित मुद्दे