خلاصه (Summary)

OP Find DAT سلسله‌مراتب کامپوننت‌ها (Component Hierarchy) را از یک کامپوننت مشخص شروع کرده و تمام نودهای داخل آن کامپوننت را بررسی می‌کند، سپس جدولی خروجی می‌دهد که برای هر نودی که با معیارهای انتخاب‌شده توسط کاربر مطابقت داشته باشد، یک ردیف ایجاد می‌شود.

برای مثال، این معیارها می‌توانند شامل موارد زیر باشند:

  • تمام Ramp TOPها

  • تمام نودهایی که نامشان با «wave» شروع می‌شود

  • تمام نودهایی که پارامتر Clone آن‌ها روی «master1» تنظیم شده است

  • تمام کامپوننت‌های Geometry که تگی با نام «emitter» دارند


معیارها می‌توانند به‌گونه‌ای محدود شوند که فقط نودهای متعلق به خانواده‌های خاص (Families) یا نوع خاصی از اپراتورها (Operator Types) را شامل شوند.
همچنین امکان فیلتر کردن بر اساس موارد زیر وجود دارد:

  • تطابق مسیر (Path)

  • پارامترهایی با مقادیر مشخص (چه مقدار ثابت و چه اکسپرشن)

  • کامنت‌ها

  • تگ‌ها

  • یا محتوای یک DAT که شامل رشته‌های متنی خاصی باشد


همچنین می‌توانید تعیین کنید که DAT فقط تا عمق مشخصی از سلسله‌مراتب کامپوننت بررسی انجام دهد (مثلاً فقط ۲ سطح پایین‌تر)، یا بدون هیچ محدودیتی کل عمق را جستجو کند.


معیارها می‌توانند حساس به حروف بزرگ و کوچک (Case Sensitive) باشند یا نباشند، اما این تنظیم به‌صورت کلی روی تمام معیارهای OP Find DAT اعمال می‌شود.


علاوه بر این، می‌توانید برخی نودها را با استفاده از معیارهای پیشرفته‌تر حذف کنید؛ به این صورت که در یک Callback DAT متصل، مقدار True یا False بازگردانده شود.


با استفاده از منوی Combine Filters (گزینه‌های Any یا All، که حالت پیش‌فرض All است)، می‌توانید فیلترها را به‌صورت:

  • «یا» (OR)

  • «و» (AND)

با هم ترکیب کنید.


OP Find DAT همچنین می‌تواند یک DAT اختیاری را به‌عنوان ورودی بپذیرد که شامل لیستی از اپراتورها است (مثلاً خروجی یک OP Find DAT دیگر).
از این قابلیت می‌توان برای زنجیره‌کردن فیلترها استفاده کرد.


ستون‌های خروجی (Output Columns)

مجموعه‌ای متنوع از ستون‌ها قابل انتخاب هستند، از جمله:

  • نام (Name)

  • شناسه (ID)

  • مسیر (Path)

  • نوع اپراتور (Type)

  • تگ‌ها (Tags)

شناسه (ID) یک عدد صحیح است که به‌صورت یکتا به هر نود اختصاص داده می‌شود و در طول اجرای TouchDesigner تغییر نمی‌کند.


همچنین می‌توانید ستون‌های سفارشی ایجاد کنید؛ به این صورت که:

  • نام ستون‌ها را در Callback DAT تعریف کنید

  • و مقادیر سلول‌ها را از طریق یک تابع دیگر در Callback DAT پر کنید

برای مثال، می‌توانید ستونی ایجاد کنید که مقدار پارامتر tx هر نود را نمایش دهد.


کنترل زمان Cook شدن

می‌توانید تعیین کنید OP Find DAT چه زمانی Cook شود.
به‌صورت پیش‌فرض، هر زمان که هر نودی در سلسله‌مراتب مشخص‌شده تغییر کند، DAT Cook می‌شود.

با استفاده از پارامتر Active Cook می‌توانید:

  • آن را مجبور کنید هر فریم Cook شود

  • یا Cook شدن را کاملاً غیرفعال کنید

همچنین می‌توانید با زدن Pulse در Active Cook، DAT را فقط یک‌بار Cook کنید،
یا معادل آن را با دستور پایتون زیر انجام دهید:

node.cookpulse.pulse()

استفاده از DAT ورودی به‌جای مسیر کامپوننت

به‌جای مشخص‌کردن مسیر یک کامپوننت برای شروع جستجو، OP Find DAT می‌تواند یک DAT ورودی دریافت کند که شامل لیستی از مسیر نودها باشد و سپس نتایج حاصل از هر خط ورودی را در خروجی ادغام کند.

برای استفاده از این روش، DAT ورودی باید ستون اولی به نام ID (شناسه نود) داشته باشد.
این شناسه می‌تواند توسط یک OP Find DAT دیگر با فعال‌بودن ستون ID تولید شود.


مثال کاربردی

فرض کنید:

  1. ابتدا تمام کامپوننت‌هایی که Panel هستند را لیست می‌کنید

  2. سپس آن‌ها را بر اساس Type یا پارامتر Clone به گروه‌های کوچک‌تر تقسیم می‌کنید

در این حالت:

  • OP Find DAT اول، یک سلسله‌مراتب بسیار بزرگ را به مجموعه‌ای کوچک‌تر محدود می‌کند

  • OP Find DATهای بعدی روی مجموعه‌ای ساده‌تر کار می‌کنند

  • این کار باعث کاهش شدید بررسی‌های اضافی و Cookهای غیرضروری می‌شود


برای مثال‌ها به مسیر زیر مراجعه کنید:
Help → Operator Snippets

همچنین ببینید: Script DAT


محتویات (Contents)

  1. Summary
     1.1 Output Columns

  2. Parameters – Component Page

  3. Parameters – Families Page

  4. Parameters – Filters Page

  5. Parameters – Columns Page

  6. Parameters – Callbacks Page

  7. Parameters – Common Page

  8. Operator Inputs


Parameters – Component Page

Active Cook (activecook)
تعیین می‌کند DAT چه زمانی Cook شود.

Cook Pulse (cookpulse)
به‌صورت دستی OP Find DAT را مجبور به آپدیت می‌کند.

Component (component)
مسیر کامپوننتی که جستجو از آن آغاز می‌شود.

Include Component (includecomponent)
خود کامپوننت شروع جستجو را نیز در نتایج لحاظ می‌کند.

Include Wire Hierarchy (includewired)
تمام کامپوننت‌هایی که از طریق Wire به کامپوننت شروع متصل هستند نیز در جستجو لحاظ می‌شوند.

Minimum Depth (mindepth)
حداقل عمق زیرکامپوننت‌هایی که باید به‌صورت بازگشتی جستجو شوند.

Limit Max Depth (limitmaxdepth)
پارامتر Maximum Depth را فعال می‌کند تا عمق جستجو محدود شود.
در صورت غیرفعال‌بودن، تمام زیرشبکه‌ها جستجو می‌شوند.

Maximum Depth (maxdepth)
حداکثر عمق جستجوی بازگشتی در زیرکامپوننت‌ها.

Limit Max Operators (limitmaxops)
تعداد کل اپراتورهایی که در جستجو بررسی می‌شوند را محدود می‌کند.

Maximum Operators (maxops)
حداکثر تعداد اپراتورهای قابل بررسی.


Parameters – Families Page

این صفحه تعیین می‌کند کدام خانواده‌های اپراتوری در جستجو لحاظ شوند.

Object COMPs (objects)
شامل Object COMPها (مانند Geo COMP).

Panel COMPs (panels)
شامل Panel COMPها (مانند Container COMP).

Other COMPs (other)
شامل سایر COMPها (مانند Base COMP).

TOPs (tops)
شامل اپراتورهای خانواده TOP.

CHOPs (chops)
شامل اپراتورهای خانواده CHOP.

SOPs (sops)
شامل اپراتورهای خانواده SOP.

MATs (mats)
شامل اپراتورهای خانواده MAT.

DATs (dats)
شامل اپراتورهای خانواده DAT.


Parameters – Filters Page

Case Sensitive (casesensitive)
فعال‌سازی حساسیت به حروف بزرگ و کوچک برای تمام تطبیق‌ها.

Combine Filters (combinefilters)
ترکیب فیلترها با حالت:

  • All (همه)

  • Any (حداقل یکی)

  • Custom (ترکیب سفارشی با AND / OR)

Custom Combine (customcombine)
تعیین فیلترهایی که در ترکیب سفارشی استفاده می‌شوند.

Name (namefilter)
فیلتر بر اساس نام اپراتور (مثل wave1، wave2).

Type (typefilter)
فیلتر بر اساس نوع اپراتور (مثل waveCHOP یا panelexecuteDAT).

Parent Shortcut (parentshortcutfilter)
فقط اپراتورهایی که Parent Shortcut مشخص‌شده را دارند.

OP Shortcut (opshortcutfilter)
فقط اپراتورهایی که OP Shortcut مشخص‌شده را دارند.

Path (pathfilter)
مسیر خاصی که اپراتور باید در آن قرار داشته باشد.

Parent Path (relative) (parentfilter)
مسیر نسبی والد اپراتورها.

Exclude Path (relative) (excludefilter)
مسیر نسبی‌ای که باید از جستجو حذف شود.

Wire Path (wirepathfilter)
فیلتر بر اساس مسیر سیم‌کشی.

Comment (commentfilter)
فقط اپراتورهایی که کامنت مشخص‌شده را دارند.

Tags (tagsfilter)
فقط اپراتورهایی که تگ‌های مشخص‌شده را دارند (چند تگ با فاصله).

DAT Text (textfilter)
برای DATها، فقط آن‌هایی که محتوایشان شامل رشته مشخص‌شده است.

Par Name (parnamefilter)
فقط اپراتورهایی که پارامتر با نام مشخص دارند.

Par Value (parvaluefilter)
فقط اپراتورهایی که مقدار پارامتر مشخص‌شده را دارند.

Par Expression (parexpressionfilter)
فقط اپراتورهایی که اکسپرشن پارامترشان مطابق رشته مشخص‌شده است.

Par Non-Default Only (parnondefaultonly)
فقط پارامترهایی که مقدارشان غیرپیش‌فرض است.


Parameters – Columns Page

Use Legacy Columns (legacycols)
فقط زمانی استفاده شود که انتظار نام ستون‌های قدیمی وجود دارد.

ID (idcol)
شناسه یکتای عددی نود در این پروسه.

Name (namecol)
نام اپراتور.

Type (typecol)
نوع اپراتور (مثلاً rampTOP).

Parent Shortcut (parentshortcutcol)
Parent Shortcut اپراتور.

OP Shortcut (opshortcutcol)
OP Shortcut اپراتور.

Path (pathcol)
مسیر کامل اپراتور.

Relative Path (relpathcol)
مسیر نسبی نسبت به ریشه جستجو.

Parent Path (parentpath)
مسیر والد.

Wire Path (wirepathcol)
مسیر سیم‌کشی.

Depth (depthcol)
عمق نسبی اپراتور نسبت به ریشه جستجو.

Cook Times (cooktimescol)
زمان Cook اپراتور.

Tags (tagscol)
تگ‌های اپراتور.

General Properties (genprop)
شامل نام، ID، COMP بودن، موقعیت نود، اندازه نود و Dock ID.

CPU Time (cputime)
زمان پردازش CPU.

GPU Time (gputime)
زمان پردازش GPU.

CPU Memory (cpumem)
حافظه مصرفی CPU.

GPU Memory (gpumem)
حافظه مصرفی GPU.

Children (children)
فرزندان اپراتور.


Parameters – Callbacks Page

Callbacks DAT (callbacks)
مسیر DAT شامل Callbackها.
(برای نحوه استفاده به opfindDAT_Class مراجعه کنید)

Convert Bool to Int (convertbool)
مقادیر بولی به‌صورت 1 یا 0 نمایش داده می‌شوند.
در حالت خاموش، True و False خواهند بود.

Convert None to Empty (convertnone)
مقادیر None به مقدار خالی تبدیل می‌شوند.


Parameters – Common Page

Language (language)
انتخاب زبان اسکریپت.

Edit/View Extension (extension)
پسوند فایل برای ویرایشگرهای خارجی.

Custom Extension (customext)
پسوند سفارشی.

Word Wrap (wordwrap)
فعال‌سازی Word Wrap در نمایش نود.