आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप STL को OBJ में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
STL से OBJ
STL सिर्फ़ स्लाइस होने के लिए बनी है। वह त्रिकोण रखती है और कुछ नहीं, जो एक स्लाइसर को ठीक चाहिए और मॉडलिंग ऐप्लिकेशन को बिलकुल नहीं — कोई समूह अलग करने को नहीं, कोई सामग्री जोड़ने को नहीं, और सबसे अहम, कोई साझा वर्टेक्स नहीं। कोई भी मॉडलर सबसे पहले मेश का हिस्सा चुनने से शुरू करता है, और STL उसे चुनने को कुछ देती ही नहीं।
OBJ बिलकुल उलटी तरह की फ़ाइल है: पाठ, अनुक्रमित, समूहबद्ध, हर जगह पढ़ी जाने वाली, और इतनी पुरानी कि 1998 का पैकेज भी उसे पढ़ ले। यह किसी अमूर्त सोच में STL से बेहतर फ़ॉर्मेट नहीं; यह वह फ़ॉर्मेट है जिसे मॉडलिंग पाइपलाइन का हर औज़ार तयशुदा मानता है।
किसी STL में क्यूब बारह त्रिकोण और छत्तीस वर्टेक्स है, क्योंकि हर त्रिकोण अपने तीनों कोने स्वतंत्र रूप से रखता है और असली आठ कोने चार-पाँच बार दोहराए जाते हैं। बिना बदले इम्पोर्ट कीजिए तो हर त्रिकोण अपना अलग टापू है — Select Linked एक ही फ़ेस चुनता है, loop select कोई लूप नहीं पाता, smooth shading के पास औसत निकालने को साझा सामान्य ही नहीं।
यहाँ का रीडर लिखने से पहले मिलते-जुलते वर्टेक्स को जोड़ देता है। तुलना-कुंजी छह दशमलव स्थान तक गोल की जाती है, क्योंकि किसी किनारे पर मिलने वाले दो त्रिकोण आमतौर पर float के आख़िरी बिट में असहमत होते हैं। क्यूब आठ वर्टेक्स और बारह फ़ेस के साथ आता है — यही वह मेश है जिसे मॉडलर मेश कहता है।
एक टिप्पणी-लाइन, एक `o` लाइन जो अकेले समूह का नाम बताती है, फिर हर वर्टेक्स के लिए एक `v` लाइन और हर त्रिकोण के लिए एक `f` लाइन। यही पूरी फ़ाइल है। इंडेक्स OBJ की माँग के मुताबिक़ एक-आधारित हैं।
कोई `vt` लाइन नहीं क्योंकि STL में टेक्सचर-निर्देशांक नहीं होते, कोई `vn` लाइन नहीं क्योंकि सामान्य निकाले जा सकते हैं, कोई `usemtl` लाइन नहीं क्योंकि कोई सामग्री नहीं। जो कुछ भी OBJ खोलता है वह इसे पढ़ लेगा; फ़ाइल में कुछ भी ऐसा नहीं जिस पर कोई इम्पोर्टर असहमत हो।
STL में ऑब्जेक्ट की कोई अवधारणा नहीं, इसलिए OBJ में एक समूह होता है और उसका नाम `mesh_1` है। किसी बॉडी, ढक्कन और हैंडल से जोड़ा गया मॉडल एक समूह के रूप में आता है जिसमें तीन अलग-थलग खोल होते हैं।
हर मॉडलिंग ऐप्लिकेशन इसे अलग कर सकता है। Blender में Separate By Loose Parts, MeshLab में Split in Connected Components। कोई भी नाम वापस नहीं ला सकता, क्योंकि STL में वे कभी थे ही नहीं। अगर नाम मायने रखते हैं और स्रोत फ़ाइल चुनने का विकल्प है, तो 3MF और OBJ दोनों नाम रखते हैं और STL कभी नहीं रखता।
STL हर त्रिकोण के लिए एक फ़ेस-सामान्य रखती है। वह OBJ में नहीं लिखा जाता, और कुछ खोता नहीं: फ़ेस-सामान्य पूरी तरह तीन कोनों की वाइंडिंग-दिशा से तय होता है, और हर ऐप्लिकेशन इम्पोर्ट पर उसे दोबारा गणना करती है।
वर्टेक्स-सामान्य की अनुपस्थिति ज़्यादा दिलचस्प है। बिना उनके इम्पोर्टर अपने ख़ुद के बनाता है, जो वेल्डेड मेश के लिए साझा वर्टेक्स पर औसत निकालना है — यानी मॉडल smooth या flat shade होने के लिए तैयार आता है, जो चुनाव आपके ऐप्लिकेशन में रहता है, फ़ाइल में जड़ा नहीं होता।
दोनों तरह की फ़ाइलें बदलती हैं और फ़ाइल यह बताती नहीं कि कौन-सी है। आम टेस्ट — क्या फ़ाइल "solid" शब्द से शुरू होती है — ग़लत है, क्योंकि binary STL अपने अस्सी-बाइट हेडर में कुछ भी रख सकती है और कई लेखक वहाँ "solid" रख देते हैं।
भरोसेमंद टेस्ट अंकगणित है: binary STL ठीक उतनी ही 84 + 50n बाइट होती है जितनी उसके हेडर में दर्ज त्रिकोण-गिनती बताती है। यह हिसाब न मिले तो फ़ाइल text मानकर डिकोड होती है। जो फ़ाइल कोई भी नहीं — कटी-फटी, या नाम भर की STL — वह ख़ाली मेश देने की बजाय एक संदेश के साथ रुक जाती है।
दो असर उलटी दिशा में खींचते हैं। वेल्डिंग ज़्यादातर दोहराव हटाती है — आम मेश में हर वर्टेक्स पाँच-छह त्रिकोणों में साझा होता है। पाठ बचे हुए को फैलाता है — चार-बाइट का float दस से पंद्रह अक्षर का दशमलव बन जाता है।
नतीजा आमतौर पर उसी दायरे में रहता है, OBJ binary STL से थोड़ा आगे। यहाँ की मुफ़्त सीमा 100 MB है, जो क़रीब बीस लाख STL त्रिकोणों जितनी है। STL बहुत बड़ी हो तो बदलने से पहले घटाना बदलने के बाद घटाने से तेज़ है।
इम्पोर्ट पर दो सेटिंग जाँचने लायक़ हैं। ऊपरी अक्ष: OBJ का कोई रिवाज़ नहीं और Blender का इम्पोर्टर डिफ़ॉल्ट में Y-up लेता है, जबकि CAD या प्रिंटिंग वर्कफ़्लो की STL लगभग हमेशा Z-up होती है — तय न किया तो मॉडल मुँह के बल लेटा मिलेगा। स्केल: कोई फ़ॉर्मेट यूनिट घोषित नहीं करता।
इम्पोर्ट के बाद पहला काम है बहुत छोटी सीमा के साथ Merge By Distance चलाना, जो वह पकड़ती है जो छह-दशमलव वेल्डिंग ने नहीं पकड़ा क्योंकि मूल ज्यामिति सचमुच असहमत थी। फिर आँकड़े देखिए: अगर वर्टेक्स-गिनती फ़ेस-गिनती के तीन गुने के क़रीब है, तो वेल्डिंग असर नहीं कर पाई।
मेश वेल्डेड है और पूरी तरह त्रिकोणों की बनी हुई है, क्योंकि STL में यही कुछ था। चतुर्भुज और n-gon वापस नहीं पाए जा सकते — यह जानकारी कि कौन-से त्रिकोण जोड़े कभी चतुर्भुज थे, फ़ाइल में नहीं है। स्कल्प्टिंग, बूलियन क्रियाएँ और नापना सब त्रिकोणों पर ठीक काम करते हैं।
जो अच्छी तरह काम नहीं करता वह है सबडिविज़न सरफ़ेस मॉडलिंग, जो चतुर्भुज चाहती है। अगर इस मॉडल पर आगे काम करना है, तो रीटोपोलॉजी अगला ईमानदार क़दम है — Blender का Quadriflow Remesh या ZBrush का ZRemesher एक ही पास में चतुर्भुज-मेश दे देते हैं।
इसी ब्राउज़र टैब में, साधारी JavaScript से। कोई WebAssembly मॉड्यूल डाउनलोड नहीं होता, कुछ अपलोड नहीं होता, कोई खाता नहीं, कोई दैनिक सीमा नहीं। नेटवर्क टैब खोलकर और कुछ बदलकर इसे जाँचा जा सकता है।
STL अक्सर किसी और की डिज़ाइन होती है — किसी क्लाइंट का पुर्ज़ा, किसी सप्लायर की ज्यामिति, किसी समझौते के तहत कोई कंपोनेंट — और इस पन्ने पर मॉडलिंग का काम ठीक वही हालत है जहाँ यह सच होता है। ऐसा कन्वर्ज़न जो फ़ाइल कभी भेजता ही नहीं वह सवाल को टालता नहीं, जवाब देता है।
| STL | OBJ | |
|---|---|---|
| पूरा नाम | Stereolithography | Wavefront ऑब्जेक्ट |
| फ़ाइल एक्सटेंशन | .stl | .obj |
| मीडिया टाइप | model/stl | model/obj |
| पहली बार प्रकाशित | 1987 | 1992 |
| प्रकाशक | 3D Systems | Wavefront Technologies |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | 3MF, PLY | GLTF, PLY |
Blender STL और OBJ — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
दोनों का निशाना अलग काम है: STL का 3D प्रिंटिंग पर, OBJ का प्रोग्रामों के बीच डेटा ले जाना और एडिटिंग पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।
OBJ Wavefront Technologies का है और 1992 से चला आ रहा है। Blender, MeshLab और Maya इस फ़ॉर्मेट को पढ़ लेते है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
STL और OBJ सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ ज्यामिति। सामग्री, रंग, बनावट और एनिमेशन साथ नहीं जाते, और जो मॉडल कई बार रखा गया हो वह हर नक़ल के अपनी-अपनी जगह पर पक्की हो जाने के साथ लौटता है।
कन्वर्ज़न के लिए नहीं: वह उसी ब्राउज़र में होता है जो आपने पहले से खोल रखा है। नतीजा खोलने के लिए उसके बाद वही प्रोग्राम चाहिए जिससे आपका डिवाइस Wavefront Object आम तौर पर दिखाता है।