पहले से ही कटा हुआ फ़ाइल के अनुमानित प्रिंट समय की गणना


10

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

कार्यक्रम काम करता है और यह बहुत सटीक है।

यह निम्नानुसार काम करता है:

  1. यह सभी आंदोलनों की पहचान करने के लिए संपूर्ण जी-कोड फ़ाइल को स्कैन करता है
  2. यह मिमी / एस में गति से खंड की दूरी को विभाजित करके प्रत्येक चाल के लिए समय की गणना करता है।

मान लेते हैं कि यह जी-कोड है:

G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000

यह वह गणना है जो यह करती है:

totalTime = 0

# G28 ; home all axes
currentX = 0 mm
currentY = 0 mm
currentZ = 0 mm

# G1 Z0.200 F5400.000
newZ = 0.2 mm
mmPerSecond = 5400 / 60 = 90 mm/s
deltaZ = newZ - currentZ = 0.2 - 0 = 0.2 mm
segmentLength = deltaZ  = 0.2 mm
moveTime = segmentLength / mmPerSecond = 0.2 / 90 = 0.002 s
totalTime = totalTime + moveTime = 0 + 0.002 = 0.002 s

# G1 X158.878 Y27.769 E6.65594 F900.000
newX = 158.878 mm
newY = 27.769 mm
mmPerSecond = 900 / 60 = 15 mm/s
deltaX = newX - currentX = 158.878 - 0 = 158.878 mm
deltaY = newY - currentY = 27.769 - 0  = 27.769 mm
segmentLength = square_root(deltaX² + deltaY²) = 161.287 mm
moveTime = deltaZ / mmPerSecond = 161.287 / 15 = 10.755 s
totalTime = totalTime + moveTime = 0.002 + 10.755 = 10.757 s

इस उदाहरण में, प्रिंट में लगभग 10.7 सेकंड लगेंगे।

आमतौर पर, इस्तेमाल किया जाने वाला सूत्र प्रत्येक आंदोलन के लिए है:

moveTime = segmentLength / mmPerSecond

सभी चाल समय को संक्षेप में करके, हमारे पास कुल अनुमानित प्रिंट समय है।

मैंने देखा है कि कुछ फ़ोरम बताते हैं कि 3 डी प्रिंट का समय 3 डी प्रिंटर की कुछ सेटिंग्स पर भी निर्भर करता है, विशेष रूप से एक्सलेरेशन एक्स, एक्सेलेरेशन वाई, एक्सेलेरेशन जेड, जर्क और जेड-जर्क।

मैं प्रिंट समय के बारे में अधिक सटीक गणना करने के लिए उन मूल्यों का उपयोग करना संभव बनाना चाहता हूं; हालाँकि, मुझे समझ नहीं आ रहा है कि उन मूल्यों को चाल समय कैसे प्रभावित करता है:

  1. त्वरण और जर्क को कैसे माना जाना चाहिए; और, वे प्रिंट समय को कैसे तेज या धीमा करते हैं?
  2. प्रिंट समय गणना में त्वरण और जर्क को शामिल करने के लिए मुझे अपने सूत्र को कैसे संपादित करना चाहिए?

आपको किस तरह की आवश्यकता है? हां, आप एक्सीलरेशन में प्लग कर सकते हैं, और शॉर्ट रनों की भरपाई कर सकते हैं, जहां मोटर्स डीक्लेरेट करने से पहले कभी भी पूरी गति से नहीं पहुंचते हैं, और इसी तरह, लेकिन अगर नेट रिजल्ट बंद हो जाता है, तो 2% का ध्यान रखें? एक वर्ग पिरामिड की तरह कुछ सरल मुद्रण की कोशिश करें और वास्तविकता से अपनी भविष्यवाणी की तुलना करें।
कार्ल विटथॉफ्ट

मैं जितना संभव हो उतना सटीक होना चाहता हूं ... अभी 9 घंटे पर भविष्यवाणी और वास्तविकता के बीच का अंतर 10-15 मिनट है, जो बहुत कुछ है। मैं मार्लिन स्रोत कोड को
देखूंगा

शायद आप स्लाइ 3 आर की जांच कर सकते हैं और देख सकते हैं कि यह उन मापदंडों की गणना कैसे करता है। मुझे याद है कि स्लाइस करते समय समय का अनुमान लगाना।
फ़ारो

@ फ़ारो मैं Slic3r का उपयोग करता हूं और मैंने कभी समय का अनुमान नहीं देखा। हो सकता है कि मैं सही जगह नहीं देख रहा हूं, लेकिन बहुत सारे उपयोगकर्ता वेब पर उस सुविधा के लिए पूछ रहे हैं, इसलिए मुझे डर है कि Slic3r में प्रिंट समय जानने का कोई तरीका नहीं है।
बैकस्लैश

@BackSlash मैं आमतौर पर इसे आउटपुट लॉग में स्लाइसिंग के अंत में रेपटियर में देखता हूं। मुझे लगता है कि यह पुनरावृत्ति से ही है!
फरो

जवाबों:


5

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

मुझे संदेह है कि एक्सेलेरेशन सेटिंग से प्रिंट में लगने वाले समय में बहुत अंतर नहीं आएगा। उन्हें लगता है कि मैंने छोटे प्रिंटों पर धीमी गति से छापने का काम किया है। यदि आप तेज गति से बड़े प्रिंटों को प्रिंट कर रहे थे, जिसमें लंबे रास्ते थे जहां नोजल में तेजी और मंदी का समय था, तो मुझे संदेह है कि आप समय के साथ एक बड़ा अंतर देखेंगे।

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

यदि कोई यह पता लगा सकता है कि प्रिंटर द्वारा त्वरण सेटिंग्स की गणना कैसे की जाती है और प्रिंटर से त्वरण सेटिंग्स प्राप्त करने के लिए जी-कोड कमांड का क्या उपयोग किया जा सकता है, तो मैं वास्तव में इस बारे में और जानने में दिलचस्पी लूंगा।


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

3
"मुझे संदेह है कि त्वरण सेटिंग को उस समय से बहुत अधिक फर्क नहीं पड़ेगा जो प्रिंट लेता है।" <- यह अधिक गलत नहीं हो सकता है। जब भी प्रिंट गति और विवरण आकार के बीच राशन अधिक होता है (यानी तेज गति सेटिंग या छोटे विवरण या दोनों) के बीच प्रिंट समय में त्वरण प्रमुख कारक है। इतना अधिक कि 2x के कारक द्वारा [अधिकतम] गति सेटिंग को बढ़ाने से प्रिंट समय में 5% की कमी होने की संभावना नहीं है।
आर .. गिटहब स्टॉप हेल्पिंग ICE

5

सबसे पहले, जावास्क्रिप्ट में कुछ अच्छे ओपन सोर्स एनालाइज़र लिखे गए हैं जिन्हें आप https://www.gcodeanalyser.com/ और http://gcode.ws/ पर ऑनलाइन उपयोग कर सकते हैं या स्रोत को पढ़ सकते हैं । उनकी भविष्यवाणियां पूरी तरह से वास्तविक प्रिंटर फर्मवेयर से मेल नहीं खाती हैं, लेकिन वे एक यथोचित काम करते हैं, और उन्हें पढ़ना जानकारीपूर्ण होगा।

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

  • अधिकतम निरपेक्ष मान (3 डी वेक्टर लंबाई) जो अक्सर प्रिंट चाल बनाम यात्रा चाल, दीवारों बनाम infill, आदि के लिए विभिन्न त्वरण प्रोफाइल का उपयोग करने के लिए gcode के भाग के रूप में परिवर्तित होती है।

  • मशीन की सीमाओं के लिए प्रति-अक्ष निरपेक्ष मान (मानक 1 डी निरपेक्ष मूल्य), जो आमतौर पर प्रिंटर की सेटिंग में सेट किया जाता है या आपके प्रिंटर के लिए प्रारंभ gcode प्रोफ़ाइल और कभी नहीं बदला जाता है।

आंदोलन हमेशा सेटिंग्स के दोनों सेटों का सम्मान करने के लिए विवश है।

प्रिंटर फर्मवेयर के साथ त्वरण और झटका सेटिंग्स का उपयोग करता अग्रदर्शी आगामी प्रस्ताव आदेशों पर फैसला करने के लिए कैसे वास्तव में मोटर्स संचालित करने के लिए। जब यह एक गति शुरू करता है, तो इसे त्वरण बाधाओं के भीतर कॉन्फ़िगर किए गए अधिकतम वेग को तेज करना पड़ता है। जब तक यह पता नहीं चल जाता है कि यह अगले गति को ठीक उसी दिशा में जारी रखने वाला है, तब तक मध्य मार्ग को धीमा करना शुरू करना है; इसे कितना धीमा करना है यह गति के वैक्टर में अंतर पर निर्भर करता है। यदि अगली गति लगभग एक ही दिशा में होने जा रही है, तो यह कोने में वेग के "तात्कालिक" परिवर्तन करने के लिए झटका भत्ता का उपयोग करके धीमा होने से बचने में सक्षम हो सकता है। केवल यदि आपके पास लंबे समय तक (गति के सापेक्ष) रैखिक या लगभग रैखिक गति है, तो क्या आप वास्तव में अनुरोधित गति तक पहुंच सकते हैं।

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


जर्क त्वरण की व्युत्पत्ति है।
त्रिश

1
@ ट्रिश: जब यह नहीं है सिवाय। मेरा प्रश्न देखें 3dprinting.stackexchange.com/questions/10369/…
R .. GitHub STOP हेल्पिंग ICE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.