> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/almyzat-alreysyh/create-plugins-with-designer-window.md).

# إنشاء الإضافات (Plugins)

طور وحدات مخصصة باستخدام قوة Python.

![](https://1711505668-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoktfDevppndJ75rImRz1%2Fuploads%2Fgit-blob-44474fba6da83e832204ad7cf690a9888f02e681%2Ffirst-look.jpg?alt=media)

Designer Window هو أسرع طريق من "أحتاج إلى عقدة خاصة" → "أستطيع استخدامها في المشهد".

تكتب (أو تولد) فئة Python صغيرة (كـ `Block`)، تضغط على **CREATE BLOCK**، وتظهر في قائمة **Custom Blocks**.

{% hint style="info" %}
إذا أحببت البدء من قالب جاهز يعمل، افتح [Coding Reference](/arabic/almyzat-alreysyh/create-plugins-with-designer-window/coding-reference.md) وانسخ عينة الـ block.
{% endhint %}

### بداية سريعة <a href="#generate-block-script-button" id="generate-block-script-button"></a>

اتبع هذه الخطوات مرة واحدة، ثم عُد لاستكشاف التفاصيل.

![](https://1711505668-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoktfDevppndJ75rImRz1%2Fuploads%2Fgit-blob-56906816ac8adbc6b2d482daa0fbcfb8967deee1%2Fdesigner-window-how-to-open.jpg?alt=media)

1. افتح **Designer Window**.
2. احتفظ بالسكريبت الافتراضي، أو الصق سكريبتك الخاص أو اطلب من وكيل الذكاء الاصطناعي توليده.
3. تأكد أن السكريبت ينتهي بـ `add_block(...)`.
4. اضغط **CREATE BLOCK**.
5. ابحث عن البلوك في قائمة **Custom Blocks** واسحبه إلى المشهد.

{% hint style="success" %}
نصيحة: اجعل أسماء المقابس (sockets) ثابتة. هذا يجعل تحديث البلوك أكثر سلاسة.
{% endhint %}

### محرر الكود <a href="#code-editor" id="code-editor"></a>

منطقة المحرر الكبيرة هي مصدر الحقيقة لبلوكك.

يجب أن يتضمن سكريبتك (على الأقل):

* `from studio.custom_block import *`
* فئة ترث من `Block`
* `op_code` مطابق
* السطر النهائي `add_block(MyBlock.op_code, MyBlock)`

{% hint style="warning" %}
عند الإنشاء، يقوم AugeLab Studio بتوحيد المسافات البادئة عن طريق استبدال التاب بمسافات طولها 4 قبل الحفظ.
{% endhint %}

### مساعد الذكاء الاصطناعي <a href="#parameter-settings-section" id="parameter-settings-section"></a>

![](https://1711505668-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoktfDevppndJ75rImRz1%2Fuploads%2Fgit-blob-f0b6c5460a9e602ac38f4cf1b57c4123d25620c0%2Fprompt.jpg?alt=media)

أسفل Designer Window يمكنك:

* كتابة موجه (مثال: “Write a block that converts a BGR image to grayscale”)
  * كن وصفياً للحصول على أفضل النتائج.
  * حتى الآن، مساعد البلوكات المخصصة مجاني للاستخدام.
* اختيار نموذج من القائمة المنسدلة
* الضغط على **Submit** لتوليد الكود في المحرر

هذا مخصص لمساعدتك على البدء بسرعة. أنت دائماً تتحكم — راجع وحرّر الكود قبل الضغط على **CREATE BLOCK**.

{% hint style="info" %}
وكيل الذكاء الاصطناعي يتذكر مطالباتك السابقة، يمكنك طلب تحسينات أو تغييرات.
{% endhint %}

{% hint style="warning" %}
ميزة الذكاء الاصطناعي قد تكون غير متوفرة حسب الترخيص أو الاتصال أو حالة الخادم.
{% endhint %}

### تحديث بلوك موجود <a href="#block-configuration" id="block-configuration"></a>

عند الضغط على **CREATE BLOCK** مرة أخرى:

* يتم استبدال الملف.
* يتم تحديث الإدخال في قائمة **Custom Blocks**.
* يحاول Studio استبدالاً آمناً قدر الإمكان في المشاهد المفتوحة (يحاول الحفاظ على الاتصالات).

{% hint style="info" %}
إذا قمت بإعادة تسمية المقابس، قد يعيد Studio الاتصال حسب الفهرس كخيار احتياطي. لهذا السبب تهم ثبات أسماء المقابس.
{% endhint %}

<details>

<summary><strong>متقدم: ماذا يفعل CREATE BLOCK فعلياً</strong></summary>

* يقوم Studio بالبحث عن أول فئة ترث من `Block` ويأخذ اسم الفئة كاسم البلوك.
* يُحفظ سكريبتك كـ `<BlockName>.py` تحت مجلد Marketplace الخاص بالـ custom blocks.
* يستورد Studio `custom_blocks.<BlockName>` وينشئ منه مثيلاً مرةً واحدة للتحقق منه.
* إذا بدا كل شيء سليماً، يصبح البلوك متاحاً في قائمة **Custom Blocks**.

{% hint style="info" %}
موقع الملف: `.../AugeLab Studio/marketplace/custom_blocks/<BlockName>.py`
{% endhint %}

{% hint style="warning" %}
إذا فشل الاستيراد/التحقق، يعرض Studio الخطأ ويزيل الملف. صحح السكريبت وحاول مجدداً.
{% endhint %}

</details>

### إعادة تحميل البلوكات في Designer Window <a href="#reloading-blocks-into-designer-window" id="reloading-blocks-into-designer-window"></a>

لتحرير بلوك موجود، انقر بزر الفأرة الأيمن على اسمه في قائمة **Custom Blocks** واختر **Load into Designer Window**.

{% hint style="warning" %}
تحميل بلوك إلى Designer Window يعمل فقط على السكريبتات القابلة للتحرير للمستخدم (`.py`). البلوكات المترجمة/المشفرة (مثل `.pyd` أو سكربتات محمية بواسطة PyArmor) محظورة عمداً.
{% endhint %}

!\[Load Existing Block]\(../../../.assets/gitbook/image (7).png)\
*Load Existing Block*

{% hint style="info" %}
"Reload" يحدث قائمة **Custom Blocks** (يضيف ملفات جديدة / يزيل الملفات المحذوفة). لا يقوم بتحديث العقد الموضوعة بالفعل في المشاهد بشكل فوري. ![Refresh Block List](https://1711505668-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoktfDevppndJ75rImRz1%2Fuploads%2Fgit-blob-7523e772522bf1a464bae9117625326ab34e11a2%2Fcustom-block-refrest.jpg?alt=media)\
*Refresh Block List*
{% endhint %}
