صفحة 1 من 2 12 أخيرأخير
النتائج المعروضة من 1 الى 20 من مجموع 27

موضوع: [درس] Visual MAXScript Editor

ردود: 27 | زيارات: 6854
  1. #1

    [درس] Visual MAXScript Editor

    ما هي هذه الأداة؟
    للوصول إلى هذه الأداة من قائمة MAXScript ---> Visual MAXScript Editor


    تظهر نافذة المحرر:


    الآن كيف نستفيد من هذه الأداة
    سنقوم بفتح السكربت الذي أنشأناه سابقا في أول موضوع للسكربت من هنا


    و من لم يتابع الموضوع فالسكربت موجود في المرفقات
    نقوم بإغلاق نافذة ألـ Visual Editor و نفتح السكربت كما أشرت في الدرس السابق أو
    من قائمة MAXScript ---> Open Script

    كما تلاحظون فإن نافذة السكربت مؤلفة من 2 rollout الأول يحتوي العناصر الرئيسية للنافذة و الثاني مجرد عرض About


    بمجرد أن نضع المؤشر ضمن أحد هذه الـ Rollout نذهب إلى قائمة
    Tools --> Edit Rollout من نفس نافذة محرر السكربت تكلمنا عنها في الدرس السابق


    يظهر لنا نافذة المحرر التي أشرنا لها في باية الدرس و فيها الـ Rollout جاهزة لعمل التعديلات اللازمة بحسب ما نراه مناسبا



    لا أعرف إذا من الضروري شرح الخصائص الأساسية بعتقد مفهومة متل:
    name - caption - xpos : position to x - ypos: position to y - width - hieght - enabled

    من جزء معاينة العنصر يمكننا ببساطة الضغط على العنصر الملطوب تعديل خصائصه كما في الصورة





    و من أجل معاينة الأحداث لكل عنصر:




    الآن ماذا يمكننا أن نستفيد من خصائص العنصر؟
    يجب الانتباه أن البديهي في عالم ويندوز أن الأمر المباشر يطبق على العنصر المحدد
    أي أننا إذا أردنا مثلا محاذاة الزر الأول باتجاه اليسار أو اليمين أو توسيطه يجب أن نحدده اولا
    و لعمل المحاذاة المطلوبة نذهب إلى قائمة Layout و نختار المحاذاة التي نرغب بها أو يمكننا أن نضغط بزر الماوس اليميني و اختيار الأمر المطلوب



    اللآن أعيروا انتباهكم للشريط الصغير أسفل المحرر هذه أجمل هدية قدمتها أوتوديسك لكم حيث يمكنكم من خلالها إضافة العناصر بشكل مرئي للـ Rollout


    سنقوم بالتحدث عن هذه العناصر في الردود القادمة نظرا لضيق الوقت
    و السلام عليكم و رحمة الله و بركاته.

    و في النهاية لا تنسوا تقييم الموضوع

    أخر تعديل بواسطة ojail في 26 / 08 / 2010 الساعة 01:00 AM


  2. #2

    التكملة الأولى للدرس

    التكملة الأولى للدرس
    يوجد في المرفقات مجموعة ملفات سنقوم بتنزيلها إلى مجلد جديد نسميه Script-test ننشأه في المسار التالي C:\Script-test
    سنقوم اللآن بالتحدث عن بعض عناصر شريط إنشاء عناصر النافذة المرئية



    Select أداة التحديد
    Bitmap صورة (وليس زر)
    Button الزر القياسي
    Map زر ماب
    Material زر ماتيريال
    Pick Button زر اختيار
    Check زر تحقق
    Color Picker اختيار اللون
    Combo box
    Drop down list
    List Box
    Edit Box
    Label
    Group
    Check Box
    Radio
    Spinner
    Progress bar
    Slider
    Timer
    ActiveX conroler

    الآن سنبدأ العمل من خلال هذا السكربت الصغير:


    MainFloater = NewRolloutFloater "Visual Editor Test" 400 300


    rollout CTR "Controler Tests" width:160 height:150

    (
    )
    addRollout CTR MainFloater


    ملاحظة السكربت موجود في المرفقات إذا لم يكن واضحا هنا بسبب خاصية الـ Text Direction .






    والآن كما رأينا سابقا سنقوم بالنقر بالماوس في أي مكان ضمن الـ Rollout و من ثم نختار الأمر Edit Rollout من قائمة Tools فتظهر لنا نافذة المحرر لترينا نتيجة ما كتبنا في السكربت كالتالي:


    الآن سنختار العنصر الأول و هو Bitmap و نقوم برسمه في أي مكان ضمن الـ Rollout بطريقة الضغط المستمر مع السحب و الإفلات:


    لاحظو أنني قمت بعمل بعض التغييرات في المقاسات اتبعوا المقاسات الجديدة كما في الصورة


    الآن سنعطي عنصر الـ Bitmap الذي أنشأناه الخصائص التالية (حيث سنستخدم أحد الملفات التي طلبت منكم أن تحفظوها في مجلد C:\Script-test ) كما في الصورة:


    نغلق المحرر بعد الضغط على Save ثم نختار الأمر Evaluate All من قائمة Tools و النتيجة


    الآن سنضيف العنصر الثاني و هو عنصر الزر التقليدي العادي بنفس الطريقة الضغط المستمر مع السحب و الإفلات ضمن الـ Rollout و من ثم نقوم بتعديل الخصائص له حسب الصورة التالية:



    الآن سنقوم بكتابة شرط صغير فقط لإضافة عمل للزر الذي أنشأناه من نافذة المحرر نفسه نقوم بتحديد الزر ثم نضغط على Event Handlers تفتح لنا الجزء الخاص بأحداث العنصر حيث الحدث المرتبط به هو pressed نضغط عليه فتفتح لنا نافذة جديدة فارغة خاصة بكتابة سطور السكربت في حال حدوث الحدث pressed أي بالعربي الفصيح ما يكتب هنا هو ما سيحدث عند الضغط على الزر


    الآن سنكتب الحدث كالتالي:
    if bmp3 .visible == true then bmp3 .visible = false else bmp3 .visible = true

    نضغط بعدها على OK وثم نضغط على Save ونغلق محرر الـ Visual فنلاحظ إضافة سطور لمحرر السكربت

    نقوم بعمل Evaluate all
    النتيجة جربوها ستكون إظهار أو إخفاء الصورة التي وضعناها في أول الـ Roolout عند كل مرة نضغط فيه على الزر نفسه.
    الآن سنقوم بإضافة Rollout جديد و نضيف إليه زرين الأول زر Material و الثاني زر Map كما تعلمنا سابقا
    rollout MAT "Mat / Map Buttons" width:385 height:120


    (
    materialButton btn1 "Get Material" pos:[15,15] width:80 height:25
    mapButton btn2 "MapButton" pos:[14,50] width:355 height:23
    )
    addRollout MAT MainFloater
    بملاحظة وضع السطر
    addRollout MAT MainFloater
    بعد السطر
    addRollout CRT MainFloater
    وذلك لترتيبها على النافذة


    نرسم أي شكل ضمن الـ View Port و ليكن عبارة عن Box و نبقيه محددا
    الآن سنضيف حدثين بسيطين للزرين الكتالي:

    on btn1 picked mtl do(
    max mtledit
    print mtl
    if $ != undefined do $.material=mtl
    setMeditMaterial 1 btn1.material
    )
    on btn2 picked texmap do
    setMeditMaterial 2 btn2.map
    )



    عند الضغط على الزر الأول Get Material سيفتح مربع حوار اختيار ماتيريال بعد اختيار أحدها سيبدأ الحدث الأول
    سيقوم الحدث الأول بما يلي:
    * سيقوم بفتح محرر المواد Material Editor
    * سيقوم بوضع الماتيريال التي اخترناها على الجسم المرسوم الـ Box
    * سيقوم بوضع هذه المادة ضمن الـ Material Editor ضمن الـ Slot # 1
    عند الضغط على الزر الثاني سيفتح مربع حوار Map Browser نختار منه الـ Map المطلوب و بعد الموافقة سيبدأ الحدث الثاني
    الحدث الثاني سيقوم بـ وضع الـ Map التي اخترناها ضمن الـ Material Editor ضمن الـ Slot # 2
    تكملة بقية الأزرار ستأتيكم في الراد القادم.
    أخر تعديل بواسطة ojail في 29 / 08 / 2010 الساعة 09:18 PM السبب: رد محجوز لتكملة الدرس

  3. #3

    تكملة رقم 2 للدرس

    لحتى نكون متابعين مع بعض حملت ملف السكربت بالمرفقات لكل الخطوات التي عملناها في أول جزء من الدرس اسم الملف Part-1-Final.txt فقط غيروا الامتداد إلى ms بدل txt
    نبدأ الآن بعمل العنصر الجديد و هو الـ PickButton و نضيفه كالتالي:
    كود:
     MainFloater = NewRolloutFloater "Visual Editor Test" 400 700    -- Main Floater

    لاحظوا أننا استعملنا هذا الزر في الدرس السابق لفهم وظيفته نضيف العنصر التالي تحته و هو عبارة عن ليبل كالتالي:


    الآن سنقوم برسم أي عنصر و ليكن عبارة عن Box سنستعمله لإظهار وظيفة الزر
    الآن نضيف الحدث للزر كالتالي:
    نحدد الزر في محرر الـ Visual و ننتقل إلى Event Handlers و نختار الحدث Picked
    فتظهر لنا نافذة الحدث كما في الصورة نكتب فيها الحدث التالي:

    الحدث هو:
    كود:
     lbl1.text = obj.name as string

    حيث lbl1 هو اسم اليبل الذي أنشأناه و Text. هي النص الخاص باليبل و الـ obj هو العنصر الذي اخترناه بعد الضغط على الزر PickButton حيث اخترنا الـ Box الذي رسمناه فتظهر النتيجة كالتالي:



    الآن سنقوم بعمل زر من نوع CheckButton كالتالي:
    كود:
    checkbutton ckb5 "unChecked" pos:[15,130] width:135 height:25

    و سنضيف له الحدث التالي:

    كود:
    on ckb5 changed state do

    كود:
    (
    if ckb5.checked == true then ckb5.text = "Checked" else ckb5.text = "unChecked" )


    جربو الزر و سترون النتيجة.

    الآن نضيف العنصر ColorPicker كالتالي:
    كود:
    colorPicker cp6 "ColorPicker" pos:[180,130] width:135 height:25

    و نضيف الحدث التالي:
    كود:
    on cp6 changed col do selection.wirecolor = col

    نرسم Box و نشغل السكربت و نختار زر colorpicker (بشرط أن يكون الـ Box لا يزال محددا) و نختار لون و هذه هي النتيجة:

    الآن سنضيف ثلاثة عناصر هي:
    Combobox و العنصر DropDownList و العنصر ListBox كالتالي:

    الآن نضيف لكل عنصر 3 قيم بالطريقة التالية:

    لاتنسوا وضع القيم المضافة ضمن أقواس اقتباس " "
    فتكون النتيجة كالتالي:

    سنقوم بعمل حدث واحد فقط لواحد من هذه العناصر الثلاثة لتشابه تركيب أحداثها العام
    كود:
    on cbx1 selected sel do
    كود:
    messagebox cbx1.items[sel]


    النتيجة:

    نضيف الآن هذه العناصر الثلاثة كالتالي:

    و نضيف الأحداث التالية على التوالي:
    كود:
    on chk1 changed state do
    كود:
    (
    if chk1.state == true then edt1.enabled = false else edt1.enabled = true )



    كود:
    on btn16 pressed do
    كود:
    cbx1.selected = edt1.text as string





    الآن نضيف الزر من نوع RadioButton

    نعدل الخصائص كالتالي:

    مع الحدث البسيط
    كود:
    on rdo1 changed stat do
    كود:
    messagebox (rdo1.state as string)



    الآن نضيف العنصرين spinner و Progressbar كالتالي

    نضيف الحدث التالي:
    كود:
    on spn1 changed val do
    كود:
    pb1.value = val



    الآن نضيف العنصر timer كالتالي:

    ونضيف الحدث الصغير التالي:
    on tmr1 tick do
    (
    valUp = (lbl16.text as integer)+1
    lbl16.text = valUp as string
    )

    الآن نضيف لعنصر من نوع slider كالتالي:

    و نضيف الحدث التالي:
    كود:
    on sld1 changed val do
    كود:
    pb1.value = val



    وبهذا نكون قد انتهينا من شرح أمثلة في كيفية إضافة العناصر إلى نافذة السكربت عن طريق الأداة الفعالة جدا
    Visual MAXScript Editor
    بعض النصائح الأخيرة:
    لمعرفة كامل المعلومات عن أي عنصر من عناصر الـ GUI يمكنكم تحديده من محرر السكربت و الضغط على مفتاح الـ F1 من لوحة المفاتيح لتفتح لديكم صفحة المساعدة الخاصة بهذا العنصر مميزاته و أحداثه
    مثال:
    فليكن لدينا السكربت التالي الذي يقوم بعمل نافذة GUI تحتوي على زر من نوع PickButton كالتالي:

    فتظهر لنا نافذة المساعدة التي تحتوي على كل ما نريده من معلومات:

    حيث تخبرنا صفحة المساعدة ما يلي:
    A pickbutton control is used to place a scene object-picker button on the rollout. It operates like a normal pick button in the 3ds Max user interface, turning light-green when pressed and causing an object-pick mode to be entered. The user can then choose a scene object by clicking on it. The pick mode exits and the button returns to its unpressed state. The user can right-click to cancel the pick mode.
    The syntax is:
    pickbutton <name> [ <caption> ] [message:<string>] [filter:<function>] [toolTip:<string>] [autoDisplay:<boolean>]
    The default alignment of pickbutton items is #center.
    الترجمة:
    يستخدم هذا العنصر لإنشاء زر منتقي عناصر من المشهد في الرول أوت, يعمل كزر عادي ...... الخ
    أتمنى ان ينال الدرس اهتمامكم و السلام عليكم ورحمة الله و بركاته.
    أخر تعديل بواسطة ojail في 04 / 09 / 2010 الساعة 01:13 PM السبب: رد محجوز لتكملة الدرس

  4. #4

    نهاية الدرس

    يا جماعة أنا صار معي اكتئاب أنا و عم اكتب الدرس
    كل ما حاول أعمل تنسيق للرد يصير كل ما هوة مكتوب ضمن أقواس الـ [code] يتقطع كما ترون في الرد
    و بصراحة أنا تعبت من محاولة تنسيقه
    من لديه سؤال فدعونا نتناقش عليه

    قمت بتعمل نسخة pdf من الدرس حتى تسهل عليكم قراءته لأنها صعبة على محرر المنابر
    يمكنكم التحميل من هنا
    http://www.4shared.com/document/sQp-...pt_Editor.html

    الدرس السابق أيضا من هنا:
    http://www.4shared.com/document/mDv1..._a_Vertex.html

    الآن لمن يريد التفاعل سأطرح لكم بعض التمارين الصغيرة لنرى التطبيق خلال اليومين القادمين.
    كل عام و أنتم بخير

    السكربت كاملا موجود في المرفقات على شكل ملف نصي باسم Final.txt
    أخر تعديل بواسطة ojail في 04 / 09 / 2010 الساعة 01:47 PM السبب: رد محجوز لتكملة الدرس

  5. #5
    عضو متميز
    صور رمزية omarzonex
    تاريخ التسجيل
    Jan 2009
    المنطقة
    نبض قلبي- فلسطين
    ردود
    6,682
    ما شاء الله عليك

    فنان ياأخي العزيز بكل معنى الكلمة

    انت من أفضل المبرمجين للشرح الماكس سكريبت من العرب والأجانب .....

    انني فخور بك كثيراً ..........


  6. #6
    اقتباس الموضوع الأصلي كتب بواسطة omarzonex معاينة الرد
    ما شاء الله عليك

    فنان ياأخي العزيز بكل معنى الكلمة

    انت من أفضل المبرمجين للشرح الماكس سكريبت من العرب والأجانب .....

    انني فخور بك كثيراً ..........
    أحرجتني أخ عمر, شكرا لك على الإطراء لكن أود أن ألفت انتباهك إلى أننا لم نقم بعمل أي برمجة لحد الآن هذا مجرد شرح للـ interface أي واجهة المستخدم فقط
    و ملاحظة هامة جدا أنا لا أعتبر نفسب مبرمجا ! و لكن أشكرك على مجاملتك
    الصراحة كنت ناوي أوقف كتابة في هذا الموضوع لأنني لم أجد اهتمام في الموضوع السابق سوى من 3 أعضاء
    يبدو الموضوع غير هام.

  7. #7
    شكرا اخي ojail
    نرجو منك المتابعة

  8. #8
    مشرف منبر 3D Studio MAX
    صور رمزية A.Atef
    تاريخ التسجيل
    Aug 2009
    ردود
    4,098
    اكمل اكمل .......
    █║▌│█│║▌║││█║▌│║▌║
    الايميل : attef_omer@hotmail.com

  9. #9
    اقتباس الموضوع الأصلي كتب بواسطة science معاينة الرد
    شكرا اخي ojail
    نرجو منك المتابعة
    اقتباس الموضوع الأصلي كتب بواسطة a.atef معاينة الرد
    اكمل اكمل .......
    بإذن الله تعالى يوم السبت سأكمل الدرس شكرا للتشجيع من أساتذتي الذين لهم فضل علي لا أنكره ما حييت

  10. #10
    عضو متميز
    صور رمزية ben_cherif
    تاريخ التسجيل
    Aug 2008
    المنطقة
    الجزائر
    العمر
    30
    ردود
    1,267
    شكرا اخي ojail
    *****
    Autodesk
    3ds Max 2011 64-bit
    من قال بعد كل صلاة (سبحان الله 33)مرة ثم قال (الحمدلله 33) ثم قال
    (الله اكبر 33) مرة ثم اتمها المئة بقوله (لا اله الا الله وحده لاشريك له
    له الملك وله الحمد يحيي ويميت وهو على كل شيء قدير)
    (غفرت ذنوبه وان كانت مثل زبد البحر)




  11. #11
    عضو فعال
    صور رمزية mhg ghost
    تاريخ التسجيل
    Mar 2009
    المنطقة
    سورية - الشام
    ردود
    216
    شكرا لك أخي محمد
    آسف على غيابي
    مجهود رائع
    متابعك
    إنتبه :
    (إن شاء الله) وليس ( إنشاء الله)
    .....................................................................
    شكوت إلى وكيع سوء حفظي... فأرشدني إلى ترك المعاصي
    وأعلمني أن علم الله نورَ......... ونور الله لايهدى لعاصي

  12. #12
    عضو متميز
    صور رمزية bizzar
    تاريخ التسجيل
    Oct 2008
    المنطقة
    Algeria
    ردود
    1,427
    بارك الله فيك يا سيدي .......رمضان كريم.....

    2014 Character designer


  13. #13
    عضو نشيط
    صور رمزية 3ddesigner
    تاريخ التسجيل
    Mar 2008
    المنطقة
    مصر - المنصوره
    العمر
    30
    ردود
    541
    جزاك الله خيرا اخي الكريم
    في انتظار باقي الدرس ان شاء الله
    *****

  14. #14
    اقتباس الموضوع الأصلي كتب بواسطة ben_cherif معاينة الرد
    شكرا اخي ojail
    *****
    اقتباس الموضوع الأصلي كتب بواسطة mhg ghost معاينة الرد
    شكرا لك أخي محمد
    آسف على غيابي
    مجهود رائع
    متابعك
    اقتباس الموضوع الأصلي كتب بواسطة bizzar معاينة الرد
    بارك الله فيك يا سيدي .......رمضان كريم.....
    اقتباس الموضوع الأصلي كتب بواسطة 3ddesigner معاينة الرد
    جزاك الله خيرا اخي الكريم
    في انتظار باقي الدرس ان شاء الله
    *****
    نورتو شباب شكرا لمروركم و إن شاء الله أنا أعمل على الموضوع بغض النظر عن ضيق الوقت

  15. #15
    عضو فعال
    صور رمزية mhg ghost
    تاريخ التسجيل
    Mar 2009
    المنطقة
    سورية - الشام
    ردود
    216
    شكرا ابو حميد
    الله يعينا على ضيق الوقت
    إنتبه :
    (إن شاء الله) وليس ( إنشاء الله)
    .....................................................................
    شكوت إلى وكيع سوء حفظي... فأرشدني إلى ترك المعاصي
    وأعلمني أن علم الله نورَ......... ونور الله لايهدى لعاصي

  16. #16
    عضو فعال
    صور رمزية sp-9
    تاريخ التسجيل
    Oct 2009
    المنطقة
    بلاد الحرمين
    العمر
    35
    ردود
    159
    بارك الله فيك اخي على الجهد المبذول

    ويعلم الله درس نافع بمعنى الكلمة وشرح وافي في ما تقدمه


    سجلني من المتابعين والله يكتب الفائده للجميع

  17. #17
    عضو نشيط
    صور رمزية tarekmax
    تاريخ التسجيل
    Dec 2008
    العمر
    33
    ردود
    512
    بارك الله فيك أخي و الله انا احس ان المنبر عاد إلى سابق عهده شكررررررررررررررررررررررررررررررررااااااااااااااااااا

  18. #18
    اقتباس الموضوع الأصلي كتب بواسطة sp-9 معاينة الرد
    بارك الله فيك اخي على الجهد المبذول

    ويعلم الله درس نافع بمعنى الكلمة وشرح وافي في ما تقدمه


    سجلني من المتابعين والله يكتب الفائده للجميع
    اقتباس الموضوع الأصلي كتب بواسطة tarekmax معاينة الرد
    بارك الله فيك أخي و الله انا احس ان المنبر عاد إلى سابق عهده شكررررررررررررررررررررررررررررررررااااااااااااااااااا
    مشكورين للردود الحلوة اليوم نكمل بعد التراويح بإذن الله

  19. #19
    عضو نشيط
    صور رمزية 3ddesigner
    تاريخ التسجيل
    Mar 2008
    المنطقة
    مصر - المنصوره
    العمر
    30
    ردود
    541
    جزاك الله خيرا اخي الكريم
    و زادك من علمه

  20. #20
    أبو عبد الله
    صور رمزية CG Artist
    تاريخ التسجيل
    Jul 2007
    المنطقة
    Gaza, Palestine
    العمر
    30
    ردود
    1,612
    موضوع جميل ومهم جدا , ونفتقر لمثل هذه المواضيع هنا ... شكرا لفتحك هذا الباب .. ارجو الاستمرار ..

    والف شكر مرة ثانية وجزاك الله كل خير .
    صبرا جميل والله المستعان



Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل