OpenSCAD के लिए शुरुआती गाइड: प्रोग्रामिंग 3D प्रिंटेड मॉडल

OpenSCAD के लिए शुरुआती गाइड: प्रोग्रामिंग 3D प्रिंटेड मॉडल

क्या आप हमेशा अपने खुद के 3D मॉडल डिजाइन करना चाहते हैं? आपके द्वारा डिज़ाइन किए गए भाग को 3D प्रिंटिंग के बारे में क्या? आसपास कई 3D मॉडलिंग कार्यक्रम हैं, लेकिन यदि आप कलात्मक नहीं हैं (मेरी तरह) तो इनका उपयोग करना मुश्किल हो सकता है। ओपनएससीएडी आपको विशेष रूप से 3D प्रिंटिंग के लिए मॉडल डिज़ाइन करने का एक तरीका प्रदान करता है, लेकिन कुछ भी नहीं का उपयोग करता है कोड . यदि आप कोड करना नहीं जानते हैं तो चिंता न करें, आज मैं आपको बुनियादी बातों के बारे में बताऊंगा।





ओपनएससीएडी क्या है?

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





3D प्रिंटिंग मॉडल के लिए आपको कुछ कारकों को ध्यान में रखना होगा, लेकिन इनमें से कई सामान्य रूप से 3D प्रिंटिंग CAD मॉडल पर लागू होते हैं, न कि केवल OpenSCAD डिज़ाइन पर। यदि आप 3डी प्रिंटिंग के बारे में अधिक जानना चाहते हैं, तो हमारे अल्टीमेट बिगिनर्स गाइड को देखें। यदि आप अधिक इंटरैक्टिव मॉडेलर की तलाश में हैं, तो स्केचअप में ऑब्जेक्ट बनाने के लिए मार्गदर्शिका पढ़ें।





सेट अप करना

सबसे पहले, आगे बढ़ें डाउनलोड पृष्ठ पर जाएं और अपने ऑपरेटिंग सिस्टम के लिए उपयुक्त OpenSCAD का एक संस्करण खोजें। मैं मैक ओएस का उपयोग कर रहा हूं, लेकिन ये ओपनएससीएडी सिद्धांत सभी प्रणालियों पर लागू होते हैं।

एक बार इंस्टॉल हो जाने के बाद, आगे बढ़ें और इसे खोलें। आपको इस स्टार्टअप मेनू के साथ प्रस्तुत किया जाएगा:



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

एक बार खोलने के बाद, आपको इस नंगे दिखने वाले इंटरफ़ेस के साथ प्रस्तुत किया जाएगा:





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





नीचे दाईं ओर है सांत्वना देना . यह आपको मॉडल बनाने में कोई त्रुटि दिखाएगा।

अंतिम खंड है मुख्य इंटरफ़ेस ऊपर दाईं ओर। यहां आप अपने मॉडल के साथ बातचीत कर सकते हैं, लेकिन आप इसे यहां संपादित नहीं कर पाएंगे (ऐसा करने के लिए आप कोड लिखेंगे)।

मैं/ओ त्रुटि विंडोज़ 10

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

आगे बढ़ें और एक नई फ़ाइल को दबाकर सहेजें सहेजें बटन में संपादक मेनू या जाने के द्वारा फ़ाइल > सहेजें .

मूल बातें

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

यहाँ पहला आकार है, एक साधारण बॉक्स:

और यहां उत्पादन करने के लिए कोड है:

cube(); // create a cube

मॉडल को निष्पादित करने और बनाने के लिए अपना कोड प्राप्त करने के लिए, आपको इसका पूर्वावलोकन करने की आवश्यकता है। हर बार जब आप सहेजते हैं तो OpenSCAD डिफ़ॉल्ट रूप से ऐसा करेगा, या आप दबा सकते हैं F5 एक ताज़ा करने के लिए मजबूर करने के लिए। बाएँ या दाएँ माउस बटन को दबाकर 3D स्थान में घूमने का प्रयोग करें।

अब, यह एक अच्छा घन पैदा करता है, लेकिन यह बिना किसी आयाम के बहुत उपयोगी नहीं है। OpenSCAD किसी विशेष माप प्रणाली में काम नहीं करता है, इसके बजाय, इकाइयाँ सभी एक दूसरे के सापेक्ष होती हैं। आप एक बॉक्स २० x १० बना सकते हैं, और यह किसी भी अन्य प्रोग्राम (जैसे कि आपका ३डी प्रिंटिंग स्लाइसर) पर निर्भर है कि वह इनकी व्याख्या करे, चाहे वह मीट्रिक हो या इंपीरियल। यह वास्तव में महान लचीलापन प्रदान करता है।

आइए आपके घन में कुछ आयाम जोड़ें। आप ऐसा करते हैं कि पैरामीटर में गुजर रहे हैं घनक्षेत्र तरीका:

cube(size = [10, 20, 30]); // rectangle

मूल्य 10 , बीस , तथा 30 घन के आकार का प्रतिनिधित्व करते हैं एक्स , तथा , तथा साथ एक्सिस। ध्यान दें कि इसने एक बहुत बड़ा आयत कैसे बनाया है:

डिफ़ॉल्ट रूप से, OpenSCAD नीचे बाईं ओर से घटकों को खींचता है। आप इसे सेट करके समायोजित कर सकते हैं केंद्र करने के लिए पैरामीटर सच . आयत में ऐसा करने के लिए कोड यहां दिया गया है:

cube(size = [10, 20, 30], center = true); // rectangle centered

और यहाँ यह कैसा दिखता है:

प्रोग्राम को बंद करने के लिए कैसे बाध्य करें

केन्द्रित वस्तुएँ सरल आकृतियों के लिए अच्छी तरह से काम करती हैं, लेकिन यह गैर-सममित वस्तुओं के लिए चीजों को जटिल बनाती हैं। आपको यह तय करना होगा कि कौन सी विधि आपके लिए सबसे अच्छा काम करती है।

अधिक जटिल आकार की ओर बढ़ते हुए, यहाँ है a सिलेंडर :

इसे बनाने के लिए कोड यहां दिया गया है:

cylinder(d = 10, h = 10, center = true); // cylinder

भिन्न क्यूब्स , सिलेंडर X और Y अक्ष के केंद्र में स्वचालित रूप से खींचे जाते हैं। NS डी पैरामीटर के लिए खड़ा है व्यास (यदि आप चाहें तो आप इसके बजाय त्रिज्या में गुजर सकते हैं)। NS एच पैरामीटर ऊंचाई है। हालांकि यहां कुछ गड़बड़ है। यह सिलेंडर देखने में काफी 'ब्लॉकी' लगता है। आपको परिधि पर खींचे गए चेहरों की संख्या बढ़ाने की आवश्यकता है। यह करना आसान है -- अपने सिलेंडर कोड में निम्नलिखित पैरामीटर जोड़ें।

$fn = 100

तो सिलेंडर की परिभाषा बन जाती है:

cylinder(d = 10, h = 10, center = true, $fn = 100);

यहाँ जो दिखता है वह है:

इससे वृत्त बनाने के लिए आवश्यक चेहरों की संख्या बढ़ जाती है -- 100 एक अच्छा प्रारंभिक बिंदु है। ध्यान रखें, यह विशेष रूप से जटिल मॉडलों पर प्रतिपादन समय को बहुत बढ़ा देगा, इसलिए आमतौर पर इसे तब तक छोड़ना सबसे अच्छा है जब तक कि आप डिजाइनिंग समाप्त नहीं कर लेते।

आकृतियों पर परिवर्तन लागू करना आसान है। अपनी आकृतियाँ बनाने से पहले आपको विशेष विधियों को कॉल करने की आवश्यकता है। का उपयोग करके सिलेंडर को घुमाने का तरीका यहां दिया गया है घुमाएँ तरीका:

rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder

मूल्यों को पारित किया गया प्रति पैरामीटर एक्स, वाई, और जेड अक्ष के रोटेशन के कोण का प्रतिनिधित्व करते हैं। यहाँ परिणाम है:

एक और बहुत उपयोगी कार्य है अनुवाद करना . यह आपको वस्तुओं को 3D स्थान में इधर-उधर ले जाने की अनुमति देता है। एक बार फिर, आपको प्रत्येक धुरी के लिए गति की मात्रा में गुजरना होगा। यहाँ परिणाम है:

यहाँ कोड है:

translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder

को समझना अनुवाद करना विधि सबसे महत्वपूर्ण चीजों में से एक है जो आप कर सकते हैं। यह सबसे जटिल डिजाइनों को डिजाइन करने के लिए आवश्यक है।

अंत में, एक और उपयोगी आकार है a वृत्त :

यहाँ कोड है:

एयरपॉड्स को लैपटॉप विंडो से कैसे कनेक्ट करें
sphere(d = 100);

सिलेंडर की तरह ही, आप इसका उपयोग करके इसे चिकना कर सकते हैं $fn उपरोक्त कोड।

उन्नत कोडिंग

अब जब आप मूल बातें जान गए हैं, तो आइए कुछ और उन्नत कौशलों को देखें। एक भाग को डिजाइन करते समय, यह सोचने में मदद करता है कि इसे छोटे आकार और वस्तुओं से कैसे बनाया जा सकता है। आपको ऐसा करने की ज़रूरत नहीं है, और आप जैसे-जैसे आगे बढ़ते हैं, आप 'चीजें बना सकते हैं', लेकिन यह एक कठिन योजना बनाने में मदद करता है - भले ही यह केवल आपके दिमाग में ही क्यों न हो।

आइए एक उन्नत आकार बनाएं: एक घन जिसमें एक खोखला आउट गोलाकार आंतरिक भाग होता है। बनाओ घनक्षेत्र और एक वृत्त साथ केंद्र सच पर सेट। का उपयोग करके एक को दूसरे से घटाएं अंतर तरीका:

difference() {
// subtraction
cube(size = [50, 50, 50], center = true); // outer cube
sphere(d = 65, center = true); // inner sphere
}

यहाँ परिणाम है:

व्यास के साथ प्रयोग ( डी पैरामीटर) गोले का और देखें कि क्या होता है।

OpenSCAD में, आमतौर पर एक ही कार्य को पूरा करने के कई तरीके होते हैं। यदि आप एक घन में एक नाली चाहते हैं, तो आप उसमें से एक और घन घटा सकते हैं, या उसके ऊपर दो और जोड़ सकते हैं। यह आमतौर पर मायने नहीं रखता कि चीजें किस तरह से की जाती हैं, लेकिन भाग की जटिलता के आधार पर, पहले कुछ जोड़तोड़ करना आसान हो सकता है।

यहां क्यूब में चैनल बनाने का तरीका बताया गया है। दूसरे क्यूब का उपयोग करने के बजाय, एक सिलेंडर का उपयोग करने से एक गोल चैनल बन जाएगा। ध्यान दें कि कैसे अंतर विधि का एक बार फिर से उपयोग किया जाता है, और कैसे अनुवाद करना तथा घुमाएँ आकृतियों में हेरफेर करने के लिए विधियों का उपयोग किया जाता है। का उपयोग करते हुए घुमाएँ विधि अक्सर परिवर्तनों को मुश्किल बना देती है, इसलिए जब तक आप अपना वांछित परिणाम प्राप्त नहीं कर लेते, तब तक मापदंडों के साथ खेलें। यहाँ कोड है:

difference() {
// subtraction
cube(size = [50, 150, 50]); // outer cube
translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel
}

यहाँ जो दिखता है वह है:

आप सोच रहे होंगे कि हरी चीजें क्या होती हैं। यह यहाँ है क्योंकि 3D मॉडल अभी केवल एक पूर्वावलोकन है। इसे ठीक करने के लिए, दबाएं F6 मॉडल को पूरी तरह से प्रस्तुत करने के लिए। जटिलता के आधार पर इसमें कुछ समय लग सकता है। पूर्वावलोकन ( F5 ) काम करते समय आमतौर पर काफी अच्छा होता है। यहाँ अंतिम रेंडर कैसा दिखता है (साथ .) $fn 100 पर सेट करें):

यहाँ एक और उन्नत उदाहरण है। मान लें कि आप बोल्ट का उपयोग करके कुछ माउंट करना चाहते थे। छेद बनाना काफी सरल है सिलेंडर , लेकिन क्या होगा यदि आप काउंटरसंक बोल्ट के लिए बोल्ट हेड फ्लश माउंट करना चाहते हैं? आप बोल्ट हेड के बैठने के लिए बस एक बड़ा सिलेंडर बना सकते हैं, लेकिन यह बहुत अच्छा नहीं लगेगा। समाधान एक कक्ष है, जिसे आप इसके साथ बना सकते हैं सिलेंडर तरीका। यहाँ ट्रिक दो व्यास निर्दिष्ट करने के लिए है - d1 तथा d2 . ये अलग-अलग आकार बनाएं, और OpenSCAD बाकी काम करेगा।

जैसा कि मैं ब्रिटिश हूं, मैं यहां M5 काउंटरसंक बोल्ट के लिए मीट्रिक आयामों का उपयोग करूंगा। आप जो भी फिक्सिंग का उपयोग करना चाहते हैं उसे फिट करने के लिए आप इसे आसानी से समायोजित कर सकते हैं। यहाँ कोड है:

$fn = 100;
// bolt settings
m5_clearance_diameter = 5.5;
m5_head_clearance_diameter = 11;
m5_head_depth = 5;
difference() {
// subtract
cube(20, 20, 20);
bolt_hole(10, 10, 20);
bolt_bevel(10, 10, 15);
}
module bolt_hole(x, y, height) {
/* M5 hole at 90 deg. */
translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height);
}
module bolt_bevel(x, y, z) {
// M5 bevel
translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
}

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

आइए एक अंतिम उदाहरण देखें। मान लें कि आप एक सर्कल के चारों ओर छेदों की एक श्रृंखला बनाना चाहते हैं। आप इन सभी को मैन्युअल रूप से माप सकते हैं, अनुवाद कर सकते हैं और घुमा सकते हैं, लेकिन मॉड्यूल के साथ भी यह थकाऊ होगा। यहां अंतिम परिणाम है, 10 सिलेंडर भी एक सर्कल के चारों ओर वितरित किए गए हैं:

यहाँ कोड है:

$fn = 100;
number_of_holes = 10;
for(i = [1 : 360 / number_of_holes : 360]) {
// number_of_holes defines number of times this code runs
make_cylinder(i);
}
module make_cylinder(i) {
// make cylinder and even distribute
rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2);
}

यह कोड आपकी अपेक्षा से अधिक सरल है। ए के लिये लूप का प्रयोग को कॉल करने के लिए किया जाता है मेक_सिलेंडर मॉड्यूल दस बार। चूँकि एक वृत्त में ३६० डिग्री होते हैं, और ३६० / १० = ३६, प्रत्येक सिलेंडर को ३६ डिग्री की वृद्धि में घुमाने की आवश्यकता होती है। इस लूप के प्रत्येक पुनरावृत्ति में वृद्धि होगी मैं 36 से चर। यह लूप कॉल करता है मेक_सिलेंडर मॉड्यूल, जो बस एक सिलेंडर खींचता है और इसे लूप द्वारा दी गई डिग्री के अनुसार रखता है। आप कम या ज्यादा सिलेंडरों को संशोधित करके आकर्षित कर सकते हैं number_of_holes चर - हालांकि यदि आप ऐसा करते हैं तो आप रिक्ति को समायोजित करना चाह सकते हैं। यहां बताया गया है कि 100 सिलेंडर कैसे दिखते हैं, वे थोड़ा ओवरलैप करते हैं:

निर्यात

अब जब आप जानते हैं कि OpenScad में कैसे कोड किया जाता है, तो इससे पहले कि आप अपने मॉडलों को 3D प्रिंट कर सकें, एक अंतिम चरण आवश्यक है। आपको अपने डिज़ाइन को OpenSCAD से मानक में निर्यात करने की आवश्यकता है एसटीएल अधिकांश 3D प्रिंटर द्वारा उपयोग किया जाने वाला प्रारूप। सौभाग्य से, एसटीएल बटन को निर्यात है: संपादक मेनू > ठीक तरह से ऊपर :

आजके लिए इतना ही। अब आपके पास OpenSCAD का उत्कृष्ट कार्यसाधक ज्ञान होना चाहिए - सभी जटिल सामग्री इन नींवों पर निर्मित होती है, और कई जटिल आकार वास्तव में बहुत सारे सरल आकार संयुक्त होते हैं।

एक चुनौती के लिए, क्यों न हमारी कुछ 3D प्रिंटिंग परियोजनाओं को देखें, और OpenSCAD में भागों को फिर से बनाने का प्रयास करें:

क्या आपने आज कोई नई तरकीब सीखी? आपकी पसंदीदा OpenSCAD विशेषता क्या है? क्या आप जल्द ही किसी अन्य CAD टूल से स्विच करने वाले हैं? नीचे टिप्पणी करके हमें बताएं!

साझा करना साझा करना कलरव ईमेल Android पर Google के बिल्ट-इन बबल लेवल को कैसे एक्सेस करें

यदि आपको कभी यह सुनिश्चित करने की आवश्यकता है कि कुछ चुटकी में स्तर है, तो अब आप सेकंड में अपने फोन पर बबल स्तर प्राप्त कर सकते हैं।

आगे पढ़िए
संबंधित विषय
  • DIY
  • प्रोग्रामिंग
  • 3 डी प्रिंटिग
  • 3 डी मॉडलिंग
लेखक के बारे में जो कोबर्न(136 लेख प्रकाशित)

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

जो कोबर्न . की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें
श्रेणी Diy