Q100291: ஒரு OpScript-க்கான CEL அறிக்கைகளைச் சேகரிக்கும் போது செயல்திறனை எவ்வாறு மேம்படுத்துவது

சுருக்கம்

இந்தக் கட்டுரை , ஒரு OpScript முனையின் Lua ஸ்கிரிப்ட்டிற்குள் மதிப்பிடப்பட்ட CEL அறிக்கையின் (ஒரு சேகரிப்பு செயல்பாடு) தற்காலிக சேமிப்பு முடிவுகளை எவ்வாறு பயன்படுத்துவது என்பதை விளக்குகிறது.

இது OpScript முனையில் ஒரு ஸ்கிரிப்ட் பொத்தானின் பைதான் ஸ்கிரிப்டை இயக்குவதன் மூலமும், அதன் விளைவாக வரும் காட்சி வரைபட இருப்பிட பாதைகளை ஒரு பயனர் அளவுருவில் தற்காலிகமாகச் சேமிப்பதன் மூலமும் அடையப்படுகிறது, இதனால் அவை OpScript முனையின் Lua ஸ்கிரிப்டிலேயே பயன்படுத்தக் கிடைக்கும்.

இது பயனர்கள் தங்களுக்கு வசதியாக இருக்கும்போது 'சேகரிப்பு' செயல்பாட்டைச் செய்ய அனுமதிக்கிறது , மேலும் OpScript முனை சமைக்கப்படும் போதெல்லாம் CEL அறிக்கையை முழு காட்சி வரைபடத்திற்கும் பொருத்த வேண்டியிருப்பதை விட, தற்காலிக சேமிப்பு முடிவுகளில் OpScript Lua ஸ்கிரிப்ட் வேலை செய்ய வைக்கிறது.

அத்தகைய ஸ்கிரிப்டை எப்படி, ஏன் அமைப்பது என்பது பற்றிய தகவலுக்கு தொடர்ந்து படியுங்கள்.

மேலும் தகவல்

பயனர்கள் Lua ஸ்கிரிப்ட்டிற்குள் ஒரு OpScript முனையில் ஒரு சேகரிப்பு செயல்பாட்டின் முடிவுகளைப் பயன்படுத்த விரும்பலாம், எடுத்துக்காட்டாக, ஒரு காட்சி வரைபட பண்புக்கூறின் கீழ் விளைந்த இருப்பிட பாதைகளைச் சேமிக்க அல்லது Lua ஸ்கிரிப்ட்டில் செயல்பட அவற்றைக் கிடைக்கச் செய்ய.

விரும்பத்தகாத அணுகுமுறை

கொடுக்கப்பட்ட CEL அறிக்கையுடன் இருப்பிடங்கள் பொருந்துமா என்பதைத் தீர்மானிக்க, அப்ஸ்ட்ரீம் செய்முறை ஒவ்வொரு முறையும் மாற்றியமைக்கப்படும்போது, காட்சியின் ஒரு பகுதியை, முழுவதுமாக இல்லாவிட்டாலும், சமைக்க வேண்டியிருப்பதால், ஒரு OpScript-க்குள் CEL அறிக்கைகளை மதிப்பிடுவதன் முடிவுகளைச் சேகரிப்பது விரும்பத்தகாதது.

ஒரு பெரிய காட்சி வரைபடத்துடன் கூடிய காட்சியில் பணிபுரியும் போது இது மிகவும் கணக்கீட்டு ரீதியாக விலை உயர்ந்ததாகவும் நீண்ட செயல்பாடாகவும் இருக்கலாம். இது ஒரு ஊடாடும் சூழலில் மிகவும் விரும்பத்தகாதது, மேலும் Katana ஒத்திவைக்கப்பட்ட மதிப்பீட்டு மாதிரிக்கு எதிரானது.

பரிந்துரைக்கப்பட்ட அணுகுமுறை

CEL அறிக்கைகளை மதிப்பிடுவதன் முடிவுகளைச் சேகரிக்க, ஒரு முறை செயல்படுத்தப்படும் பயனர் தூண்டப்பட்ட ஸ்கிரிப்டைப் பயன்படுத்துவது ஒரு சிறந்த வழி. இந்த ஸ்கிரிப்ட் ஒரு முறை மட்டுமே பயன்படுத்தப்படும் சமையல்காரரில் காட்சியைக் கடந்து, பின்னர் முனை அளவுருக்களை நிரப்பப் பயன்படுத்தக்கூடிய தகவல்களைச் சேகரிக்கிறது. ஏதேனும் தொடர்புடைய இடங்கள் மாறினால் திட்டத்தைப் புதுப்பித்த நிலையில் வைத்திருக்க இது மீண்டும் மீண்டும் செய்யப்பட வேண்டும்.

ஒரு CEL கூற்றுடன் பொருந்தக்கூடிய ஏற்கனவே உள்ள இடங்களின் தொகுப்பை மீட்டெடுக்க, CEL சேகரிப்பு செயல்பாட்டைப் பயன்படுத்தவும். ஸ்கிரிப்ட் பொத்தான் வழியாக செயல்படுத்தப்படும் ஸ்கிரிப்டில், CollectAndSelectInScenegraph() Widgets தொகுதியின் ஒரு பகுதியாக இருக்கும் CollectAndSelectInScenegraph() செயல்பாட்டைப் பயன்படுத்தலாம்:

collector = Widgets.CollectAndSelectInScenegraph(celStatement, traversalRootLocationPath)
matchedLocationPaths = collector.collectAndSelect(select=False, node=myNode)

எங்கே:

  • celStatement என்பது மதிப்பீடு செய்யப்பட வேண்டிய வெளிப்பாடு ஆகும்.
  • traversalRootLocationPath என்பது மதிப்பீடு தொடங்க வேண்டிய காட்சி வரைபட இருப்பிடப் பாதையாகும். இது /root அல்லது வேறு எந்த குறிப்பிட்ட காட்சி வரைபட இருப்பிடமாக இருக்கலாம், எடுத்துக்காட்டாக /root/world/geo இந்தக் கிளையில் உள்ள குழந்தை இருப்பிடங்கள் மட்டுமே CEL அறிக்கையுடன் பொருந்த வேண்டும் என்றால்.

உதாரணக் காட்சி

இணைக்கப்பட்ட எடுத்துக்காட்டு காட்சியில் இந்த உத்தியின் செயல்படுத்தலை நீங்கள் காணலாம். இந்தக் காட்சி 'OpScript இல் வடிவியலை உருவாக்குதல்' எடுத்துக்காட்டு திட்டத்திலிருந்து t he L- அமைப்பைப் பயன்படுத்துகிறது. Parameters தாவலின் மேலே உள்ள wrench ஐகானைக் கிளிக் செய்து 'Edit User Parameters' என்பதைக் கிளிக் செய்து, பின்னர் 'CollectGeometryLocations' பொத்தானுக்கு மேலே உள்ள wrench ஐகானைக் கிளிக் செய்வதன் மூலம் CollectAndSet OpScript முனையில் ஸ்கிரிப்டை நீங்கள் ஆய்வு செய்யலாம் > 'Widget Options…' .

CEL_Statements_OpScript.png

CEL_Statements_OpScript_2.png

CEL_Statements_OpScript_3.png

CollectAndSelect OpScript முனையில் உள்ள பயனர் அளவுருக்கள் இந்த படிகளைப் பின்பற்றி அமைக்கப்பட்டன:

  1. ஒரு OpScript முனையை உருவாக்கி, அதன் அளவுருக்களை Parameters தாவலில் திறக்க e ஐ அழுத்தவும்.
  2. அளவுருக்கள் தாவலின் மேலே உள்ள திருக்குறடு ஐகானைக் கிளிக் செய்து, பின்னர் 'பயனர் அளவுருக்களைத் திருத்து' என்பதைக் கிளிக் செய்யவும். இது பயனர் எனப் பெயரிடப்பட்ட முனைக்கு ஒரு புதிய குழு அளவுருவைச் சேர்க்கிறது .

    CEL_Statements_OpScript_4.png

  3. பயனர் குழு அளவுருவில் அளவுருக்களைச் சேர்க்க 'சேர்' என்பதைக் கிளிக் செய்து, அளவுரு வகையாக 'சர வரிசை'யைத் தேர்வுசெய்யவும். பொருந்திய இருப்பிடப் பாதைகளை நாம் சேமிக்கும் அளவுருவாக இது இருக்கும்.

    CEL_Statements_OpScript_5.png

  4. புதிய அளவுருவுக்கு மேலே உள்ள திருக்கி ஐகானைக் கிளிக் செய்து 'அளவுருவை மறுபெயரிடு' என்பதைக் கிளிக் செய்யவும். இது ஒரு உரையாடலைத் திறக்கும், அங்கு நீங்கள் ஒரு புதிய பெயரை உள்ளிடலாம். அளவுருவை 'matchedLocationPaths' என மறுபெயரிடுங்கள்.

    CEL_Statements_OpScript_6.png

  5. மீண்டும் 'சேர்' என்பதைக் கிளிக் செய்து, இந்த முறை 'பட்டன்' என்பதை அளவுரு வகையாகத் தேர்ந்தெடுக்கவும்.
  6. புதிதாக உருவாக்கப்பட்ட பொத்தானுக்கு மேலே உள்ள ரெஞ்ச் ஐகானைக் கிளிக் செய்து, 'விட்ஜெட் விருப்பங்கள்...' என்பதைத் தேர்ந்தெடுக்கவும். இது ஒரு உரையாடலைத் திறக்கும், அங்கு நீங்கள் பொத்தான் உரையை விளக்கமான ஒன்றிற்கு மாற்றலாம், எடுத்துக்காட்டாக 'CollectGeometryLocations'. பொத்தானைக் கிளிக் செய்யும் போது செயல்படுத்தப்பட வேண்டிய பைதான் கட்டளைகளைச் சேர்க்கக்கூடிய ஸ்கிரிப்ட் புலத்தையும் உரையாடல் வழங்குகிறது.
  7. பின்வரும் பைதான் கட்டளைகளை ஸ்கிரிப்ட் புலத்தில் நகலெடுத்து ஒட்டவும்:

    collector = Widgets.CollectAndSelectInScenegraph('//*{hasattr("geometry")}', '/root/world/geo')
    # This command will match all scene graph locations underneath /root/world/geo that have a ‘geometry’ attribute
    paths = collector.collectAndSelect(select=False, node=node)
    # The 'node' variable is this parameter's node
    பொருந்திய இருப்பிட பாதைகளை முனையின் matchedLocationPaths பயனர் அளவுருவில் சேமிக்க, ஸ்கிரிப்ட்டில் பின்வரும் கட்டளைகளைச் சேர்க்கவும்:

    paramName = 'user.matchedLocationPaths'
    param = node.getParameter(paramName)
    element = param.buildXmlIO(True)
    element.removeAllChildren()
    for path in paths:
       child = element.addChild(PyXmlIO.Element("string_parameter"))
       child.setAttr("name", "i%i" % (len(element) - 1))
       child.setAttr("value", path)
    element.setAttr("size", len(element))
    param.parseXmlIO(element)

பொத்தானைக் கிளிக் செய்வதன் மூலம் ஸ்கிரிப்டை இயக்குவது, காட்சி கடந்து செல்லும்போதும், இடங்கள் சமைக்கப்படும்போதும் ஒரு மாதிரி உரையாடலைத் திறக்கும், இது செயல்பாட்டை ரத்து செய்வதற்கான விருப்பத்தை உங்களுக்கு வழங்கும்.

collectAndSelect collectAndSelect() செயல்பாடு, ஒரு OpScript முனையில் பயனர் அளவுருவாக அமைக்கக்கூடிய இருப்பிட பாதைகளின் பட்டியலை வழங்கும், இதனால் Lua ஸ்கிரிப்டில் ஒரு பயனராக Op Arg ஐப் பயன்படுத்த அணுக முடியும், எடுத்துக்காட்டாக:

CEL_Statements_OpScript_7.png

மேலும் படிக்க

CEL தொடரியல் பற்றிய கூடுதல் தகவலுக்கு, Katana டெவலப்பர் வழிகாட்டியின் CEL குறிப்புப் பகுதியைப் பார்க்கவும் .

பயனர் opArgs ஐ அணுகுவது பற்றிய கூடுதல் விவரங்களுக்கு, பைதான் ஸ்கிரிப்ட்டில் உள்ள தொகுப்பைப் போல, ஒரு OpScript முனையின் Lua ஸ்கிரிப்டில் Katana குக் இடைமுகத்தில் (OpScript) கட்டானா டெவலப்பர் வழிகாட்டியைப் பார்க்கவும் .

இதில் ஏதேனும் சிக்கல்கள் ஏற்பட்டால், தயவுசெய்து ஒரு ஆதரவு டிக்கெட்டைத் திறந்து, பிரச்சனை மற்றும் இதுவரை நீங்கள் எடுத்துள்ள சரிசெய்தல் நடவடிக்கைகள் குறித்து எங்களுக்குத் தெரியப்படுத்துங்கள்.

ஆதரவு டிக்கெட்டை எவ்வாறு திறப்பது என்பது பற்றிய கூடுதல் தகவலுக்கு, தயவுசெய்து Q100064 ஐப் பார்க்கவும்: ஆதரவு டிக்கெட்டை எவ்வாறு திரட்டுவது .

இணைப்புகள்

We're sorry to hear that

Please tell us why