باختصار
- يمكن فتح محرر سكربتات Python المضمّن في Rhino باستخدام الأمر ScriptEditor.
- عند إنشاء سكربت جديد، يمكن اختيار Python 3 وتشغيل الشيفرة عبر Run > Run.
- يوفّر Rhino بيئتي تشغيل منفصلتين: Python 3 المبني على CPython وPython 2 المبني على IronPython.
- يمكن تثبيت حزم PyPI عبر ScriptEditor وتحديدها كمتطلبات داخل السكربت.
ما الذي ستتعلمه في هذا الدليل؟
يركّز هذا الدليل على إعداد سكربت Python صغير يعمل داخل Rhino. سنبدأ بفتح ملف جديد في ScriptEditor وإنشاء مثال يضيف خطًا بين نقطتين تختارهما. بعد ذلك، سنتناول تشغيل السكربت وتصحيح الأخطاء واختيار بيئة تشغيل Python وإدارة متطلبات الحزم.
يستفيد المثال من وظائف rhinoscriptsyntax في Rhino. الهدف ليس تطوير أداة شاملة، بل فهم سير العمل الأساسي لسكربت يستقبل مدخلات المستخدم وينشئ هندسة في Rhino. ويمكن أن يشكّل هذا أساسًا لأتمتة خطوات النمذجة المتكررة لاحقًا.
المتطلبات واختيار الإصدار
يجري سير العمل باستخدام Rhino وScriptEditor المضمّن فيه. افتح المحرر بكتابة ScriptEditor في سطر الأوامر. عند إنشاء سكربت جديد، يمكنك اختيار Python 3 من File > New. ولا تذكر المصادر متطلبات إضافية تتعلق بحساب أو رسوم أو أجهزة خاصة لهذا العمل.
لا تُقدّم خيارات Python في Rhino بوصفها إصدارات مختلفة من المحرك نفسه، بل كتطبيقين منفصلين. يعرّف الدليل Python 3 بأنه CPython، وPython 2 بأنه IronPython. ويمكن لبيئة Python 3 استخدام حزم PyPI. وقد يكون Python 2 خيارًا لبعض السكربتات التي تعتمد بكثافة على استدعاءات RhinoCommon أو تحتاج إلى الاستفادة من تعدد الخيوط في .NET. وتوصي وثيقة المطورين باعتماد Python 3 نقطة انطلاق لمعظم السكربتات الجديدة.
عند الاطلاع على أرقام الإصدارات، ضع تاريخ المصادر في الحسبان أيضًا. يذكر دليل Rhino.Python العام، الذي حُدّث في 2025، الإصدار Python 3.9.11 لـ Rhino 8 وIronPython 2.7.12 لـ Rhino 7. أما وثيقة ScriptEditor، التي حُدّثت في 2026، فتشرح بيئات التشغيل من دون ذكر هذه الأرقام. لذلك، يُعد التحقق من الخيارات المتاحة في المحرر ضمن إصدار Rhino المثبّت أفضل نقطة بداية.
إنشاء أول سكربت
نفّذ الأمر
ScriptEditorفي سطر أوامر Rhino. عند فتح المحرر، انتقل إلى File > New واختر Python 3. يعرض ScriptEditor اللغة وبيئة التشغيل المستخدمتين في الملف الذي تحرّره.أضف الشيفرة التالية إلى السكربت الجديد:
import rhinoscriptsyntax as rs
first_point = rs.GetPoint("Çizginin başlangıç noktası")
if first_point:
second_point = rs.GetPoint("Çizginin bitiş noktası")
if second_point:
rs.AddLine(first_point, second_point)يطلب منك الكود اختيار نقطة البداية أولًا، ثم نقطة النهاية في Rhino. وعند اختيار النقطتين، ينشئ خطًا بينهما. إذا لم تُحدّد إحدى النقطتين، فلن ينتقل السكربت إلى خطوة إضافة الخط. وتستخدم أسماء الوظائف في المثال واجهة rhinoscriptsyntax في Rhino.
شغّل السكربت عبر Run > Run، واختر النقاط المطلوبة في نافذة عرض Rhino. يمكنك حفظ الملف بامتداد
.py. كما يوفّر خيار File > New From Template في المحرر طريقة أخرى لبدء ملف جديد من قالب.راقب نتيجة كل خطوة بإبقاء المثال بسيطًا. بعد ذلك، يمكنك تطبيق النهج نفسه على مهام الاختيار وإنشاء الهندسة المتكررة. يدعم Rhino.Python استخدامات مثل السكربتات التفاعلية والأوامر المخصصة وإنشاء الهندسة باستخدام الخوارزميات. أما المثال هنا، فيقتصر على سير عمل اختيار النقاط وإنشاء خط.
التشغيل وتصحيح الأخطاء ومحرك Python
ليس من الضروري تشغيل السكربت من المحرر في كل مرة. فبحسب دليل مطوري Rhino، يستطيع ScriptEditor تشغيل الملفات المحفوظة من سطر أوامر Rhino أو من ماكرو أو زر في شريط الأدوات أو اسم مستعار. وهكذا يمكن ربط السكربت بنقاط تشغيل مختلفة في Rhino بحسب طريقة استخدامه. وإذا أُدرجت الشيفرة مباشرة في ماكرو، فتذكّر إضافة محدد اللغة لكي يتمكن Rhino من اختيار المحرك الصحيح.
يرتبط تحديد بيئة Python التي يُفتح الملف فيها بامتداد الملف وبالمحدد الموجود داخل السكربت. يشير #! python 3 أو #! python 2 إلى المحرك المعني، كما يشير الامتدادان .py3 و.py2 إلى بيئة محددة. أما في ملفات .py العادية، فتُؤخذ البيئة التي يطلبها السكربت في الحسبان. انتبه إلى هذا الاختلاف إذا لم يعمل الملف كما هو متوقع.
لإيقاف السكربت عند سطر وفحص المتغيرات، أضف نقطة توقف بالنقر في الهامش بجانب ذلك السطر في المحرر. ثم ابدأ تصحيح الأخطاء عبر Run > Debug. عند إيقاف السكربت مؤقتًا، يمكنك التقدّم خطوة بخطوة وفحص المتغيرات في اللوحات المعنية. لن يكون خيار Debug متاحًا إذا لم تُضف نقطة توقف.
الحزم والمشكلات التي يمكن التحقق منها
لإضافة حزم PyPI إلى سكربتات Python 3، استخدم خيار Install Package في لوحة ScriptEditor. يمكنك البحث عن الحزمة أو إدخال اسمها وإصدارها. إذا كنت بحاجة إلى تضمين معلومات الحزمة في السكربت، فتحقق من تحديد خيار Add Package Reference to Script؛ إذ يوضح دليل المطورين أن هذا الخيار يتيح تحديد الحزم المطلوبة في نص السكربت.
يمكن أيضًا كتابة متطلبات الحزم بأكثر من اسم. على سبيل المثال، يسرد السطر التالي الحزمتين numpy وrequests:
#requirements: numpy, requestsبعد تثبيت الحزمة أو تغيير الوحدات المستوردة، قد تحتاج إلى إعادة تحميل محرك Python المعني. ويمكن استخدام الخيارين Tools > Reload Python 3 (CPython) Engine وTools > Reload Python 2 (IronPython) Engine في ScriptEditor لهذا الغرض؛ ووفقًا للدليل، لا يتطلب ذلك إعادة تشغيل Rhino.
إذا لم يعمل السكربت، فتحقق أولًا من توافق الملف مع محرك Python الذي اخترته، ومن دلالة الامتداد أو محدد اللغة. وفي الملفات التي تستخدم حزمًا، تحقق مما إذا كانت معلومات المتطلبات قد أُضيفت إلى السكربت. لا تقول المصادر إن هذه مشكلات شائعة على وجه الخصوص، لكنها احتمالات يمكن مراجعتها عند البحث عن سبب المشكلة. وعند تصحيح الأخطاء، أضف نقطة توقف أولًا ثم جرّب خيار Debug.
الخطوات التالية
يمكنك نقل الشيفرة التي ستستخدمها في أكثر من سكربت إلى وحدة منفصلة واستيرادها من ملفات أخرى. ولكي يتمكن Rhino من العثور على هذه الوحدة، يجب أن يكون مجلدها ضمن مسارات البحث؛ وتُعرض هذه المجلدات في قسم Module Search Paths ضمن Options. كما يشير دليل المطورين إلى إمكانية إضافة مسار باستخدام ملف .pth.
في الاستخدامات المتقدمة، يمكن للسكربتات الوصول إلى RhinoCommon. يتيح Python 3 هذا الوصول عبر Python.NET، بينما يعمل Python 2 على .NET. ويمكن أيضًا استخدام Python داخل Grasshopper، لكن توجد وثيقة منفصلة لـ Grasshopper Python تشرح المكونات وسير عمل المحرر. لذلك، عند اختيار الخطوة التالية، حدّد ما إذا كان هدفك سكربتًا مستقلًا داخل Rhino أم مكوّنًا مخصصًا يعمل ضمن تعريف Grasshopper.
المصدر والترخيص
أُعدّ المحتوى بصياغة تركية أصلية استنادًا إلى دليلي المطورين من McNeel: “Scripting: Python” (K1) و“What is Rhino.Python?” (K2). وتُصنّف سجلات المصادر الترخيص بأنه «حر»؛ إلا أن الصفحات تتضمن إشعار حقوق النشر وعبارة “All Rights Reserved”، ولا تحدد اسم ترخيص مفتوح.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
يوفّر Python نقطة انطلاق مفيدة لتجربة أتمتة المهام الصغيرة للمكاتب المعمارية والطلاب الذين يكررون خطوات الاختيار وإنشاء الهندسة نفسها في Rhino. ورغم أن مثال اختيار نقطة وإنشاء خط محدود النطاق، فإنه يوضح عمليًا تأثير السكربت داخل Rhino وكيفية تصحيح الأخطاء.
بالنسبة إلى الفرق في تركيا، من المهم التحقق من بيئة Python المتاحة في تثبيت Rhino الحالي والحزم التي ستُستخدم قبل توسيع نطاق العمل. لا تذكر المصادر الأسعار أو متطلبات الأجهزة أو تكلفة الترخيص، لذا ينبغي عدم افتراض معلومات بشأن هذه الجوانب. وعند الانتقال إلى RhinoCommon أو Grasshopper، يجب أيضًا مراعاة اختلاف سير العمل.
الأسئلة الشائعة
كيف أشغّل سكربت Python في Rhino؟
نفّذ الأمر ScriptEditor في سطر الأوامر، وأنشئ سكربتًا جديدًا، ثم اختر Run > Run. ويمكن أيضًا تشغيل ملفات السكربت من سطر الأوامر أو عبر ماكرو أو زر في شريط الأدوات أو اسم مستعار.
هل يستخدم Rhino Python 3 أم Python 2؟
توضح أدلة المطورين أن Rhino يوفّر بيئتي تشغيل: Python 3 المبني على CPython وPython 2 المبني على IronPython. ويمكن لـ Python 3 استخدام حزم PyPI؛ ويعتمد اختيار المحرك على متطلبات السكربت.
كيف أضيف حزمة PyPI إلى سكربت Python في Rhino؟
يمكن البحث عن حزمة أو إدخال اسمها وإصدارها عبر خيار Install Package في لوحة ScriptEditor. ويساعد خيار Add Package Reference to Script في تحديد متطلبات الحزم داخل السكربت.



