آخر الأخبار
Path Tracer في Unreal Engine: 5 خطوات لتصيير المشاهد الداخليةإنشاء الكتل المعمارية وتحرير الشبكات باستخدام Modeling Mode في Unreal Engineدليل Grasshopper Python 3: الوصول إلى البيانات وتلميحات الأنواع والمخرجاتدليل إعداد العروض وتصدير الرسوم المتحركة باستخدام مشاهد SketchUpفرد خرائط UV باستخدام Unreal Engine UV Editor: دليل عملي خطوة بخطوةاستخدام Gemini API عبر عميل متوافق مع OpenAI: دليل Python وJavaScriptالعثور على الهندسة المعيبة وإصلاحها في Rhino 8: دليل عمليإعداد Unreal Engine Pixel Streaming: بث المشروع إلى المتصفحتوزيع عناصر معمارية متكررة على النقاط باستخدام Blender Geometry Nodesدليل تنظيم النموذج المعماري في Rhino 8 باستخدام التحديد وHistory والكتل
نصائح وأدلةRhinoGrasshopper

دليل Grasshopper Python 3: الوصول إلى البيانات وتلميحات الأنواع والمخرجات

تشرح وثائق مطوري Rhino الخطوات الأساسية للعمل بمكوّن Python 3 أو IronPython 2 Script في Grasshopper. ويتناول هذا الدليل إعدادات المعلمات والوصول إلى البيانات وتلميحات الأنواع والمخرجات بأسلوب عملي.

مساحة عمل للتصميم بمساعدة الحاسوب تضم نموذج جناح معماري بارامترياًصورة بالذكاء الاصطناعي
صورة تعبيرية مولّدة بالذكاء الاصطناعي.الصورة: 3dsınıfı / FCA AI

باختصار

  1. يمكن إضافة مكوّن Python 3 Script من لوحة `Script` ضمن علامة التبويب `Maths` في Grasshopper.
  2. تتضمن معلمات الإدخال خيارات الوصول Item وList وTree.
  3. يمكن لـ Type Hint تحويل بيانات الإدخال إلى النوع المحدد قبل تشغيل السكربت.
  4. قد يؤدي تعطيل معلمة الإخراج القياسية غير المستخدمة إلى تقليل المعالجة غير الضرورية، ولا سيما في التعريفات التي تضم عدداً كبيراً من المكوّنات.

يستند هذا الدليل إلى شرح البرمجة النصية باستخدام Python في Grasshopper ضمن وثائق مطوري Rhino، والمحدّث في 29 سبتمبر 2026. يمكن إضافة مكوّن Python 3 أو IronPython 2 Script داخل Grasshopper، كما يمكن اختيار Python 3 من قائمة اللغة في مكوّن Script العام. تركّز الخطوات التالية على إعداد مدخلات المكوّن والوصول إلى البيانات ومخرجاته على نحو صحيح قبل إنشاء الهندسة. وتشير الوثائق بوضوح إلى أن بعض الخيارات تعتمد على إصدار Rhino؛ فعلى سبيل المثال، يتوفر خيار جعل معلمة الإدخال مطلوبة بدءاً من Rhino 8.14.

1. أضف مكوّن Script وسمّه

أضف مكوّن Python 3 Script من لوحة Script ضمن علامة التبويب Maths في لوحة Grasshopper. أو أضف مكوّن Script العام واختر Python 3 من قائمة اللغة. يؤدي النقر المزدوج على المكوّن إلى فتح محرر السكربت، ويعرض شريط الحالة في المحرر إصدار لغة Python المستخدم.

تُضمّن السكربتات غالباً داخل المكوّن ولا تُحفظ كملفات منفصلة. إذا احتوى التعريف على أكثر من سكربت، فأعد تسمية المكوّن باسم يوضح الغرض منه. وسيظهر هذا الاسم في علامة تبويب Script ولوحة نقاط التوقف. كذلك، استخدم أسماء واضحة لمعلمات الإدخال والإخراج، حتى يسهل على من يتولى التعريف لاحقاً فهم البيانات المطلوبة والناتج الذي ينتجه.

2. أنشئ أول سكربت باستخدام المدخلات والمخرجات

يأتي مكوّن Script افتراضياً بمدخلين هما x وy، ومخرجين هما out وa. ويمكن حذف المعلمات التي لا تحتاج إليها. تظهر عناصر التحكم لإضافة المدخلات والمخرجات أو إزالتها عند تكبير العرض بما يكفي على المكوّن. كما يمكن إزالة جميع المعلمات من أحد الجانبين؛ وسيعرض المكوّن ذلك الجانب بطريقة مختلفة.

في أبسط تجربة، اجمع عددين وأسنِد الناتج إلى المخرج a:

python
a = x + y

في Script-Mode، يعرّف المكوّن متغيرات الإدخال قبل تشغيل السكربت، وتُنقل القيم المسندة إلى متغيرات الإخراج إلى مخارج المكوّن. في هذا المثال، ينبغي توصيل قيم متوافقة بمدخلي x وy. إذا كانت المدخلات فارغة، فقد تكون قيمها None، وسيؤدي جمع هاتين القيمتين إلى خطأ أثناء التشغيل. ولأن Python ليست لغة آمنة الأنواع، فقد تتسبب العمليات غير المتوافقة في مشكلات عند تشغيل السكربت.

3. اختر نوع الإدخال وطريقة الوصول إلى البيانات

يتيح تحديد Type Hint بالنقر بزر الفأرة الأيمن على معلمة الإدخال تحويل البيانات الواردة إلى المكوّن قبل تشغيل السكربت. وفي المثال الوارد في الوثائق، تُحوّل قيمتا Line إلى قيم عددية باستخدام تلميح النوع float، ثم يجمع السكربت بينهما. تتوفر خيارات Type Hint لكل من معلمات الإدخال والإخراج. وينبغي التحقق من البيانات الموصولة للتأكد من أن نتيجة التحويل هي المتوقعة.

يحدد خيار Parameter Access في قائمة المعلمة نطاق البيانات التي سيتعامل معها السكربت:

الوصولالبنية المُمررة إلى السكربتمتى يُستخدم؟
Itemيُتعامل مع كل عنصر بيانات على حدةلمعالجة العناصر واحداً تلو الآخر
Listيُتعامل مع عناصر الفرع الواحد معاًلمعالجة قائمة فرع كاملة دفعة واحدة
Treeيُتعامل مع بنية البيانات كاملةللعمل على الفروع والعناصر كوحدة متكاملة

مع الوصول Item، تظهر القيمة العددية في Python كقيمة واحدة؛ أما مع List فتظهر قيم الفرع على هيئة قائمة. وفي وضع Tree، يمكن الوصول إلى شجرة بيانات Grasshopper. كما قد يساعد تلميح النوع على تحديد نوع العناصر ضمن بنية DataTree عامة. وقبل اختيار طريقة الوصول، حدّد ما إذا كان السكربت سيعالج عنصراً واحداً أم قائمة أم الشجرة بأكملها.

4. أدر المخرجات ومتطلبات الإدخال

تلتقط المعلمة out النص الناتج عن استدعاءات print() في السكربت. وفي السلوك الافتراضي، يتحول كل سطر إلى عنصر إخراج منفصل. وعند تفعيل خيار Avoid Grafting Output Lines، تُمرر الأسطر المطبوعة كعنصر واحد. إذا لم يكتب السكربت أي شيء إلى وحدة التحكم، فيمكن تعطيل معلمة out من خلال خيار Standard Output/Error Parameter في قائمة السياق للمكوّن.

يمنع تعطيل معلمة out غير المستخدمة المكوّن من التقاط النص المطبوع ومعالجته. وتشير الوثائق إلى أن الفائدة قد تكون محدودة في مكوّن واحد، لكنها قد تصبح أكثر أهمية في تعريفات Grasshopper الكبيرة التي تعمل فيها مكوّنات كثيرة آلاف المرات.

تكون مدخلات السكربت اختيارية في البداية. وإذا كان لا بد من توفير بيانات لأحد المدخلات، فيمكن استخدام خيار Required في قائمة النقر بزر الفأرة الأيمن لمعلمة الإدخال. وتذكر الوثائق الرسمية أن هذا الخيار متاح بدءاً من Rhino 8.14. ومن المفيد تحديد المدخلات المطلوبة، ولا سيما قبل نشر السكربت، لتقليل احتمال تشغيله ببيانات ناقصة.

الاستخدام في سير عمل العمارة والتصور

تساعد هذه الإعدادات المعماريين ومصممي الديكور الداخلي وفرق التصور على تحويل خطوات النمذجة المتكررة إلى تعريف Grasshopper أوضح. فعلى سبيل المثال، يسهّل توضيح البيانات التي يتوقعها السكربت عبر أسماء المعلمات، إلى جانب تحديد نوع الإدخال، تسليم التعريف بين أعضاء الفريق. كما يحدد اختيار Item أو List أو Tree ما إذا كانت العملية ستُطبّق على عناصر منفردة أم على مجموعة بيانات.

عند الحاجة إلى هندسة أكثر تعقيداً، لا يكفي هذا الدليل وحده: فالمصدر لا يتناول واجهات Rhino أو Grasshopper البرمجية، ويوجّه إلى وثائق منفصلة لهذا الموضوع. لذلك، تحقّق أولاً من سير العمل باستخدام سكربت بسيط ومجموعة بيانات صغيرة، ثم انتقل إلى التعريف الفعلي. ولا تقدم هذه المصادر معلومات عن متطلبات محطة العمل أو الترخيص، لذا لا تتضمن هنا توصية إضافية بشأن الأجهزة أو التكلفة.

أخطاء شائعة

  • إغفال المدخلات الفارغة وإجراء عمليات على قيم None: ينبغي التحقق من أن المدخلات موصولة وأن أنواعها مطابقة لما هو متوقع.

  • عدم اختيار طريقة الوصول إلى المعلمات بما يتناسب مع احتياجات السكربت: يوفر Item وList وTree بنى بيانات مختلفة.

  • ترك معلمة out غير المستخدمة مفعّلة: يمكن تعطيلها إذا لم تكن مخرجات print() مطلوبة.

  • استخدام أسماء غير واضحة للمعلمات: فهذا يجعل الغرض من المدخلات والمخرجات ملتبساً، ولا سيما في التعريفات المشتركة.

المصادر

1 مصادر
D
developer.rhino3d.comdeveloper.rhino3d.com/guides/scripting/scripting-gh-python
ملخص

لا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.

رأي 3dsınıfı
3dتقييم المحرر

تكمن القيمة الأساسية لهذه التوصيات لمكاتب العمارة والتصور في تركيا في جعل تعريفات Grasshopper أكثر موثوقية وأسهل في التسليم، لا في ترقية الأجهزة. ويمكن لأسماء المعلمات الواضحة، واختيار طريقة الوصول المناسبة إلى البيانات، وتحديد المدخلات المطلوبة أن توفر الوقت، خصوصاً عندما يستخدم أعضاء مختلفون في الفريق التعريف نفسه.

قد يكون أثر تعطيل معلمة `out` محدوداً في مكوّن واحد، لكن هذا الإجراء قد يقلل المعالجة غير الضرورية في التعريفات التي تضم مكوّنات كثيرة تعمل بكثافة. ومن المهم تجربة التغييرات ضمن سير العمل الفعلي والتحقق من الخيارات المرتبطة بإصدار Rhino. لا تتضمن المصادر معلومات عن الأجهزة أو الأسعار أو التراخيص؛ لذا يلزم الرجوع إلى وثائق رسمية إضافية لاتخاذ قرارات بشأن هذه الجوانب.

الأسئلة الشائعة

كيف أضيف مكوّن Python 3 Script في Grasshopper؟

يمكن إضافة مكوّن Python 3 Script من لوحة `Script` ضمن علامة التبويب `Maths` في Grasshopper. وإذا كنت تستخدم مكوّن Script العام، فيمكن اختيار Python 3 من قائمة اللغة.

ماذا يعني الوصول Item وList وTree في Python ضمن Grasshopper؟

يعالج Item البيانات واحداً تلو الآخر، بينما يعالج List عناصر فرع واحد معاً، ويتعامل Tree مع بنية البيانات كاملة. وينبغي الاختيار وفقاً لطريقة معالجة السكربت للبيانات.

ما وظيفة معلمة out في مكوّن Grasshopper Python؟

تلتقط `out` المحتوى الذي يطبعه السكربت باستخدام `print()`. وإذا لم تكن مخرجات وحدة التحكم مطلوبة، فيمكن تعطيلها من قائمة السياق للمكوّن.

التعليقات والمنتدى باللغة التركية.شارك في النقاش
+

أخبار ذات صلة