Q100136: प्रक्रियात्मक वर्कफ़्लो का उपयोग करते हुए OpScript के माध्यम से दृश्य ग्राफ़ स्थानों के बीच विशेषताओं की प्रतिलिपि कैसे बनाएँ

सारांश

यह आलेख वर्णन करता है कि दृश्य ग्राफ़ स्थानों के बीच विशेषताओं की प्रतिलिपि बनाने के लिए OpScript नोड का उपयोग कैसे किया जाए।

अधिक जानकारी

Katana में काम करते समय, SetAttribute नोड का उपयोग करके स्थानों पर विशेषताएँ आसानी से सेट की जा सकती हैं। हालाँकि, यदि आप किसी स्थान पर सेट की गई विशेषता को किसी अन्य स्थान पर कॉपी करना चाहते हैं, तो आप OpScript नोड और कोड की कुछ पंक्तियों का उपयोग करके ऐसा कर सकते हैं।

यद्यपि नाम से समान कार्य का संकेत मिलता है, फिर भी AttributeCopy नोड का उपयोग इस उद्देश्य के लिए नहीं किया जा सकता।

AttributeCopy fromRoot स्थान पर copyFrom दृश्य और toRoot स्थान पर इनपुट दृश्य को पार करता है। इन स्थानों से आगे, यह समान पदानुक्रम और स्थान नाम ढूँढ़ने की अपेक्षा करता है।
AttrCopySS.png
इसका मतलब है कि जिन दो स्थानों के बीच आप विशेषताएँ कॉपी करना चाहते हैं, उनके सभी बच्चों की पदानुक्रमिक संरचना और नाम समान होने चाहिए। इससे यह सुनिश्चित होता है कि AttributeCopy नोड सही विशेषताओं को सही स्थानों पर कॉपी करेगा।
नोड इस तरह काम करता है क्योंकि इसे विभिन्न नोड ग्राफ़ में दृश्यों के बीच विशेषताओं की प्रतिलिपि बनाने के लिए डिज़ाइन किया गया है, जिन्हें संशोधित किया गया है, लेकिन समान परिसंपत्तियों का उपयोग करते हैं और इसलिए उनके दृश्य ग्राफ़ पदानुक्रम और स्थान नाम समान हैं।
एक ही दृश्य ग्राफ़ में स्थानों के बीच विशेषताओं की प्रतिलिपि बनाने के लिए, आप OpScript का उपयोग कर सकते हैं जो CopyAttr() कमांड का उपयोग करता है। आप इसे निम्न प्रकार से कर सकते हैं:
1) एक OpScript नोड बनाएं और इसके applyWhere पैरामीटर को at locations matching CEL सेट करें।
2) attrFrom , attrTo और sourceLocation नामक तीन उपयोगकर्ता पैरामीटर जोड़ें। किसी नोड में उपयोगकर्ता पैरामीटर जोड़ने के निर्देशों के लिए, कृपया Katana उपयोगकर्ता मार्गदर्शिका में उपयोगकर्ता पैरामीटर जोड़ना अनुभाग देखें।
3) sourceLocation पैरामीटर का मान उस दृश्य ग्राफ स्थान का पथ होना चाहिए जहां से आप विशेषता की प्रतिलिपि बनाना चाहते हैं।
4) CEL कथन उस दृश्य ग्राफ स्थान का पथ होना चाहिए जहां आप विशेषता को कॉपी करना चाहते हैं।
5) attrFrom टेक्स्ट फ़ील्ड में उस विशेषता का नाम लिखें जिसे आप कॉपी करना चाहते हैं।
6) उस विशेषता का नाम जोड़ें जिसे आप कॉपी करना चाहते हैं attrTo पैरामीटर मान के रूप में
7) OpScript नोड के Script पैरामीटर में निम्नलिखित lua कोड जोड़ें:
 local attrFrom = Interface.GetOpArg("user.attrFrom"):getValue()
local attrTo = Interface.GetOpArg("user.attrTo"):getValue()
local sourceLocation = Interface.GetOpArg("user.sourceLocation"):getValue()
Interface.CopyAttr(attrTo, attrFrom, true, sourceLocation)

कृपया ध्यान दें कि यह केवल स्थानीय विशेषताओं के स्रोत के रूप में ही काम करेगा। यदि आप जिस विशेषता को कॉपी करना चाहते हैं वह किसी मूल स्थान से विरासत में मिली है, तो आपको अंतिम पंक्ति को इस प्रकार संशोधित करना होगा:
 Interface.SetAttr(attrTo, Interface.GetGlobalAttr(attrFrom, sourceLocation))

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि