2011-07-19 20 views
5

में इलस्ट्रेटर शीर्ष परत बनाना जब मैं अपनी परत वाली एसवीजी फ़ाइलों को इलस्ट्रेटर में लोड करता हूं तो सभी परतें वैसे ही काम करती हैं जैसे उन्हें चाहिए लेकिन वे हमेशा एक नई परत के नीचे स्थित होते हैं; "परत 1" जिसे मैंने निर्दिष्ट नहीं किया था।एसवीजी

मैं एक एसवीजी कैसे बना सकता हूं जहां मेरी शीर्ष परत इलस्ट्रेटर में शीर्ष परत के रूप में भी समाप्त होती है?

+0

क्या आप इलस्ट्रेटर में अपना एसवीजी बना रहे हैं? क्योंकि, आप परतों को बदलने के लिए अन्यथा पाठ संपादक (यह केवल एक्सएमएल) में एसवीजी स्रोत संपादित कर सकते हैं। – allanberry

उत्तर

6
  1. इलस्ट्रेटर में एक फ़ाइल बनाएं जिसमें आपके जैसा संगठन हो।
  2. इलस्ट्रेटर से एसवीजी को "a.svg" के रूप में सहेजें।
  3. इलस्ट्रेटर में एसवीजी फ़ाइल को फिर से खोलें।
    अरे, मेरी सभी परतों परत 1 के तहत पुनः समूहित हो गई!
  4. संगठन को ठीक करें।
  5. "b.svg" के रूप में चेक किए गए विकल्प को "इलस्ट्रेटर संपादन क्षमताओं को संरक्षित करें" विकल्प के साथ इलस्ट्रेटर से एसवीजी सहेजें।
  6. इलस्ट्रेटर में एसवीजी फ़ाइल को फिर से खोलें।
    हाँ, परतों को संरक्षित किया गया था!
  7. डिफ a.svg और b.svg यह देखने के लिए कि अतिरिक्त मेटाडाटा इलस्ट्रेटर क्या बचा रहा है।
  8. इस डेटा को अपनी फ़ाइल में नकल करें।
    रो जब आप महसूस करते हैं कि समाधान एक विशाल स्वामित्व ब्लॉब है (<i:pgf> तत्व)।
  9. छोड़ दो और फैसला करें कि इससे वास्तव में कोई फर्क नहीं पड़ता।
+0

मैंने ब्लॉब-कोड देखा है लेकिन बेहतर समाधान की उम्मीद कर रहा था। समस्या यह है कि परतें मेरे वर्तमान प्रोजेक्ट में बहुत मायने रखती हैं लेकिन मुझे लगता है कि मुझे एक और तरीका खोजना होगा। वह "इलस्ट्रेटर संरक्षित करें ..." अतिरिक्त कोड इसके लायक नहीं है .. धन्यवाद! –

2

यह वास्तव में वास्तव में मेरे लिए कोई फर्क पड़ता है तो मैं रो रही बंद कर दिया, कुछ घंटे बिताए और इस समाधान पटकथा: https://github.com/JcBernack/IllustratorScripts/archive/master.zip

  • प्लेस "एसवीजी परतें ठीक करें" फ़ोल्डर में:

    • स्क्रिप्ट डाउनलोड मानक इलस्ट्रेटर स्क्रिप्ट फ़ोल्डर। जहां यह आपकी स्थापना और भाषा पर निर्भर करता है, मेरा है:
      सी: \ प्रोग्राम फ़ाइलें \ एडोब \ एडोब इलस्ट्रेटर सीएस 6 (64 बिट) \ प्रीसेट \ de_DE \ Skripten
    • इलस्ट्रेटर प्रारंभ करें और एसवीजी लोड करें जहां सभी वास्तविक परतें अब एक नए "परत 1" के भीतर समूह हैं।
    • फ़ाइल पर जाएं-> स्क्रिप्ट-> एसवीजी परतों को ठीक करें-> FixSvgLayers
    • हाँ! सभी समूह अब वास्तविक परतें हैं और "परत 1" अच्छे के लिए चला गया है।

    थोड़ा अधिक जानकारी:

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

    एसवीजी खोलते समय सभी वास्तविक परतें नए "परत 1" के भीतर समूह होती हैं। इन्हें अस्पष्टता के बिना वापस परिवर्तित किया जा सकता है। उप-परत समस्याग्रस्त हैं, क्योंकि वास्तविक समूहों को समूहों से अलग करने के लिए कोई जानकारी नहीं है जो उप-परतें होनी चाहिए (अगर कृपया मुझे बताएं!)। एक कामकाज के रूप में मेरी स्क्रिप्ट एक रिकर्सन गहराई के लिए संकेत देती है और सभी गहराई में सभी समूहों को (उप-) परतों में परिवर्तित करती है।

    मेरे मामले में मेरे पास तीन परतें थीं, जहां उनमें से एक अधिक उप-परतों के लिए एक कंटेनर था। मूल परत संरचना वापस पाने के लिए मैं 0 की गहराई के साथ FixSvgLayers मार डाला, फिर की गहराई के साथ कंटेनर परत और मार डाला "GroupsToLayers" चयनित 0.

    यदि सब तीन परतों "कंटेनर" एक साथ FixSvgLayers को क्रियान्वित करने -layers थे सही संरचना वापस पाने के लिए 1 की गहराई पर्याप्त होगी।

    यदि आप नहीं चाहते हैं कि कोई समूह और प्रत्येक समूह को (उप-) परत में परिवर्तित किया जाना चाहिए तो रिकर्सन गहराई के रूप में पर्याप्त संख्या में प्रवेश करें।