Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

[درس] Visual MAXScript Editor

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [درس] 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.
    - مثال عن كيفية عمل سكربت خفيف بنافذة GUI
    أخوكم محمد عجيل

  • #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. سبب آخر: رد محجوز لتكملة الدرس
    - مثال عن كيفية عمل سكربت خفيف بنافذة GUI
    أخوكم محمد عجيل

    تعليق


    • #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

      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]([/B][/SIZE]
      [CENTER][SIZE=3][B]if ckb5.checked == true then[/B][/SIZE]
      [SIZE=3][B]ckb5.text = "Checked"[/B][/SIZE]
      [SIZE=3][B]else[/B][/SIZE]
      [SIZE=3][B]ckb5.text = "unChecked"[/B][/SIZE]
      [SIZE=3][B])[/B][/SIZE][/CENTER]
      [/CENTER]
      [SIZE=3][B][/B][/SIZE]


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

      الآن نضيف العنصر 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
      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]messagebox cbx1.items[sel][/B][/SIZE][/CENTER]
      [SIZE=3][B][/B][/SIZE]


      النتيجة:

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

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



      كود:
      on btn16 pressed do
      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]cbx1.selected = edt1.text as string[/B][/SIZE][/CENTER]
      [SIZE=3][B][/B][/SIZE]





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

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

      مع الحدث البسيط
      كود:
      on rdo1 changed stat do
      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]messagebox (rdo1.state as string)[/B][/SIZE][/CENTER]
      [SIZE=3][B][/B][/SIZE]



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

      نضيف الحدث التالي:
      كود:
      on spn1 changed val do
      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]pb1.value = val[/B][/SIZE][/CENTER]
      [SIZE=3][B][/B][/SIZE]



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

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

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

      و نضيف الحدث التالي:
      كود:
      on sld1 changed val do
      كود:
      [SIZE=3][/SIZE][CENTER][SIZE=3][B]pb1.value = val[/B][/SIZE][/CENTER]
      [SIZE=3][B][/B][/SIZE]



      وبهذا نكون قد انتهينا من شرح أمثلة في كيفية إضافة العناصر إلى نافذة السكربت عن طريق الأداة الفعالة جدا
      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. سبب آخر: رد محجوز لتكملة الدرس
      - مثال عن كيفية عمل سكربت خفيف بنافذة GUI
      أخوكم محمد عجيل

      تعليق


      • #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. سبب آخر: رد محجوز لتكملة الدرس
        - مثال عن كيفية عمل سكربت خفيف بنافذة GUI
        أخوكم محمد عجيل

        تعليق


        • #5
          ما شاء الله عليك

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

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

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

          تعليق


          • #6
            المشاركة الأصلية بواسطة omarzonex مشاهدة المشاركة
            ما شاء الله عليك

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

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

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

            تعليق


            • #7
              شكرا اخي ojail
              نرجو منك المتابعة
              كل شئ عن الإضاءة هاااااااااااااااااااااااااام جدا

              scienceVFX@yahoo.com

              تعليق


              • #8
                اكمل اكمل .......
                █║▌│█│║▌║││█║▌│║▌║
                الايميل : attef_omer@hotmail.com

                تعليق


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

                  تعليق


                  • #10
                    شكرا اخي ojail
                    *****

                    تعليق


                    • #11
                      شكرا لك أخي محمد
                      آسف على غيابي
                      مجهود رائع
                      متابعك
                      إنتبه :
                      (إن شاء الله) وليس ( إنشاء الله)
                      .....................................................................
                      شكوت إلى وكيع سوء حفظي... فأرشدني إلى ترك المعاصي
                      وأعلمني أن علم الله نورَ......... ونور الله لايهدى لعاصي

                      تعليق


                      • #12
                        بارك الله فيك يا سيدي .......رمضان كريم.....

                        اللهم ارحمني فوق الارض و ارحمني تحت الارض و الطف بي يوم العرض فلا ارى لي من ملاجئ غير رحمتك التمس بها وليس لي من الاعمال ما افتخر به لما القاك ..

                        اعمالي
                        https://www.artstation.com/the_physicist

                        تعليق


                        • #13
                          جزاك الله خيرا اخي الكريم
                          في انتظار باقي الدرس ان شاء الله
                          *****
                          My Rigging & Scripting Showreel
                          ------------------------------------------
                          http://vimeo.com/25566765
                          http://vimeo.com/18839388
                          https://vimeo.com/44771388
                          https://vimeo.com/45134084

                          تعليق


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

                            تعليق


                            • #15
                              شكرا ابو حميد
                              الله يعينا على ضيق الوقت
                              إنتبه :
                              (إن شاء الله) وليس ( إنشاء الله)
                              .....................................................................
                              شكوت إلى وكيع سوء حفظي... فأرشدني إلى ترك المعاصي
                              وأعلمني أن علم الله نورَ......... ونور الله لايهدى لعاصي

                              تعليق

                              يعمل...
                              X