باختصار
- تنفّذ Python Console الأوامر عند الضغط على Return، ويمكن استدعاء الأوامر السابقة مجددًا من السجل.
- تتيح bpy.context الوصول إلى معلومات السياق، مثل المشهد الحالي والعناصر المحددة.
- يمكن تغيير موقع العنصر النشط عبر Python Console.
- يمكن إضافة ضوء نقطي إلى المشهد باستخدام المثال الوارد في وثائق Blender API.
يمكن استخدام أداة Python Console في Blender لتفحّص بيانات المشهد واستكشاف Blender API عبر تشغيل مقاطع برمجية قصيرة. تعرض الأمثلة في وثائق Blender كيفية تغيير موقع العنصر النشط، واستعراض العناصر المحددة، وإضافة ضوء جديد إلى المشهد. تركّز الخطوات التالية على استخدام Python Console لتنفيذ عمليات صغيرة يسهل التحكم فيها.
ما الذي ستتعلمه في هذا الدليل؟
إلى جانب تنفيذ الأوامر المكتوبة، توفر Python Console سجلًا للأوامر وميزة الإكمال التلقائي. في البداية، سنستعلم عن السياق الحالي، أي العنصر النشط والوضع المستخدم في Blender. ثم سنعدّل موقع العنصر النشط، ونسرد العناصر المحددة، وننشئ عنصر إضاءة جديدًا.
يناسب هذا الأسلوب إجراء تجارب صغيرة بدلًا من إعداد نص برمجي طويل لكل عملية. وعندما يعمل الأمر كما هو متوقع، يسهّل سجل Console إعادة استخدامه. ووفقًا لوثائق Blender، يمكن استدعاء الأوامر السابقة من السجل باستخدام مفتاحي السهمين للأعلى والأسفل؛ كما يؤدي الضغط على Tab في سطر الأوامر إلى تفعيل الإكمال التلقائي.
المتطلبات والتحضير
تعتمد هذه الأمثلة على Python Console في Blender وعلى bpy، وهي Blender Python API. لا تحدد الوثائق المصدرية رقم إصدار معينًا من Blender، أو متطلبات حساب، أو حدًا أدنى للأجهزة، أو طريقة تثبيت. لذلك ينبغي التحقق من سلوك API في الإصدار المستخدم لتطبيق الأمثلة.
لتنفيذ أمر في Console، اضغط على Return. وأثناء كتابة الأمر، يمكنك الضغط على Tab لعرض اقتراحات الإكمال التلقائي للأعضاء المتاحة. كما توصي وثائق Blender بتشغيل الأمر dir() للتعرّف على بيئة Console. يستعلم المثال الأول أدناه عن الوضع والعنصر النشطين في السياق الحالي:
bpy.context.mode
bpy.context.active_objectيعرض السطر الأول وضع التفاعل الحالي، بينما يعرض السطر الثاني العنصر النشط. وتشير الوثائق تحديدًا إلى ضرورة تحديد عنصر في 3D Viewport للحصول على النتائج الصحيحة. إذا لم يكن هناك عنصر نشط، فلن تعطي الأوامر التي تحاول الوصول إلى خصائصه النتيجة المتوقعة؛ لذا تأكد من وجود عنصر مناسب نشط في المشهد قبل إجراء التعديلات.
خطوة بخطوة: عمليات أساسية في Console
1. استكشاف أعضاء API
يمكنك الاستفادة من الإكمال التلقائي لمعرفة الخصائص المتاحة في Blender API. اكتب التعبير التالي في Console واضغط على Tab لعرض اقتراحات الوحدات الفرعية والخصائص والطرائق ضمن bpy. وتوضح الوثائق أن الطرائق تتميز في الاقتراحات بظهور أقواس في نهايتها.
bpy.يساعدك استعراض أعضاء متغير أو وحدة على العمل بالاطلاع على API المتاح بدلًا من كتابة الأوامر اعتمادًا على الذاكرة. كما تتوفر في بيئة Console الاختصارات C لـ bpy.context وD لـ bpy.data. ويمكنك في البداية تشغيل dir() لاستعراض الوظائف والمتغيرات العامة المعرّفة في البيئة.
2. تغيير موقع العنصر النشط
يمكن الوصول إلى العنصر النشط عبر السياق. تتضمن الوثائق أمثلة على تغيير إحداثي X للعنصر وإضافة زيادة صغيرة إليه. استعلم أولًا عن الإحداثي الحالي، ثم استخدم الأمر التالي لإضافة 0,5 وحدة على محور X:
bpy.context.object.location.x += 0.5يعدّل هذا الأمر خاصية موقع العنصر النشط. إذا لم يكن هناك عنصر محدد، فقد لا يعيد bpy.context.object عنصرًا مناسبًا. لذا من المهم التحقق من وجود عنصر نشط قبل تشغيل الأمر. يستدعي مفتاح السهم للأعلى الأمر السابق من السجل، لكنه لا يتراجع عن التغيير الذي أُجري في المشهد. تحقّق من العنصر النشط والنتيجة في المشهد قبل تجربة إحداثي مختلف.
3. تعيين الإحداثيات الثلاثة معًا
يمكن تمرير الإحداثيات كصفّ واحد لتعديل مكونات الموقع الثلاثة دفعة واحدة. يعيّن المثال التالي قيم X وY وZ إلى 1 و2 و3 على التوالي:
bpy.context.object.location = (1, 2, 3)يمكن أيضًا تغيير مكوني X وY فقط. يفيد ذلك عند الرغبة في تعيين الإحداثيين معًا مع الإبقاء على قيمة Z الحالية:
bpy.context.object.location.xy = (1, 2)تصل هذه الأمثلة مباشرة إلى موقع العنصر النشط. ومن شأن متابعة العنصر النشط في المشهد أن تساعد على تجنب تعديل العنصر الخطأ. ويُعد البدء بالتجربة على عنصر واحد والتحقق من النتيجة في المشهد أسلوبًا حذرًا قبل تنفيذ عمليات أكثر شمولًا.
4. عرض العناصر المحددة
عند تحديد عدة عناصر، تعرض bpy.context.selected_objects قائمة العناصر المحددة. ويمكن استخدام التعبير التالي لعرض العناصر المحددة غير العنصر النشط:
[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]يمر هذا المثال على العناصر المحددة ويضيف إلى قائمة النتائج كل عنصر لا يطابق العنصر النشط. وبذلك يمكنك فحص الفرق بين العنصر النشط وبقية العناصر المحددة عبر Console. تتيح bpy.context الوصول إلى معلومات السياق، مثل المشهد الحالي والعناصر المحددة والوضع الحالي؛ أما bpy.data فتتيح الوصول إلى البيانات الموجودة في ملف blend بغض النظر عما إذا كانت محددة أو نشطة.
5. إضافة ضوء نقطي إلى المشهد
ينشئ المثال الوارد في وثائق Blender API كتلة بيانات إضاءة جديدة وعنصرًا يستخدمها، ثم يربط العنصر بالمجموعة النشطة. بعد ذلك يحدد موقع الضوء ويحدد العنصر ليجعله نشطًا. يتبع الكود أدناه المثال الأساسي لضوء نقطي الوارد في الوثائق:
import bpy
view_layer = bpy.context.view_layer
light_data = bpy.data.lights.new(name="New Light", type='POINT')
light_object = bpy.data.objects.new(name="New Light", object_data=light_data)
view_layer.active_layer_collection.collection.objects.link(light_object)
light_object.location = (5.0, 5.0, 5.0)
light_object.select_set(True)
view_layer.objects.active = light_objectينشئ الكود بيانات الإضاءة أولًا، ثم يضيف إلى مجموعة المشهد عنصرًا مرتبطًا بهذه البيانات. وعند الانتهاء من تعيين الموقع وتحديد العنصر، يصبح الضوء الجديد هو العنصر النشط. ويوضح المثال الوارد في الوثائق تسلسل إنشاء عنصر من هذا النوع وربطه بالمشهد وتحديد موقعه وتفعيله.
أخطاء شائعة
من أبرز المشكلات محاولة الوصول إلى خصائص عنصر من دون وجود عنصر نشط. قبل استخدام أمثلة الموقع، تحقق من تحديد عنصر ومن كونه نشطًا. وغالبًا ما ينتج تعديل عنصر آخر عن عدم الانتباه إلى العنصر النشط في السياق.
ومن مصادر الالتباس الأخرى الخلط بين سجل الأوامر ومسح شاشة Console. وفقًا لوثائق Blender، يؤدي الخيار Clear All في قائمة Console إلى تحديث العرض، لكنه لا يمسح سجل الأوامر. ويمكن استدعاء الأوامر السابقة والتالية باستخدام مفاتيح الأسهم. أما Shift+Return فيضيف الأمر إلى السجل من دون تنفيذه؛ لتنفيذه، استخدم Return.
إذا أردت حفظ الأوامر التجريبية القصيرة كنص برمجي، فيمكنك استخدام اختصار Copy as Script المذكور في الوثائق لنسخ مخزن السجل بالكامل إلى الحافظة. بعد ذلك، يمكنك لصق المحتوى في ملف نصي واستخدامه كنص برمجي بلغة Python. وتساعد مراجعة الكود وأثره في المشهد قبل الانتقال إلى عمل أكبر على تجنب نقل الأوامر التجريبية إلى ملف إنتاج عن طريق الخطأ.
الاستخدام في سير عمل العمارة والتصوير المعماري
يمكن أن تكون Console مفيدة في أعمال العمارة والتصميم الداخلي وarchviz لتجربة عمليات صغيرة ومتكررة، مثل تغيير موقع العنصر النشط بسرعة، أو فحص العناصر المحددة، أو إضافة ضوء إلى المشهد. ويمكن للطلاب وفناني التصوير المعماري الذين بدأوا التعرف على Python API في مشاهد Blender ملاحظة العلاقة بين السياق وخصائص العناصر من خلال تجارب باستخدام أمر واحد.
مع ذلك، فإن الأمثلة الواردة هنا أساسية؛ ولا تقدم المصادر معلومات عن قالب مشروع معين، أو إعدادات الرندر، أو متطلبات الأجهزة، أو التوافق مع برامج أخرى. إذا كنت تخطط للأتمتة ضمن سير عمل المكتب، فعليك اختبار الأمثلة باستخدام إصدار Blender وبنية العناصر في المشروع. ويساعد التحقق من أثر الأوامر في المشهد وحفظ السجل كنص برمجي عند الحاجة على تحويل التجارب الصغيرة إلى عملية أكثر تنظيمًا.
الخطوات التالية
ابدأ بالأوامر التي تستعلم عن السياق، ثم جرّب أمثلة الموقع والعناصر المحددة كلًا على حدة. وعند الحاجة إلى جمع عدة أوامر، راجع مثال Object في وثائق Blender API واتبع تسلسل إنشاء كتلة البيانات، وربطها بالمجموعة، وتفعيل العنصر. تتيح المشغّلات أيضًا استدعاء العمليات برمجيًا، وهي العمليات التي تُنفذ عادةً باستخدام زر أو قائمة؛ راجع وثائق API ذات الصلة لمعرفة المشغّل الذي ينبغي استخدامه.
المصدر والترخيص
أُعدّ هذا الدليل بالاستناد إلى صفحة “Python Console” في Blender Manual ومرجع “Object” في Blender Python API. كلا المصدرين مرخص بموجب CC BY-SA 4.0؛ وقد تُرجم المحتوى إلى التركية وأُعيدت صياغته، فيما استندت أمثلة الكود إلى الاستخدامات الواردة في وثائق API ذات الصلة.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
تكمن القيمة العملية لهذا الدليل لمكاتب العمارة والطلاب في تركيا في أنه يتيح تعلّم إجراء تعديلات صغيرة على مشهد Blender عبر التجربة باستخدام API. وتوفر أمثلة الاستعلام عن العنصر المحدد وتغيير موقعه وإضافة ضوء نقطة انطلاق أساسية قبل الانتقال إلى عمليات أتمتة أكثر شمولًا.
لكن المصادر لا تتناول التوافق بين الإصدارات أو متطلبات الأجهزة أو تكلفة المنتج. لذلك ينبغي التحقق من الأمثلة في إصدار Blender المستخدم وفي مشهد المشروع قبل نقلها إلى ملفات الإنتاج، كما يجب تقييم قرارات الترخيص والأجهزة وسير العمل كلٌّ على حدة.
الأسئلة الشائعة
كيف أنفّذ أمرًا في Blender Python Console؟
اكتب الأمر في سطر Console واضغط على Return. يعرض Tab الإكمال التلقائي، فيما يتيح مفتاحا السهمين للأعلى والأسفل التنقل في سجل الأوامر.
كيف أغيّر موقع العنصر النشط في Blender باستخدام Python؟
يمكن الوصول إلى العنصر النشط عبر bpy.context.object وتعديل الخاصية location. على سبيل المثال، يمكن استخدام الأمر bpy.context.object.location.x += 0.5 لإضافة 0.5 إلى إحداثي X.
هل يمكن إضافة ضوء إلى مشهد Blender باستخدام Python Console؟
نعم. ينشئ المثال الوارد في وثائق Blender Python API كتلة بيانات لضوء نقطي وعنصرًا لها، ويربطه بالمجموعة النشطة، ثم يحدد موقعه ويفعّله.



