تصميم القوائم المنسدلة في أوتوكاد

مقدمة:

يتمتع أوتوكاد بمرونة عالية، ويتيح للمستخدم أكثر من طريقة لتنفيذ الأوامر، منها:
  • القوائم المنسدلة (drop-down menus أو pull-down menus)، وهي موضوع هذه المقالة.
  • قائمـة الشاشة (screen menu): وهي قائـمة كان لها شأن في الإصدارات القديمة من أوتوكاد، وكانت تظهر إلى يمـين نافذة البرنامج، وتتألف من قوائم رئيسية تتفرع إلى قوائم فرعية تحتوي على أوامر البرنامج مصنفة حسب الوظيفة في مجموعات. ولمعرفة المزيد عنها راجع فقرة "قائمة الشاشة" في الدرس التاسع في دورة "تعلم أوتوكاد 2000"، في هذا الموقع.
  • نافذة الأوامر (command window): يمكن كتـابة الأمر أو إختصـاره عند المحث (Command). ويفضل هذا الأسلوب مستخدمي أوتوكاد القدامى، نظراً لتعودهم على كتابة الأوامر عندما كان البرنامج يخلو من الطرق البديلة.
  • أشـرطة الأدوات العائمة (floating tool bars): صممت أشرطة أدوات الأدوات بحيث يقوم أوتوكاد بتنفيذ الأوامر بمجرد الضغط على هذه الأزرار، وهي طريقة سهلة جدا وفعالة، وتعكس روح نظام التشغيل ويندوز.


ما هي القوائم المنسدلة:

يقع شريط القائمة (menu bar) في أعلى نافذة البرنامج إلى الأسفل من شريط العنوان (title bar)، وهو شريط يحتوي على مجموعة عناوين لقوائم تنسدل إلى الأسفل بمجرد النقر عليها، وتزودنا بطريقة مريحة لتنفيذ الأوامر ومخاطبة أوتوكاد. كما في المثال التالي المقتطع من القائمة أدوات:

الشكل (1): أوامر في القائمة أدوات.
و يمكن ملاحظة ثلاثة أنواع من الأوامر في هذه القوائم، تظهر جميعاً في المثال السابق:
  • أوامر ليس أمامها شيء، مثل الأمر (Spelling)، وهذا يعني أن الأمر يتم تنفيذه بشكل مباشر عند النقر عليه بالزر الأيسر للفأرة، وهنا ينتهي دور القائمة المنسدلة إذ ننتقل مباشرة إلى نافذة الأوامر حيث نجد الرسالة(:Select objects) التي تطلب انتقاء كائنات لتدقيقها إملائياً.
  • أوامر أمامها رأس سهم صغير، ما يعني وجود قائـمة فرعية تتضمن خيارات وأوامر أخرى، كما في أمر ترتيب الإظهار (Display Order)، حيث يمكن ترتيب إظهار الكائنات بأربع طرق.
  • أوامر أمامها ثلاث نقاط (...)، وتنفيذ هذه الأوامر يقودنا إلى صندوق حوار، يتم من خلاله إدخال المعلومات المطلوبة في البرنامج. فلو نفذنا الأمر (Quick Select…) مثـلاً، فإن صندوق حوار "الانتقاء السريع" سيظهر مباشرة كما في الشكل التالي:

الشكل (2): صندوق حوار الانتقاء السريع.
*
يسمح أوتوكاد للمستخدم بإنشاء قوائم مخصصة (customized)، أي يفصلها المستخدم حسب حاجته، ويتضمن النوع الأول أوامر أوتوكاد ذاتها، بعد أن يتم صياغتها بأسلوب خاص يخدم عملية التصميم، كأن يتم إنشاء قائمة خاصة تحتوي على أوامر رسم وأوامر تعديل وأوامر عرض وأوامر أبعاد معينة...الخ، ما يوفر على المستخدم عناء التنقل بين القوائم الأصلية التي تحتوي هذه الوظائف، ويقلل من الوقت اللازم للتنفيذ، ويرفع من مستوى أداء المستخدم. ويتضمن النوع الثاني من القوائم التي يمكن إنشاؤها أوامر جديدة يؤدي النقر عليها إلى تشغيل برامج مكتوبة بأوتوليسب أو فيجوال بيسك للتطبيقات الخ، أو أوامر تستنخدم خصوصاً لإدراج رموز قياسية يتم إعدادها في مكتبات خاصة.
*
ملفات القائمة:

تتألف القائمة من ملفات نصية تسمى ملفات القائمة (menu files)، ويشير هذا المصطلح إلى مجموعة من الملفات تعمل معاً لتعريف القائمة وتحديد موقعها ضمن نافذة البرنامج، وثمة أنواع مختلفة من هذه الملفات هي:
  1. ملف قالب القائمة: وهو ملف نصي في هيئة MNU يشكل المصدر الرئيسي للقائمة.
  2. ملف القائمة المصرّف (compiled): وهو ملف ثنائي (binary) في هيئة MNC يحتوي على سلاسل الأوامر وتركيب القائمة التي تعرف معاً وظائف القائمة ومظهرها.
  3. ملف موارد القائمة: وهو ملف ثنائي في هيئة MNR يحتوي على الصور النقطية التي تستخدمها القائمة.
  4. ملف القائمة المصدري: وهو ملف في هيئة MNS يولده أوتوكاد تلقائياً.
  5. ملف موارد القائمة: وهو غير الملف السابق (رقم 3) يولده أوتوكاد عندما لا يعثر على الملف MNR، ويكون في هيئة MNT.
  6. ملف ليسب القائمة، وهو ملف نصي في هيئة MNL يحوي تعابير أو برامج بلغة أوتوليسب تستخدمها القائمة ويقوم أوتوكاد بتحميلها تلقائياً كلما قام بتحميل قائمة لها الاسم ذاته.
القوائم الأساسية والقوائم الجزئية:

يسـتخدم أوتوكاد مفهومي القائمة الأساسية (base menu) والقائمة الجزئية (partial menu). فالقائمة الأساسية هي آخر قائمة تم تحميلها باستخدام الأمر (MENU). أما القائمة الجزئية فهي أي قائمة يتم تحميلها بالأمر(menuload) الذي يتيح إمكانية تحميل القوائم الجزئية وإضافة أو إعادة ترتيب القوائم في شريط القوائم. وعندما تحمل القائمة الجزئية فإن جميع محتوياتها تصبح جاهزة للاستعمال.
عند الخروج من أوتوكاد يتم تسجيل اسم القائمة الرئيسية، وأسماء 24 قائمة (ما يتوفر منها) من القوائم الجزئيـة معرفة حسب مجموعاتها. يضمن هذا أن تبقى واجهة أوتوكاد كما هي عند تشغيل البرنامج مرة أخرى. ويستطيع المصمم باستخدام مبدأ القوائم الجزئية استخدام قوائم متعددة بكفاءة، ويتم ذلك باستخدام طريقة مريحة وسهلة سنتحدث عنها لاحقاً.
*
تحميل ملفات القائمة:

يستخدم الأمر menu لتحميل قائمـة جديدة، كما يستخدم الأمران menuload وmenuunload لتحميل وإلغاء تحميل القوائم الجزئية ولإضافة أو إزالة قائمة معينة من شريط القوائم.
يحفظ أوتوكاد اسم القائمة الأخيرة التي تم تحميلها في سجل النظام، وفي الرسم أيضاً. وعند تشغيل أوتوكاد يتم تحميل آخر قائمة تم استخدامها. ومن الجدير بالذكر أن أوتوكاد يقوم بتحميل الملف المطلوب عند استخدام الأمر menu وفق التسلسل التالي:
  • يبحث أوتوكاد عن الملف MNS وبعد أن يجده يقوم بالبحث عن الملف MNC والذي يحمل الاسم ذاته في المجلد ذاته، فإذا وجده بنفس تاريخ ووقت الملف MNS فإنه يقوم بتحميله وإلا قام بتصريف الملف MNS للحصول على نسخة جديدة من الملــف MNC في المجلد ذاته، ثم قام بتحميله.
  • بعـد أن يجـد أوتوكـاد الملف MNC ويقـوم بتحميلـه فإنه يبحث عن الملف MNL الذي يحمل الشفرة المكتوبة بلغة أوتوليسب والتي يستخدمها الملف MNU، فإذا وجده قام بتحميله كلما قام بتحميل الملف MNU.
مكونات ملفات القائمة:

يحتوي ملف القائمة على عدة أقسام، يتعلق بنواح محددة من الواجهة التطبيقية للبرنامج. ويمكن أن يتطلب تعريف ناحية واحدة من الواجهة التطبيقية قسماً واحداً أو أكثر من ملف القائمة وذلك تبعاً للوظيفة التي تقدمها. يحتوي كل قسم على بنود القائمة (هي الأوامر التي تظهر في القائمة مثل أمر Line وCircle) التي تتضمن تعليمات تتعلق بظهور وعمل القائمة. ويكون تركيب بنود القائمة من معرّف الاسم (name tag) والتسمية (label) وماكرو القائمة (menu macro)، مثل بند القائمة Quit الذي يكون على الشكل التالي:
ID_Quit [Exit]^C^C_quit
ويتألف من:
  • معرّف الاسم (ID_Quit): وهو اسم فريد لبند القائمة، لا يظهر للمستخدم ولكنه يستعمل في تحديد هوية بند القائمة أو زر شريط الأدوات وذلك لاستخدامه في أمور منها إظهار سسلسة التعليمات (helpstring) الخاصة به في شريط الحالة.
  • التسمية (Exit): وتكون محصورة بين قوسين مربعين [ ]، وهي الاسم الذي يظهر في القائمة.
  • ماكرو القائمة (^C^C_quit): وهو ما ينفذه أوتوكاد عند النقر على بند القائمة، وتعني ^C^C تنفيذ Cancel مرتين وذلك للخروج من الأمر السابق إذا كان لم ينته تنفيذه بعد، والخط السفلي الذي يحدد اسم الأمر الداخلي في أوتوكاد، وذلك لضمان عمل ماكرو القائمة في النسخ غير الإنجليزية من أوتوكاد. والأمر quit الذي تعرفونه. وبالرغم من أن بنود القائمة متشابهة من حيث التركيب والوظيفة، إلا أن لكل قسم قواعد خاصة به.
لا يحتوي ملف القائمة بالضرورة على كل الأقسام، بل يستطيع المستخدم أن يصمم الجزء المطلوب في ملف منفصل، حيث ينصح بأن تكون القوائم المخصصة الإضافية في أوتوكاد في ملفات صغيرة منفصلة بحيث يتم تحميلها وإلغاء تحميلها عن طريق الأمرين menuload وmenuunload. وهذا يساعد على السيطرة على العمل بسهولة، كما أن يسهل تحديث وتعديل هذه الملفات الصغيرة. ويتم تمييز أقسام ملف القائمة بعناوين فاصلة تأخذ الشكل ***section_name. ويمكن إجمال الأقسام التي تشكل بمجموعها ملف القائمة على النحو التالي:
* القسم *
الشرح
1. MENUGROUP*** *
اسم مجموعة القائمة يستخدم مع القوائم الأساسية والجزئية لتمييزها عن بعضها البعض.
2. BUTTONSn*** *
قسم تعريف جهاز التأشير.
3. AUXn*** *
قسم تعريف جهاز تأشير النظام.
4. POPn*** *
قسم القوائم المنبثقة (pop-up menus).
5. TOOLBARS*** *
قسم أشرطة الأدوات (toolbars).
6. IMAGE*** *
قسم تعريف قائمة الصور (image tile menu).
7. SCREEN*** *
قسم تعريف قائمة الشاشة (screen menu).
8. TABLETn*** *
قسم تعريف المرقّمة (digitizer).
9. HELPSTRINGS*** *
سلسلة تعليمات تتضمن توضيحاً بسيطاً يظهر في شريط الحالة عندما يتم التأشير على بند القائمة.
10. ACCELERATORS*** *
قسم تعريف مفاتيح التسريع.
سنبحث في هذه المقالة في البندين الرابع والسادس، حيث أن الهدف هو الوصول إلى تصميم قائمة منسدلة يتم من خلالها إدراج الرموز القياسية من المكتبات التي سنراها بعد قليل بسهولة ويسر دون الحاجة إلى إعادة إدراجها كل مرة باستخدام أمر إدراج (insert).
القوائم المنبثقة (pop-up menus):

يتم تعريف القوائم المنبثقة بأقسام تبدأ بـ ***POP1 ويمكن أن تصل إلى ***POP500. وهذا يعني أن القائمة يمكن أن تحتوي 500 قائمة منبثقة، وإذا تجاوز مصمم القائمة هذا العدد فإن أوتوكاد يهمل القوائم المنبثقة الزائدة. تقع القوائم المنبثقة ضمن شريط القوائم في أعلى شاشة أوتوكاد. وعند النقر على أي عنوان من عناوينها تنسدل القائمة إلى الأسفل لتعرض الأوامر هكذا.
عند تحميل ملف القوائم يبحث أوتوكاد عن الأقسام المعرفة بـ POPn ثم يقوم بإنشاء شريط القوائم المعرفة بالأقسام POP1 إلى POP16، بينما يمكن تحميل الأقسام POP17 إلى POP500 عن طريق الأمر MENULOAD. ولبيان بعض القواعد المهمة نورد هنا مثالاً توضيحياً لبرمجة قائمة مخصصة نسميها قائمتي (My Menu):
***MENUGROUP=MYMENU
***POP1
[M&y Menu]
ID_Line ********* [&Line]^C^C_line
ID_Circle*** *** [->Circle]
ID_Circle2pt*** [2 Points]^C^C_circle _2p
ID_Circle3pt*** [<-3 Points]^C^C_circle _3p
ID_Polygon *** [Hexagon\tIR50]^C^C_polygon;6;\_i;50;
[--]
ID_Offset ***** [Off&set\tD10]^C^C_offset;10;
ID_Chamfer * [&Chamfer\tD15]^C^C_chamfer;d;15;15;
ID_Fillet ******* [&Fillet\tR20]^C^C_fillet;r;20;

تظهر القائمة الجزئية My Menu بعد تحميلها بالأمر menuload كما في الشكل التالي:

الشكل (3): القائمة "قائمتي".
ويمكن إجمال القواعد المتبعة في كتابة القوائم المبثقة فيما يلي:
الحروف
*
الشرح
–– *
خط فاصل بين مجموعات البنود التي تكوّن القائمة المنبثقة.
+
*
يوضع في نهاية سطر الماكرو للدلالة على أن البقية في السطر التالي.
<-
*
رمز يسبق بند معين للدلالة على أن هذا البند تتفرع منه قائمة فرعية. ويؤدي ذلك إلى ظهور رأس سهم صغير أمام البند.
->
*
يوضع هذا الرمز للدلالة على أن هذا البند هو آخر بند من القائمة الفرعية.
<–<–
*
يوضع هذا الرمز للدلالة على أن هذا البند هو آخر بند في القائمة الفرعية وهو في ذات الوقت آخر بند في القائمة الرئيسية.
~
*
إذا وضع هذا الرمز قبل بند من بنود القائمة فإنه يصبح معطلاً.
!
*
إذا وضع هذا الرمز قبل بند معين سيظهر ومعه علامة √.
&
*
إذا وضع هذا الرمز قبل حرف معين من حروف تسمية بند في القائمة فإن هذا الحرف سيظهر وتحته خط، بحيث سيكون هو مفتاح التسريع، مثل S&ample التي تظهر Sample.
t\
*
يدفع كل ما وراءه إلى أقصى اليمين في القائمة المنبثقة.
*
يتم تعريف تسمية القائمة الي ستظهر في شريط القائمة في أعلى نافذة البرنامج بوضعه في السطر الأول بعد السطر ***POP، ثم يتم في السطور التالية تعريف تسميات البنود المكوّنة للقائمة المنبثقة. وفي المثال أعلاه، وفي السطر الأول بعد *** POP1 نجد التسمية [M&y Menu] التي تظهر في شريط القائمة هكذا My Menu. ويبدو الحرف y وتحته خط صغير للدلالة على أنه إذا تم الضغط على الزريـن Alt+y فإن القائمة ستنسدل إلى الأسفل. ومن الجدير بالذكر أن تسمية القائمة لايمكن أن يتلوها ماكرو قائمة.
إن معرّف الاسم ID_Line الذي يسبق الأمر Line له وظائف متعددة منها إظهار سلسلة تعليمات في شريط الحالة عن البند Line.
تستخدم رموز خاصة مثل ( ) للتحكم بالبنية الهرمية للقوائم الفرعية المتعاقبة (cascading submenus)، ويوضح الرمز فهو يبين أن هذا البند هو آخر بند من بنود القائمة الفرعية، كما في الأمر Circle في المثال أعلاه:

ID_Circle*** *** [->Circle]
ID_Circle2pt*** [2 Points]^C^C_circle _2p
ID_Circle3pt*** [<-3 Points]^C^C_circle _3p

نستخدم الرمز [--] لعمل خطوط فاصلة بين بنود القائمة المنبثقة، كما في المثال السابق حيث فصلنا أوامر الرسم عن أوامر التعديل. ويتحدد عرض القائمة المنبثقة من خلال عرض أطول تسمية من تسميات بنود القائمة، ولذلك فإنه في المثال السابق يتمدد الخط لكي يصبح خطاً فاصلاً يملأ عرض القائمة بالكامل، ولايمكن بالطبع اختيار هذا الخط الفاصل من القائمة المنبثقة، كما أن أوتوكاد يتجاهل أي ماكرو قائمة يوضع بعده.
قوائم الصور (image tile menus):

إن الهدف الرئيس من هذه القوائم إظهار الخيارات أو الأوامر في هيئة صور تساعد المستخدم على اختيار الأمر المطلوب. وأكثر ما تستعمل عند إنشاء مكتبة من الرموز الهندسية يتم إدراج مكوناتها بالنقر على الصورة المطلوبة، وكانت تستخدم في الإصدارة 12 من أوتوكاد مع الأمر style للسماح للمستخدم باختيار خط الكتابة المطلوب بالنقر على صورته، ولازالت تستخدم في أوتوكاد 2000 في عدد من الأوامر منها ...Draw>Surfaces>3D Surfaces:


الشكل (4): قائمة الصورة.
*
يتم تعريف هذا النوع من القوائم بإضافة القسم ***IMAGE إلى ملف القائمة، ويقوم أوتوكاد بعرض مجموعات من الصور يصل عددها إلى 20 صورة مع قائمة جانبية بأسماء هذه الصور. وإذا تجاوز عدد الصور هذا الرقم فإن أوتوكاد يزود صندوق الحوار بالزرين "سابق" و"تالي" للتنقل بين مجموعات الصور.
يحتوي السطر الأول من القسم ***IMAGE على تسمية قائمة الصورة، كما هو الحال في القسم الخاص بالقائمة المنبثقة ***POP، وتعرض هذه التسمية أعلى يسار صندوق الحوار الذي يحتوي الصور. ويجب الفصل بين أقسام مجموعات الصور بسطر فارغ واحد على الأقل. ومع أنه لكل بند من بنود قائمة الصورة تسمية وماكرو قائمة إلا أنه يفتقر إلى معرّف الاسم.
يقوم الأمر $I= باستدعاء قائمة الصورة. وقبل أن يصبح عرض قائمة الصورة ممكناً يجب تحميلها باستخدام التركيب التالي:
$I=[menugroup.]menuname

ويقوم الأمر $I = * بعرض قائمة الصورة المحملة حالياً. يقوم الماكرو التالي على سبيل المثال بتحميل وعرض قائمة الصورة MYBLOCKS في قائمة جزئية اسمها MYGROUP:
$I = MYGROUP. MYBLOCKS $I = *

صُمّم أوتوكاد بحيث يكون أداة عامة تخدم كافة الاختصاصات الهندسية، ولكن فائدة البرنامج تزداد بتخصيصه وبرمجته بحيث يخدم حاجة المستخدم. وعلى سبيل المثال ثمة عدد كبير من الرموز الهندسية التي يتكرر استخدامها في التصميمات الميكانيكية بحيث يضيع الوقت عند إعادة رسمها (أو حتى استخدام الأمر INSERT لإدراجها) كلما احتجنا إلى رسمها. ومن هذه الرموز أو المكونات المسامير الملولبة والصواميل والخوابير والتروس والمحامل وغيرها. ولذلك فإن أوتوكاد يوفر إمكانية تحويل هذه الرموز والمكونات إلى مكتبة رموز تظهر على شكل قائمة صورة يسهل انتقاء الرموز منها.
يتم إعداد الصور في أوتوكاد من الشرائح المنزلقة (slides) باستخدام الأمر mslide، وتجدر الإشارة إلى أن هذه الصور يجب أن تكون بسيطة ومعبرة ويمكن تمييزها بسهولة. ويجب أيضاً أن تملأ هذه الصور المساحة المخصصة لها ضمن مصفوفة المستطيلات التي تشكل بمجموعها صندوق الحوار، وذلك بتقريب/تبعيد الرسم (zoom) بحيث يملأ شاشة أوتوكاد قبل استخدام الأمر mslide.
*


الشكل (5): إضافة المجلد C:\My Library إلى مسارات الدعم في أوتوكاد.
*
يمكن إجمال الخطوات اللازمة لبرمجة قائمة الصورة بما يلي:
  1. إنشاء الرسوم الخاصة بالمكونات والرموز المطلوبة في أوتوكاد، وتخزينها في مجلد خاص، على أن يتم إضافة هذا المجلد إلى مسارات الدعم في أوتوكاد. فإذا افترضنا أننا حفظنا هذه الرسوم في المجلد C:\My Library فإننا نقوم بإضافة هذا المسار إلى مسارات الدعم في أوتوكاد باستخدام الأمر Tools>Options…، وتحديداً في لسان التبويب Files.
  2. إعداد الشرائح المنزلقة المراد إظهارها في قائمة الصورة وذلك بفتح كل رسم وإنشاء منزلقة له (ملف SLD) على حدة باستخدام الأمر mslide مع حفظ هذه المنزلقات بنفس اسم الرسم وفي المجلد C:\My Library أيضاً.
  3. إعداد ملف نصي باستخدام المفكرة في ويندوز مثلاً بحيث يتضمن هذا الملف أسماء المنزلقات، ويمكن الحصول على الملف mylist.txt الذي يتضمن أسماء المنزلقات في المجلد My Library بسهولة باستخدام التعليمة DIR في دوس، كما يلي:


الشكل (6): استخدام التعليمة dir في دوس للحصول بسرعة على أسماء المنزلقات.
*
*ولكن علينا الانتباه إلى أن الملف mylist.txt يتضمن أسماء كافة المنزلقات في المجلد My Library، ولذلك فعلينا أن نقوم بإنشاء عدة ملفات نصية صغيرة انطلاقاً من الملف mylist.txt يتضمن كل واحد منها أسماء المنزلقات التي تصب في فئة واحدة فقط، مثل فئة المسامير الملولبة وفئة الصواميل الخ.
*
  1. إعداد مكتبات المنزلقات باستخدام الأداة الخدمية slidelib.exe الموجودة في أوتوكاد في المجلد support في أوتوكاد. تقوم هذه الأداة بإنشاء مكتبة منزلقات (ملف واحد بهيئة SLB) من مجموعة من المنزلقات (عدة ملفات بهيئة SLD)، وذلك بتمرير الملف النصي الذي قمنا بإعداده في الخطوة الثالثة.
ومن الجدير بالذكر أن نسخ الأداة slidelib.exe من مجلد الدعم في أوتوكاد إلى المجلد My Library يسهمل العمل على إنشاء مكتبة المنزلقات كثيراً، فلو افترضنا أننا قمنا بنسخ هذه الأداة إلى هناك، وأن الملف bolts.txt يتضمن أسماء المنزلقات التي تتعلق بالمسامير الملولبة، فيمكن إنشاء مكتبة المنزلقات bolts.slb كما يلي:


الشكل (7): استخدام الأداة slidelib.exe لإنشاء مكتبة منزلقات.
*
حيث bolts هي المكتبة المطلوبة و bolts.txt هو الملف الذي يحتوي أسماء المنزلقات المكونة لهذه المكتبة و الذي تم إعداده في الخطوة الثالثة.
  1. نضيف في قسم القوائم المنبثقة الأمر $I كما شرحناه قبل قليل، فالبند الخاص بإظهار قائمة الصورة الخاصة بالمسامير الملولبة:
[&Bolts...]^C^C$I=MYLIBRARY.bolts $I=MYLIBRARY.*
حيث bolts اسم المكتبة التي أنشأناها في الخطوة الرابعة وMYLIBRARY اسم مجموعة القائمة.
  1. في قسم الصورة نضيف الأمر الذي يقوم بإدراج رسم الرمز المطلوب باستخدام التعليمة insert، فالمثال التالي يبين كيفية برمجة البند HexHead:
لقد تم تصميم القائمة بحيث تحتوي على أربع مجموعات رئيسية، ثلاثة منها ميكانيكية وهي Machine Elements وSpare Parts وMachining Symbols أما الرابعة فهي خاصة بالرسوم المعمارية والمدنية. وباستخدام القواعد التي سبق شرحها، فقد تمت برمجة قائمة سميت "قائمتي" (My Menu) بحيث يمكن إضافتها إلى شريط القائمة في أوتوكاد، كما يلي:
***MENUGROUP=MYLIBRARY
***POP1
[M&y Menu]
[->&Machine Elements]
[->&Fasteners]
[&Bolts...]^C^C$I=MYLIBRARY.bolts $I=MYLIBRARY.*
[&Studs]^C^C_-insert;stud;
[&Cap Screw...]^C^C$I=MYLIBRARY.c-screws $I=MYLIBRARY.*
[&Machine Screw...]^C^C$I=MYLIBRARY.m-screws $I=MYLIBRARY.*
[S&etscrew...]^C^C$I=MYLIBRARY.s-screws $I=MYLIBRARY.*
[<-&Nuts...]^C^C$I=MYLIBRARY.nuts $I=MYLIBRARY.*
[->&Keys]
[&Keys...]^C^C$I=MYLIBRARY.keys $I=MYLIBRARY.*
[<-&Splines]^C^C_-insert;spline;
[&Pins and Cotters...]^C^C$I=MYLIBRARY.pins $I=MYLIBRARY.*
[&Rivets...]^C^C$I=MYLIBRARY.rivets $I=MYLIBRARY.*
[&Belts and Pulleys...]^C^C$I=MYLIBRARY.pulleys $I=MYLIBRARY.*
[&Gears...]^C^C$I=MYLIBRARY.gears $I=MYLIBRARY.*
[B&earings...]^C^C$I=MYLIBRARY.bearings $I=MYLIBRARY.*
[<-&Springs...]^C^C$I=MYLIBRARY.springs $I=MYLIBRARY.*
[->&Spare Parts]
[&Bushing...]^C^C$I=MYLIBRARY.bushing $I=MYLIBRARY.*
[&Chain Wheels]
[&Gears...]^C^C$I=MYLIBRARY.lgears $I=MYLIBRARY.*
[&Fixtures]
[&Rollers...]^C^C$I=MYLIBRARY.rollers $I=MYLIBRARY.*
[&Shafts]
[S&trippers]
[<-G&uides]
[->M&achining Symbols]
[&Geometry Tolerances...]^C^C$I=MYLIBRARY.ami $I=MYLIBRARY.*
[<-S&urface Symbols...]^C^C$I=MYLIBRARY.asi $i=MYLIBRARY.*
[--]
[->&Architecture]
[&Plumbing Equipments...]^C^C$I=MYLIBRARY.equip $I=MYLIBRARY.*
[&Valves...]^C^C$I=MYLIBRARY.valves $I=MYLIBRARY.*
[<-E&lectrical Symbols...]
تحميل القائمة My Menu :

يمكن تحميل القائمة وإظهارها في شريط القائمة أو إخفاؤها عند إنتفاء الحاجة لها، ويتم ذلك في خطوات سهلة وكما هو مبين فيما يلي:
  1. اختر Tools>Customize Menus…، أو اكتب menuload في نافذة أوامر أوتوكاد، فيظهر صندوق الحوار "تخصيص القائمة" (Menu Customization).
  2. انتقل إلى لسان التبويب "مجموعات القائمة" (Menu Groups).
  3. اضغط الزر "استعراض" (Browse...) للوصول إلى ملف القائمة My Menu.mnu الموجود في المجلد C:\My Menu، فيظهر اسم الملف ومساره كاملاً في صندوق النص File Name، كما في الشكل التالي:


الشكل (: تحميل ملف القائمة.
*
  1. اضغط الزر "تحميل" (load) وانقر على الزر موافق في رسالة التحذير التي تظهر، فيتم تحميل الملف وتظهر المجموعة MYLIBRARY التي تضم القائمة My Menu في المجموعة Menu Groups.
  2. انتقل إلى لسان التبويب "شريط القائمة" (Menu Bar).
  3. استعن بالشكل 8 لاختيار المجموعة MYLIBRARY من اللائحة المنبثقة Menu Group، وتحديد القائمة الوحيدة المتوفرة في هذه المجموعة وهي القائمة My Menu والظاهرة في اللائحة Menus، ثم حدد القائمة Window من شريط القائمة Menu Bar، وهذا يعني أنك ترغب بإدراج القائمة My Menu قبل القائمة Window في شريط قائمة أوتوكاد:


الشكل (9): إدراج القائمة My Menu في شريط قائمة أوتوكاد.
*
  1. انقر الزر "إغلاق" وعد إلى أوتوكاد، تجد القائمة الجديدة في الموقع الذي حددته، وكما هو واضح في الشكل التالي:


الشكل (10): القائمة My Menu.
*
وف ما يلي مثالين من قوائم الصورة في القائمة المنبثقة My Menu:


*

**bolts
[STANDARD BOLTS]
[HexHead]^C^C_-insert;hexhead;
[SqHead]^C^C_-insert;sqhead;
[RndHead]^C^C_-insert;rndhead;
*


*

**equip
[Plumbing Equipments]
[EWH]^C^C_-insert;EWH;
[SWM]^C^C_-insert;SWM;
[SWWM]^C^C_-insert;SWWM;
[Sink]^C^C_-insert;sink;
[Bidet]^C^C_-insert;bidet;
[WTANK]^C^C_-insert;WTANK;
[DRAIN]^C^C_-insert;drain;
[Shower]^C^C_-insert;shower;
[SINKLH]^C^C_-insert;sinklh;
[SINKDU]^C^C_-insert;sinkdu;
[BOILER]^C^C_-insert;BOILER;
[URINAL]^C^C_-insert;URINAL;
[Jacuzzi]^C^C_-insert;jacuzzi;
[EuropWC]^C^C_-insert;europwc;
[BathTube]^C^C_-insert;bathtube;
[Lavatory]^C^C_-insert;lavatory;
[OrientWC]^C^C_-insert;orientwc;
[WMACHINE]^C^C_-insert;WMACHINE;
[InsChamb]^C^C_-insert;InsChamb;
خاتمة:

أود في نهاية هذه المقالة أن أشير إلى أنه تتوفر مع هذه المقالة مكتبات متعددة يمكن الاستفادة منها إذا ما تم تركيبها بطريقة مناسبة متبعاً الخطوات التي شرحناها سابقاً، من إنشاء مجلد C:\My Library ونسخ محتويات الملف المضغوط المرفق بهذه المقالة إلى ذلك المجلد، وهي مجموعة من ملفات DWG والمنزلقات SLD ومكتبات المنزلقات SLB والقائمة My Menu.mn.
أرجو من الله أن أكون ساهمت في تقديم شيء نافع لقراء مجلتنا الغراء، كما أدعو الله مخلصاً أن يسدّد خطى العاملين عليها لما فيه خير الأمة، شاكراً لهم الجهد الكبير الذي بذلوه في تنقيح هذه المقالة حتى خرجت بهذه الصورة، ومعرباً في الوقت ذاته عن استعدادي لتلقي ملاحظاتكم واستفساراتكم بسرور بالغ.

تصميم القوائم المنسدلة في أوتوكاد

Posted by مرسلة بواسطة MOHAMED HASSAN On 8:15 ص

مقدمة:

يتمتع أوتوكاد بمرونة عالية، ويتيح للمستخدم أكثر من طريقة لتنفيذ الأوامر، منها:
  • القوائم المنسدلة (drop-down menus أو pull-down menus)، وهي موضوع هذه المقالة.
  • قائمـة الشاشة (screen menu): وهي قائـمة كان لها شأن في الإصدارات القديمة من أوتوكاد، وكانت تظهر إلى يمـين نافذة البرنامج، وتتألف من قوائم رئيسية تتفرع إلى قوائم فرعية تحتوي على أوامر البرنامج مصنفة حسب الوظيفة في مجموعات. ولمعرفة المزيد عنها راجع فقرة "قائمة الشاشة" في الدرس التاسع في دورة "تعلم أوتوكاد 2000"، في هذا الموقع.
  • نافذة الأوامر (command window): يمكن كتـابة الأمر أو إختصـاره عند المحث (Command). ويفضل هذا الأسلوب مستخدمي أوتوكاد القدامى، نظراً لتعودهم على كتابة الأوامر عندما كان البرنامج يخلو من الطرق البديلة.
  • أشـرطة الأدوات العائمة (floating tool bars): صممت أشرطة أدوات الأدوات بحيث يقوم أوتوكاد بتنفيذ الأوامر بمجرد الضغط على هذه الأزرار، وهي طريقة سهلة جدا وفعالة، وتعكس روح نظام التشغيل ويندوز.


ما هي القوائم المنسدلة:

يقع شريط القائمة (menu bar) في أعلى نافذة البرنامج إلى الأسفل من شريط العنوان (title bar)، وهو شريط يحتوي على مجموعة عناوين لقوائم تنسدل إلى الأسفل بمجرد النقر عليها، وتزودنا بطريقة مريحة لتنفيذ الأوامر ومخاطبة أوتوكاد. كما في المثال التالي المقتطع من القائمة أدوات:

الشكل (1): أوامر في القائمة أدوات.
و يمكن ملاحظة ثلاثة أنواع من الأوامر في هذه القوائم، تظهر جميعاً في المثال السابق:
  • أوامر ليس أمامها شيء، مثل الأمر (Spelling)، وهذا يعني أن الأمر يتم تنفيذه بشكل مباشر عند النقر عليه بالزر الأيسر للفأرة، وهنا ينتهي دور القائمة المنسدلة إذ ننتقل مباشرة إلى نافذة الأوامر حيث نجد الرسالة(:Select objects) التي تطلب انتقاء كائنات لتدقيقها إملائياً.
  • أوامر أمامها رأس سهم صغير، ما يعني وجود قائـمة فرعية تتضمن خيارات وأوامر أخرى، كما في أمر ترتيب الإظهار (Display Order)، حيث يمكن ترتيب إظهار الكائنات بأربع طرق.
  • أوامر أمامها ثلاث نقاط (...)، وتنفيذ هذه الأوامر يقودنا إلى صندوق حوار، يتم من خلاله إدخال المعلومات المطلوبة في البرنامج. فلو نفذنا الأمر (Quick Select…) مثـلاً، فإن صندوق حوار "الانتقاء السريع" سيظهر مباشرة كما في الشكل التالي:

الشكل (2): صندوق حوار الانتقاء السريع.
*
يسمح أوتوكاد للمستخدم بإنشاء قوائم مخصصة (customized)، أي يفصلها المستخدم حسب حاجته، ويتضمن النوع الأول أوامر أوتوكاد ذاتها، بعد أن يتم صياغتها بأسلوب خاص يخدم عملية التصميم، كأن يتم إنشاء قائمة خاصة تحتوي على أوامر رسم وأوامر تعديل وأوامر عرض وأوامر أبعاد معينة...الخ، ما يوفر على المستخدم عناء التنقل بين القوائم الأصلية التي تحتوي هذه الوظائف، ويقلل من الوقت اللازم للتنفيذ، ويرفع من مستوى أداء المستخدم. ويتضمن النوع الثاني من القوائم التي يمكن إنشاؤها أوامر جديدة يؤدي النقر عليها إلى تشغيل برامج مكتوبة بأوتوليسب أو فيجوال بيسك للتطبيقات الخ، أو أوامر تستنخدم خصوصاً لإدراج رموز قياسية يتم إعدادها في مكتبات خاصة.
*
ملفات القائمة:

تتألف القائمة من ملفات نصية تسمى ملفات القائمة (menu files)، ويشير هذا المصطلح إلى مجموعة من الملفات تعمل معاً لتعريف القائمة وتحديد موقعها ضمن نافذة البرنامج، وثمة أنواع مختلفة من هذه الملفات هي:
  1. ملف قالب القائمة: وهو ملف نصي في هيئة MNU يشكل المصدر الرئيسي للقائمة.
  2. ملف القائمة المصرّف (compiled): وهو ملف ثنائي (binary) في هيئة MNC يحتوي على سلاسل الأوامر وتركيب القائمة التي تعرف معاً وظائف القائمة ومظهرها.
  3. ملف موارد القائمة: وهو ملف ثنائي في هيئة MNR يحتوي على الصور النقطية التي تستخدمها القائمة.
  4. ملف القائمة المصدري: وهو ملف في هيئة MNS يولده أوتوكاد تلقائياً.
  5. ملف موارد القائمة: وهو غير الملف السابق (رقم 3) يولده أوتوكاد عندما لا يعثر على الملف MNR، ويكون في هيئة MNT.
  6. ملف ليسب القائمة، وهو ملف نصي في هيئة MNL يحوي تعابير أو برامج بلغة أوتوليسب تستخدمها القائمة ويقوم أوتوكاد بتحميلها تلقائياً كلما قام بتحميل قائمة لها الاسم ذاته.
القوائم الأساسية والقوائم الجزئية:

يسـتخدم أوتوكاد مفهومي القائمة الأساسية (base menu) والقائمة الجزئية (partial menu). فالقائمة الأساسية هي آخر قائمة تم تحميلها باستخدام الأمر (MENU). أما القائمة الجزئية فهي أي قائمة يتم تحميلها بالأمر(menuload) الذي يتيح إمكانية تحميل القوائم الجزئية وإضافة أو إعادة ترتيب القوائم في شريط القوائم. وعندما تحمل القائمة الجزئية فإن جميع محتوياتها تصبح جاهزة للاستعمال.
عند الخروج من أوتوكاد يتم تسجيل اسم القائمة الرئيسية، وأسماء 24 قائمة (ما يتوفر منها) من القوائم الجزئيـة معرفة حسب مجموعاتها. يضمن هذا أن تبقى واجهة أوتوكاد كما هي عند تشغيل البرنامج مرة أخرى. ويستطيع المصمم باستخدام مبدأ القوائم الجزئية استخدام قوائم متعددة بكفاءة، ويتم ذلك باستخدام طريقة مريحة وسهلة سنتحدث عنها لاحقاً.
*
تحميل ملفات القائمة:

يستخدم الأمر menu لتحميل قائمـة جديدة، كما يستخدم الأمران menuload وmenuunload لتحميل وإلغاء تحميل القوائم الجزئية ولإضافة أو إزالة قائمة معينة من شريط القوائم.
يحفظ أوتوكاد اسم القائمة الأخيرة التي تم تحميلها في سجل النظام، وفي الرسم أيضاً. وعند تشغيل أوتوكاد يتم تحميل آخر قائمة تم استخدامها. ومن الجدير بالذكر أن أوتوكاد يقوم بتحميل الملف المطلوب عند استخدام الأمر menu وفق التسلسل التالي:
  • يبحث أوتوكاد عن الملف MNS وبعد أن يجده يقوم بالبحث عن الملف MNC والذي يحمل الاسم ذاته في المجلد ذاته، فإذا وجده بنفس تاريخ ووقت الملف MNS فإنه يقوم بتحميله وإلا قام بتصريف الملف MNS للحصول على نسخة جديدة من الملــف MNC في المجلد ذاته، ثم قام بتحميله.
  • بعـد أن يجـد أوتوكـاد الملف MNC ويقـوم بتحميلـه فإنه يبحث عن الملف MNL الذي يحمل الشفرة المكتوبة بلغة أوتوليسب والتي يستخدمها الملف MNU، فإذا وجده قام بتحميله كلما قام بتحميل الملف MNU.
مكونات ملفات القائمة:

يحتوي ملف القائمة على عدة أقسام، يتعلق بنواح محددة من الواجهة التطبيقية للبرنامج. ويمكن أن يتطلب تعريف ناحية واحدة من الواجهة التطبيقية قسماً واحداً أو أكثر من ملف القائمة وذلك تبعاً للوظيفة التي تقدمها. يحتوي كل قسم على بنود القائمة (هي الأوامر التي تظهر في القائمة مثل أمر Line وCircle) التي تتضمن تعليمات تتعلق بظهور وعمل القائمة. ويكون تركيب بنود القائمة من معرّف الاسم (name tag) والتسمية (label) وماكرو القائمة (menu macro)، مثل بند القائمة Quit الذي يكون على الشكل التالي:
ID_Quit [Exit]^C^C_quit
ويتألف من:
  • معرّف الاسم (ID_Quit): وهو اسم فريد لبند القائمة، لا يظهر للمستخدم ولكنه يستعمل في تحديد هوية بند القائمة أو زر شريط الأدوات وذلك لاستخدامه في أمور منها إظهار سسلسة التعليمات (helpstring) الخاصة به في شريط الحالة.
  • التسمية (Exit): وتكون محصورة بين قوسين مربعين [ ]، وهي الاسم الذي يظهر في القائمة.
  • ماكرو القائمة (^C^C_quit): وهو ما ينفذه أوتوكاد عند النقر على بند القائمة، وتعني ^C^C تنفيذ Cancel مرتين وذلك للخروج من الأمر السابق إذا كان لم ينته تنفيذه بعد، والخط السفلي الذي يحدد اسم الأمر الداخلي في أوتوكاد، وذلك لضمان عمل ماكرو القائمة في النسخ غير الإنجليزية من أوتوكاد. والأمر quit الذي تعرفونه. وبالرغم من أن بنود القائمة متشابهة من حيث التركيب والوظيفة، إلا أن لكل قسم قواعد خاصة به.
لا يحتوي ملف القائمة بالضرورة على كل الأقسام، بل يستطيع المستخدم أن يصمم الجزء المطلوب في ملف منفصل، حيث ينصح بأن تكون القوائم المخصصة الإضافية في أوتوكاد في ملفات صغيرة منفصلة بحيث يتم تحميلها وإلغاء تحميلها عن طريق الأمرين menuload وmenuunload. وهذا يساعد على السيطرة على العمل بسهولة، كما أن يسهل تحديث وتعديل هذه الملفات الصغيرة. ويتم تمييز أقسام ملف القائمة بعناوين فاصلة تأخذ الشكل ***section_name. ويمكن إجمال الأقسام التي تشكل بمجموعها ملف القائمة على النحو التالي:
* القسم *
الشرح
1. MENUGROUP*** *
اسم مجموعة القائمة يستخدم مع القوائم الأساسية والجزئية لتمييزها عن بعضها البعض.
2. BUTTONSn*** *
قسم تعريف جهاز التأشير.
3. AUXn*** *
قسم تعريف جهاز تأشير النظام.
4. POPn*** *
قسم القوائم المنبثقة (pop-up menus).
5. TOOLBARS*** *
قسم أشرطة الأدوات (toolbars).
6. IMAGE*** *
قسم تعريف قائمة الصور (image tile menu).
7. SCREEN*** *
قسم تعريف قائمة الشاشة (screen menu).
8. TABLETn*** *
قسم تعريف المرقّمة (digitizer).
9. HELPSTRINGS*** *
سلسلة تعليمات تتضمن توضيحاً بسيطاً يظهر في شريط الحالة عندما يتم التأشير على بند القائمة.
10. ACCELERATORS*** *
قسم تعريف مفاتيح التسريع.
سنبحث في هذه المقالة في البندين الرابع والسادس، حيث أن الهدف هو الوصول إلى تصميم قائمة منسدلة يتم من خلالها إدراج الرموز القياسية من المكتبات التي سنراها بعد قليل بسهولة ويسر دون الحاجة إلى إعادة إدراجها كل مرة باستخدام أمر إدراج (insert).
القوائم المنبثقة (pop-up menus):

يتم تعريف القوائم المنبثقة بأقسام تبدأ بـ ***POP1 ويمكن أن تصل إلى ***POP500. وهذا يعني أن القائمة يمكن أن تحتوي 500 قائمة منبثقة، وإذا تجاوز مصمم القائمة هذا العدد فإن أوتوكاد يهمل القوائم المنبثقة الزائدة. تقع القوائم المنبثقة ضمن شريط القوائم في أعلى شاشة أوتوكاد. وعند النقر على أي عنوان من عناوينها تنسدل القائمة إلى الأسفل لتعرض الأوامر هكذا.
عند تحميل ملف القوائم يبحث أوتوكاد عن الأقسام المعرفة بـ POPn ثم يقوم بإنشاء شريط القوائم المعرفة بالأقسام POP1 إلى POP16، بينما يمكن تحميل الأقسام POP17 إلى POP500 عن طريق الأمر MENULOAD. ولبيان بعض القواعد المهمة نورد هنا مثالاً توضيحياً لبرمجة قائمة مخصصة نسميها قائمتي (My Menu):
***MENUGROUP=MYMENU
***POP1
[M&y Menu]
ID_Line ********* [&Line]^C^C_line
ID_Circle*** *** [->Circle]
ID_Circle2pt*** [2 Points]^C^C_circle _2p
ID_Circle3pt*** [<-3 Points]^C^C_circle _3p
ID_Polygon *** [Hexagon\tIR50]^C^C_polygon;6;\_i;50;
[--]
ID_Offset ***** [Off&set\tD10]^C^C_offset;10;
ID_Chamfer * [&Chamfer\tD15]^C^C_chamfer;d;15;15;
ID_Fillet ******* [&Fillet\tR20]^C^C_fillet;r;20;

تظهر القائمة الجزئية My Menu بعد تحميلها بالأمر menuload كما في الشكل التالي:

الشكل (3): القائمة "قائمتي".
ويمكن إجمال القواعد المتبعة في كتابة القوائم المبثقة فيما يلي:
الحروف
*
الشرح
–– *
خط فاصل بين مجموعات البنود التي تكوّن القائمة المنبثقة.
+
*
يوضع في نهاية سطر الماكرو للدلالة على أن البقية في السطر التالي.
<-
*
رمز يسبق بند معين للدلالة على أن هذا البند تتفرع منه قائمة فرعية. ويؤدي ذلك إلى ظهور رأس سهم صغير أمام البند.
->
*
يوضع هذا الرمز للدلالة على أن هذا البند هو آخر بند من القائمة الفرعية.
<–<–
*
يوضع هذا الرمز للدلالة على أن هذا البند هو آخر بند في القائمة الفرعية وهو في ذات الوقت آخر بند في القائمة الرئيسية.
~
*
إذا وضع هذا الرمز قبل بند من بنود القائمة فإنه يصبح معطلاً.
!
*
إذا وضع هذا الرمز قبل بند معين سيظهر ومعه علامة √.
&
*
إذا وضع هذا الرمز قبل حرف معين من حروف تسمية بند في القائمة فإن هذا الحرف سيظهر وتحته خط، بحيث سيكون هو مفتاح التسريع، مثل S&ample التي تظهر Sample.
t\
*
يدفع كل ما وراءه إلى أقصى اليمين في القائمة المنبثقة.
*
يتم تعريف تسمية القائمة الي ستظهر في شريط القائمة في أعلى نافذة البرنامج بوضعه في السطر الأول بعد السطر ***POP، ثم يتم في السطور التالية تعريف تسميات البنود المكوّنة للقائمة المنبثقة. وفي المثال أعلاه، وفي السطر الأول بعد *** POP1 نجد التسمية [M&y Menu] التي تظهر في شريط القائمة هكذا My Menu. ويبدو الحرف y وتحته خط صغير للدلالة على أنه إذا تم الضغط على الزريـن Alt+y فإن القائمة ستنسدل إلى الأسفل. ومن الجدير بالذكر أن تسمية القائمة لايمكن أن يتلوها ماكرو قائمة.
إن معرّف الاسم ID_Line الذي يسبق الأمر Line له وظائف متعددة منها إظهار سلسلة تعليمات في شريط الحالة عن البند Line.
تستخدم رموز خاصة مثل ( ) للتحكم بالبنية الهرمية للقوائم الفرعية المتعاقبة (cascading submenus)، ويوضح الرمز فهو يبين أن هذا البند هو آخر بند من بنود القائمة الفرعية، كما في الأمر Circle في المثال أعلاه:

ID_Circle*** *** [->Circle]
ID_Circle2pt*** [2 Points]^C^C_circle _2p
ID_Circle3pt*** [<-3 Points]^C^C_circle _3p

نستخدم الرمز [--] لعمل خطوط فاصلة بين بنود القائمة المنبثقة، كما في المثال السابق حيث فصلنا أوامر الرسم عن أوامر التعديل. ويتحدد عرض القائمة المنبثقة من خلال عرض أطول تسمية من تسميات بنود القائمة، ولذلك فإنه في المثال السابق يتمدد الخط لكي يصبح خطاً فاصلاً يملأ عرض القائمة بالكامل، ولايمكن بالطبع اختيار هذا الخط الفاصل من القائمة المنبثقة، كما أن أوتوكاد يتجاهل أي ماكرو قائمة يوضع بعده.
قوائم الصور (image tile menus):

إن الهدف الرئيس من هذه القوائم إظهار الخيارات أو الأوامر في هيئة صور تساعد المستخدم على اختيار الأمر المطلوب. وأكثر ما تستعمل عند إنشاء مكتبة من الرموز الهندسية يتم إدراج مكوناتها بالنقر على الصورة المطلوبة، وكانت تستخدم في الإصدارة 12 من أوتوكاد مع الأمر style للسماح للمستخدم باختيار خط الكتابة المطلوب بالنقر على صورته، ولازالت تستخدم في أوتوكاد 2000 في عدد من الأوامر منها ...Draw>Surfaces>3D Surfaces:


الشكل (4): قائمة الصورة.
*
يتم تعريف هذا النوع من القوائم بإضافة القسم ***IMAGE إلى ملف القائمة، ويقوم أوتوكاد بعرض مجموعات من الصور يصل عددها إلى 20 صورة مع قائمة جانبية بأسماء هذه الصور. وإذا تجاوز عدد الصور هذا الرقم فإن أوتوكاد يزود صندوق الحوار بالزرين "سابق" و"تالي" للتنقل بين مجموعات الصور.
يحتوي السطر الأول من القسم ***IMAGE على تسمية قائمة الصورة، كما هو الحال في القسم الخاص بالقائمة المنبثقة ***POP، وتعرض هذه التسمية أعلى يسار صندوق الحوار الذي يحتوي الصور. ويجب الفصل بين أقسام مجموعات الصور بسطر فارغ واحد على الأقل. ومع أنه لكل بند من بنود قائمة الصورة تسمية وماكرو قائمة إلا أنه يفتقر إلى معرّف الاسم.
يقوم الأمر $I= باستدعاء قائمة الصورة. وقبل أن يصبح عرض قائمة الصورة ممكناً يجب تحميلها باستخدام التركيب التالي:
$I=[menugroup.]menuname

ويقوم الأمر $I = * بعرض قائمة الصورة المحملة حالياً. يقوم الماكرو التالي على سبيل المثال بتحميل وعرض قائمة الصورة MYBLOCKS في قائمة جزئية اسمها MYGROUP:
$I = MYGROUP. MYBLOCKS $I = *

صُمّم أوتوكاد بحيث يكون أداة عامة تخدم كافة الاختصاصات الهندسية، ولكن فائدة البرنامج تزداد بتخصيصه وبرمجته بحيث يخدم حاجة المستخدم. وعلى سبيل المثال ثمة عدد كبير من الرموز الهندسية التي يتكرر استخدامها في التصميمات الميكانيكية بحيث يضيع الوقت عند إعادة رسمها (أو حتى استخدام الأمر INSERT لإدراجها) كلما احتجنا إلى رسمها. ومن هذه الرموز أو المكونات المسامير الملولبة والصواميل والخوابير والتروس والمحامل وغيرها. ولذلك فإن أوتوكاد يوفر إمكانية تحويل هذه الرموز والمكونات إلى مكتبة رموز تظهر على شكل قائمة صورة يسهل انتقاء الرموز منها.
يتم إعداد الصور في أوتوكاد من الشرائح المنزلقة (slides) باستخدام الأمر mslide، وتجدر الإشارة إلى أن هذه الصور يجب أن تكون بسيطة ومعبرة ويمكن تمييزها بسهولة. ويجب أيضاً أن تملأ هذه الصور المساحة المخصصة لها ضمن مصفوفة المستطيلات التي تشكل بمجموعها صندوق الحوار، وذلك بتقريب/تبعيد الرسم (zoom) بحيث يملأ شاشة أوتوكاد قبل استخدام الأمر mslide.
*


الشكل (5): إضافة المجلد C:\My Library إلى مسارات الدعم في أوتوكاد.
*
يمكن إجمال الخطوات اللازمة لبرمجة قائمة الصورة بما يلي:
  1. إنشاء الرسوم الخاصة بالمكونات والرموز المطلوبة في أوتوكاد، وتخزينها في مجلد خاص، على أن يتم إضافة هذا المجلد إلى مسارات الدعم في أوتوكاد. فإذا افترضنا أننا حفظنا هذه الرسوم في المجلد C:\My Library فإننا نقوم بإضافة هذا المسار إلى مسارات الدعم في أوتوكاد باستخدام الأمر Tools>Options…، وتحديداً في لسان التبويب Files.
  2. إعداد الشرائح المنزلقة المراد إظهارها في قائمة الصورة وذلك بفتح كل رسم وإنشاء منزلقة له (ملف SLD) على حدة باستخدام الأمر mslide مع حفظ هذه المنزلقات بنفس اسم الرسم وفي المجلد C:\My Library أيضاً.
  3. إعداد ملف نصي باستخدام المفكرة في ويندوز مثلاً بحيث يتضمن هذا الملف أسماء المنزلقات، ويمكن الحصول على الملف mylist.txt الذي يتضمن أسماء المنزلقات في المجلد My Library بسهولة باستخدام التعليمة DIR في دوس، كما يلي:


الشكل (6): استخدام التعليمة dir في دوس للحصول بسرعة على أسماء المنزلقات.
*
*ولكن علينا الانتباه إلى أن الملف mylist.txt يتضمن أسماء كافة المنزلقات في المجلد My Library، ولذلك فعلينا أن نقوم بإنشاء عدة ملفات نصية صغيرة انطلاقاً من الملف mylist.txt يتضمن كل واحد منها أسماء المنزلقات التي تصب في فئة واحدة فقط، مثل فئة المسامير الملولبة وفئة الصواميل الخ.
*
  1. إعداد مكتبات المنزلقات باستخدام الأداة الخدمية slidelib.exe الموجودة في أوتوكاد في المجلد support في أوتوكاد. تقوم هذه الأداة بإنشاء مكتبة منزلقات (ملف واحد بهيئة SLB) من مجموعة من المنزلقات (عدة ملفات بهيئة SLD)، وذلك بتمرير الملف النصي الذي قمنا بإعداده في الخطوة الثالثة.
ومن الجدير بالذكر أن نسخ الأداة slidelib.exe من مجلد الدعم في أوتوكاد إلى المجلد My Library يسهمل العمل على إنشاء مكتبة المنزلقات كثيراً، فلو افترضنا أننا قمنا بنسخ هذه الأداة إلى هناك، وأن الملف bolts.txt يتضمن أسماء المنزلقات التي تتعلق بالمسامير الملولبة، فيمكن إنشاء مكتبة المنزلقات bolts.slb كما يلي:


الشكل (7): استخدام الأداة slidelib.exe لإنشاء مكتبة منزلقات.
*
حيث bolts هي المكتبة المطلوبة و bolts.txt هو الملف الذي يحتوي أسماء المنزلقات المكونة لهذه المكتبة و الذي تم إعداده في الخطوة الثالثة.
  1. نضيف في قسم القوائم المنبثقة الأمر $I كما شرحناه قبل قليل، فالبند الخاص بإظهار قائمة الصورة الخاصة بالمسامير الملولبة:
[&Bolts...]^C^C$I=MYLIBRARY.bolts $I=MYLIBRARY.*
حيث bolts اسم المكتبة التي أنشأناها في الخطوة الرابعة وMYLIBRARY اسم مجموعة القائمة.
  1. في قسم الصورة نضيف الأمر الذي يقوم بإدراج رسم الرمز المطلوب باستخدام التعليمة insert، فالمثال التالي يبين كيفية برمجة البند HexHead:
لقد تم تصميم القائمة بحيث تحتوي على أربع مجموعات رئيسية، ثلاثة منها ميكانيكية وهي Machine Elements وSpare Parts وMachining Symbols أما الرابعة فهي خاصة بالرسوم المعمارية والمدنية. وباستخدام القواعد التي سبق شرحها، فقد تمت برمجة قائمة سميت "قائمتي" (My Menu) بحيث يمكن إضافتها إلى شريط القائمة في أوتوكاد، كما يلي:
***MENUGROUP=MYLIBRARY
***POP1
[M&y Menu]
[->&Machine Elements]
[->&Fasteners]
[&Bolts...]^C^C$I=MYLIBRARY.bolts $I=MYLIBRARY.*
[&Studs]^C^C_-insert;stud;
[&Cap Screw...]^C^C$I=MYLIBRARY.c-screws $I=MYLIBRARY.*
[&Machine Screw...]^C^C$I=MYLIBRARY.m-screws $I=MYLIBRARY.*
[S&etscrew...]^C^C$I=MYLIBRARY.s-screws $I=MYLIBRARY.*
[<-&Nuts...]^C^C$I=MYLIBRARY.nuts $I=MYLIBRARY.*
[->&Keys]
[&Keys...]^C^C$I=MYLIBRARY.keys $I=MYLIBRARY.*
[<-&Splines]^C^C_-insert;spline;
[&Pins and Cotters...]^C^C$I=MYLIBRARY.pins $I=MYLIBRARY.*
[&Rivets...]^C^C$I=MYLIBRARY.rivets $I=MYLIBRARY.*
[&Belts and Pulleys...]^C^C$I=MYLIBRARY.pulleys $I=MYLIBRARY.*
[&Gears...]^C^C$I=MYLIBRARY.gears $I=MYLIBRARY.*
[B&earings...]^C^C$I=MYLIBRARY.bearings $I=MYLIBRARY.*
[<-&Springs...]^C^C$I=MYLIBRARY.springs $I=MYLIBRARY.*
[->&Spare Parts]
[&Bushing...]^C^C$I=MYLIBRARY.bushing $I=MYLIBRARY.*
[&Chain Wheels]
[&Gears...]^C^C$I=MYLIBRARY.lgears $I=MYLIBRARY.*
[&Fixtures]
[&Rollers...]^C^C$I=MYLIBRARY.rollers $I=MYLIBRARY.*
[&Shafts]
[S&trippers]
[<-G&uides]
[->M&achining Symbols]
[&Geometry Tolerances...]^C^C$I=MYLIBRARY.ami $I=MYLIBRARY.*
[<-S&urface Symbols...]^C^C$I=MYLIBRARY.asi $i=MYLIBRARY.*
[--]
[->&Architecture]
[&Plumbing Equipments...]^C^C$I=MYLIBRARY.equip $I=MYLIBRARY.*
[&Valves...]^C^C$I=MYLIBRARY.valves $I=MYLIBRARY.*
[<-E&lectrical Symbols...]
تحميل القائمة My Menu :

يمكن تحميل القائمة وإظهارها في شريط القائمة أو إخفاؤها عند إنتفاء الحاجة لها، ويتم ذلك في خطوات سهلة وكما هو مبين فيما يلي:
  1. اختر Tools>Customize Menus…، أو اكتب menuload في نافذة أوامر أوتوكاد، فيظهر صندوق الحوار "تخصيص القائمة" (Menu Customization).
  2. انتقل إلى لسان التبويب "مجموعات القائمة" (Menu Groups).
  3. اضغط الزر "استعراض" (Browse...) للوصول إلى ملف القائمة My Menu.mnu الموجود في المجلد C:\My Menu، فيظهر اسم الملف ومساره كاملاً في صندوق النص File Name، كما في الشكل التالي:


الشكل (: تحميل ملف القائمة.
*
  1. اضغط الزر "تحميل" (load) وانقر على الزر موافق في رسالة التحذير التي تظهر، فيتم تحميل الملف وتظهر المجموعة MYLIBRARY التي تضم القائمة My Menu في المجموعة Menu Groups.
  2. انتقل إلى لسان التبويب "شريط القائمة" (Menu Bar).
  3. استعن بالشكل 8 لاختيار المجموعة MYLIBRARY من اللائحة المنبثقة Menu Group، وتحديد القائمة الوحيدة المتوفرة في هذه المجموعة وهي القائمة My Menu والظاهرة في اللائحة Menus، ثم حدد القائمة Window من شريط القائمة Menu Bar، وهذا يعني أنك ترغب بإدراج القائمة My Menu قبل القائمة Window في شريط قائمة أوتوكاد:


الشكل (9): إدراج القائمة My Menu في شريط قائمة أوتوكاد.
*
  1. انقر الزر "إغلاق" وعد إلى أوتوكاد، تجد القائمة الجديدة في الموقع الذي حددته، وكما هو واضح في الشكل التالي:


الشكل (10): القائمة My Menu.
*
وف ما يلي مثالين من قوائم الصورة في القائمة المنبثقة My Menu:


*

**bolts
[STANDARD BOLTS]
[HexHead]^C^C_-insert;hexhead;
[SqHead]^C^C_-insert;sqhead;
[RndHead]^C^C_-insert;rndhead;
*


*

**equip
[Plumbing Equipments]
[EWH]^C^C_-insert;EWH;
[SWM]^C^C_-insert;SWM;
[SWWM]^C^C_-insert;SWWM;
[Sink]^C^C_-insert;sink;
[Bidet]^C^C_-insert;bidet;
[WTANK]^C^C_-insert;WTANK;
[DRAIN]^C^C_-insert;drain;
[Shower]^C^C_-insert;shower;
[SINKLH]^C^C_-insert;sinklh;
[SINKDU]^C^C_-insert;sinkdu;
[BOILER]^C^C_-insert;BOILER;
[URINAL]^C^C_-insert;URINAL;
[Jacuzzi]^C^C_-insert;jacuzzi;
[EuropWC]^C^C_-insert;europwc;
[BathTube]^C^C_-insert;bathtube;
[Lavatory]^C^C_-insert;lavatory;
[OrientWC]^C^C_-insert;orientwc;
[WMACHINE]^C^C_-insert;WMACHINE;
[InsChamb]^C^C_-insert;InsChamb;
خاتمة:

أود في نهاية هذه المقالة أن أشير إلى أنه تتوفر مع هذه المقالة مكتبات متعددة يمكن الاستفادة منها إذا ما تم تركيبها بطريقة مناسبة متبعاً الخطوات التي شرحناها سابقاً، من إنشاء مجلد C:\My Library ونسخ محتويات الملف المضغوط المرفق بهذه المقالة إلى ذلك المجلد، وهي مجموعة من ملفات DWG والمنزلقات SLD ومكتبات المنزلقات SLB والقائمة My Menu.mn.
أرجو من الله أن أكون ساهمت في تقديم شيء نافع لقراء مجلتنا الغراء، كما أدعو الله مخلصاً أن يسدّد خطى العاملين عليها لما فيه خير الأمة، شاكراً لهم الجهد الكبير الذي بذلوه في تنقيح هذه المقالة حتى خرجت بهذه الصورة، ومعرباً في الوقت ذاته عن استعدادي لتلقي ملاحظاتكم واستفساراتكم بسرور بالغ.

|