البرمجة الخارجية للأوتوكاد باستخدام بيئة VisualBasic لتطوير البرمجيات

Hossam_Vbcad

عضو جديد
إنضم
10 ديسمبر 2013
المشاركات
6
مجموع الإعجابات
4
النقاط
0
مساء الخير
لقد بدات منذ فترة في طرح مجموعة من الدروس في المنتدى لتعلم التحكم ببرنامج الأوتوكاد من خلال فيجوال بيزك ... ووصلنا لمرحلة متقدمة في هذه الدروس ....
وبعد انقطاعي عن اكمال هذه السلسلة من الدروس مؤخراً بسبب الظروف الراهنة أعود إليكم اليوم لأطرح هذا الموضوع بشكله النهائي وهو أكثر تعمقاً وترتيباً وشموليةً ويفضي من خلال الدراسة والمتابعة إلى الإلمام الكامل بتقنيات هذه اللغة بكامل مكوناتها
أتمنى من الأخوة الأعضاء المتابعة والمشاركة وبالأخص أن هذا الموضوع نوعي جداً ودقيق ويحتاج إلى دراسة جدية للوصول إلى المهارة والاحتراف

وبعون الله نبدأ


 
التعديل الأخير:

مواضيع مماثلة

Hossam_Vbcad

عضو جديد
إنضم
10 ديسمبر 2013
المشاركات
6
مجموع الإعجابات
4
النقاط
0
الفصل الأول - مفهوم البرمجة باستخدام تقنية ActiveX

مفهوم موديول الكائنات في أوتوكاد Object Model

الكائن Object هو هيكل البناء الرئيسي في أي تطبيق لتقنية ActiveX في الأوتوكاد . وكل كائن نتعامل معه يمثل جزءاً دقيقاً من أوتوكاد .
توجد عدة أنواع للكائنات في تقنية ActiveX منها على سبيل المثال :

  • العناصر الرسومية (Graphical) مثل الخطوط والأقواس والنصوص هي كائنات .
  • إعدادات الأنماط مثل أنماط الخطوط وأنماط النصوص وأنماط الأبعاد هي كائنات .
  • الطبقات والمجموعات والكتل هي كائنات .
  • المشهد view والمعاينة viewport وغيرها مما يتعلق بالمعاينة هي كائنات .
  • وأيضا اللوحة الرسومية وتطبيق الأوتوكاد بحد ذاته عبارة عن كائنات .
تم تمثيل الكائنات في أوتوكاد على شكل مخطط هرمي يوضح ارتباط الكائنات مع بعضها البعض بحيث يظهر الكائن الأب أولاً ثم الكائنات الفرعية أو الكائنات الأبناء ثانياً . ويعتبر الكائن Application الذي يمثل تطبيق الأوتوكاد المستوى الأعلى في هذا التسلسل الهرمي . ويوضح الشكل (1-1) التسلسل الهرمي للكائنات في أوتوكاد أو ما يسمى Object Model .

لمحة عن الكائن Application
الكائن Application هو الكائن الرئيسي الأعلى في التسلسل الهرمي للكائنات وهو يمثل تطبيق الأوتوكاد نفسه . ويمكن من خلال هذا الكائن الوصول إلى الكائنات الفرعية الأخرى مع خصائصها ووظائف التحكم بها . على سبيل المثال فالكائن Application يمتلك الخاصية Preferences والتي تمكننا من الوصول إلى الكائن الفرعي Preferences وهذا الكائن يتيح الوصول إلى الإعدادات الخاصة ببرنامج أوتوكاد والمخزنة في ذاكرة النظام registry وهو يمتلك جميع الإعدادات الموجودة في مربع الحوار Options في برنامج أوتوكاد .
كما يمتلك الكائن Application مجموعة من الخصائص الأخرى المتعلقة باسم التطبيق وإصداره وأبعاد نافذة التطبيق مثل الخاصية name والخاصية version وغيرها من الخصائص .
بالإضافة إلى ذلك توجد العديد من الوظائف للتحكم بالكائن Application مثل وظائف التحميل loading والعرض listing لتطبيقات ADS و تطبيقات ARX . بالإضافة إلى الوظيفة Quit لإنهاء التطبيق . كما يتيح الكائن Application الوصول إلى العناصر الرسومية من خلال الكائن Documents و الوصول إلى القوائم وأشرطة الأدوات من خلال الكائنات MenuBar و MenuGroups .
01.JPG
الشكل (1-1) مخطط التسلسل الهرمي للكائنات Object Model

يتكون الكائن Application من عدة كائنات رئيسية ، تتفرع عنها مجموعة من الكائنات الفرعية بشكل هرمي . ويكفي معرفة أن الكائن الرئيسي هو Application ويتفرع عنه الكائنات الموضحة بالشكل (1-2) :

02.JPG

الشكل (1-2) الكائنات الرئيسية المتفرعة عن الكائن Application


  • الكائن Prefrences : يمثل إعدادات بيئة أوتوكاد الحالية .
  • الكائن Documents : ويمثل اللوحات المفتوحة في جلسة أوتوكاد الحالية .
  • الكائن MenuBar : يمثل جميع القوائم الظاهرة حالياً في جلسة أوتوكاد الحالية.
  • الكائن MenuGroups : ويمثل جميع القوائم وأشرطة الأدوات المحملة في جلسة أوتوكاد الحالية.

لمحة عن الكائن Document
الكائن Document هو أهم كائن في أوتوكاد على الإطلاق ويمثل لوحة الرسم التي سنتعامل معها لإضافة العناصر الرسومية المختلفة . ويمكن الوصول لهذا الكائن من خلال الكائن الأب Documents الذي يحوي مرجعاً لكافة اللوحات المفتوحة في جلسة العمل الحالية . ويمكن إضافة عدد غير محدد من اللوحات إلى جلسة العمل وكل لوحة من هذه اللوحات تمثل بكائن Document وتأخذ رقماً محدداً في جلسة العمل .
الكائن Document يتيح الوصول إلى جميع العناصر الرسومية مثل الخطوط lines والدوائر circles والأقواس arcs وغيرها من العناصر الرسومية . كما يتيح الوصول لمعظم العناصر غير الرسومية مثل الطبقات Layers وأنماط الخطوط Linetypes وأنماط النصوص TextStyles . عدا عن أوامر التعديل والانتقاء والطباعة .
ويبين الشكل (1-3) البنية الهرمية للكائن Document والكائنات المتفرعة عنه .
03.JPG


الشكل (1-3) مخطط التسلسل الهرمي للكائن Document

مفهوم التجمعات
Collection Objects
يقوم برنامج أوتوكاد بتجميع معظم الكائنات والعناصر في جلسة العمل ضمن مجموعات تسمى تجمعات Collections وهي أيضاً تعتبر كائنات . ويمكن إضافة الكائنات والعناصر إلى معظم هذه التجمعات من خلال الوظيفة Add<name> فمثلاً لإضافة خط إلى تجمع معين فإننا نستخدم الوظيفة AddLine ولإضافة قوس فإننا نستخدم الوظيفة AddArc وهكذا بالنسبة لبقية العناصر . إضافة إلى ذلك تمتلك التجمعات مجموعة من الخصائص والوظائف مثل الخاصية Count التي تعطي عدد العناصر ضمن التجمع والوظيفة Item التي تسمح باختيار أي عنصر ضمن التجمع .

مفهوم الكائنات الرسومية Graphical والكائنات غير الرسومية Nongraphical

الكائنات الرسومية Graphical Objects هي العناصر المشكلة للرسومات والتي تظهر مباشرة على شاشة الرسم مثل الخطوط والدوائر والأقواس وتسمى أيضا Entities أي الموجودات على شاشة الرسم . ويمكن إنشاء هذه العناصر باستخدام الوظيفة Add<Entityname> .
تمتلك العناصر الرسومية مجموعة من الوظائف القياسية التي تتيح إجراء عمليات التعديل على هذه العناصر مثل عمليات النسخ Copy والحذف Erase والتحريك Move والانعكاس Mirror وغيرها من العمليات . إضافة إلى ذلك تمتلك العناصر الرسومية مجموعة من الخصائص المشتركة النموذجية التي تعيد مثلاً إسم الطبقة Layer وأنماط الخطوط Linetype واللون Color بالإضافة إلى مجموعة من الخصائص الأخرى الخاصة بكل عنصر من العناصر مثل المركز Center ونصف القطر Radius والمساحة Area وغيرها من الخصائص حسب نوع هذا العنصر .
الكائنات غير الرسومية Nongraphical Objects هي جزء أساسي من بنية الملف الرسومي وهي غير ظاهرة مباشرة في الرسومات إلا أنها تحمل جميع الإعدادات والبيانات المشكلة لهذه الرسومات مثل الطبقات Layers وأنماط الخطوط Linetypes والأنماط البعدية DimStyles والمجموعات SelectionSets وغيرها من العناصر . وكل عنصر من هذه العناصر يمتلك مجموعة من الخصائص والوظائف الخاصة للتحكم بهذا العنصر .
لإنشاء عنصر غير رسومي فإننا نستخدم الوظيفة Add الخاصة بالتجمع Collection الذي يحوي هذا العنصر , فمثلاً لإضافة طبقة جديدة Layer إلى الملف الرسومي فإننا نستخدم الوظيفة Add الخاصة بالتجمع Layers فنكتب Layers.Add(Name) .
 
التعديل الأخير:

Hossam_Vbcad

عضو جديد
إنضم
10 ديسمبر 2013
المشاركات
6
مجموع الإعجابات
4
النقاط
0
في المرفقات الدرس الأول بصيغة pdf

لم تظهر الصور في المشاركة لا أعلم لماذا ؟
 

المرفقات

  • 01.pdf
    403.3 KB · المشاهدات: 170
التعديل الأخير:

Hossam_Vbcad

عضو جديد
إنضم
10 ديسمبر 2013
المشاركات
6
مجموع الإعجابات
4
النقاط
0
تابع الفصل الأول

لمحة عن الكائنات Preferences و Plot و Utility
الكائن Preferences يمكننا من الوصول إلى الإعدادات الخاصة ببرنامج أوتوكاد والمخزنة في ذاكرة النظام registry وهو يمتلك جميع الإعدادات الموجودة في مربع الحوار Options في برنامج أوتوكاد . أما الإعدادات الخاصة بالملف الرسومي بحد ذاته فيمكن الوصول إليها من خلال الكائن DatabasePreferences . بعض الإعدادات السابقة تكون مخزنة أيضاً ضمن ما يسمى بمتغيرات النظام SystemVariables حيث يمكن استعراض وتعديل قيم هذه المتغيرات من خلال الوظيفتين GetVariable و SetVariable .
الكائن Plot يمكننا من الوصول إلى الإعدادات الموجودة في مربع الحوار Plot في برنامج أوتوكاد ويعطي مرونة كبيرة في طباعة الرسومات من خلال الوظائف المتعددة التي يمتلكها .
الكائن Utility يتيح للمستخدم القيام بعمليات الانتقاء والتعديل مباشرة من شاشة الرسم , وهو يمتلك مجموعة من الوظائف المهمة مثل وظائف الإدخال input التي تتيح للمستخدم إدخال البيانات المختلفة في سطر الأوامر مباشرة ووظائف التحويل conversion المتعلقة بالنقاط والزوايا وغيرها من الوظائف الأخرى . ويبين الشكل (1-4) البنية الهرمية للكائنات Preferences و Plot و Utility وكائناتها الفرعية
01.JPG
الشكل (1-4) البنية الهرمية للكائنات Preferences و Plot و Utility

العمل مع التجمعات Collection Objects
كما شرحنا سابقاً فإن برنامج أوتوكاد يقوم بتجميع معظم الكائنات والعناصر في جلسة العمل ضمن مجموعات تسمى تجمعات Collections , ونوضح في الجدول التالي أهم هذه التجمعات على الشكل :

التجمع
Collection
الوصف
description
Documentsيحوي جميع اللوحات المفتوحة ضمن جلسة العمل الحالية
ModelSpaceيحوي جميع العناصر الرسومية Entities في حيز النموذج
PaperSpaceيحوي جميع العناصر الرسومية Entities في ورقة الرسم layout النشطة
Blockيحوي جميع العناصر الرسومية Entities المضمنة للكتلة عند تعريفها
Blocksيحوي جميع الكتل المحملة في اللوحة الرسومية
DimStylesيحوي جميع الأنماط البعدية في اللوحة الرسومية
Groupsيحوي جميع المجموعات في اللوحة الرسومية
Layersيحوي جميع الطبقات في اللوحة الرسومية
Layoutsيحوي جميع أوراق الرسم في اللوحة الرسومية
Linetypesيحوي جميع أنماط الخطوط في اللوحة الرسومية
MenuBarيحوي جميع القوائم الظاهرة حالياً في جلسة العمل الحالية
MenuGroupsيحوي جميع القوائم وأشرطة الأدوات المحملة في جلسة العمل الحالية
SelectionSetsيحوي جميع مجموعات الانتقاء في اللوحة الرسومية
TextStylesيحوي جميع أنماط النصوص في اللوحة الرسومية
UCSsيحوي جميع أنظمة الإحداثيات UCS في اللوحة الرسومية
Viewsيحوي جميع المشاهد في اللوحة الرسومية
Viewportsيحوي جميع المعاينات في اللوحة الرسومية


استدعاء تجمع Collection Object
معظم التجمعات يمكن استدعائها من خلال الكائن Document حيث يمتلك هذا الكائن خاصية تسمح باستدعاء كل تجمع من التجمعات . فعلى سبيل المثال فإن الكود التالي يقوم بتعريف متغير على أنه تجمع Layers ومن ثم يسند جميع الطبقات في اللوحة إلى هذا المتغير :

PHP:
Dim layerCollection As AcadLayers
Set layerCollection = Application.Document.Layers

التجمعات Documents و MenuBar و MenuGroups يتم استدعائها من خلال الكائن Application حيث يمتلك هذا الكائن خاصية تسمح باستدعاء كل تجمع من هذه التجمعات . فعلى سبيل المثال فإن الكود التالي يقوم بتعريف متغير على أنه تجمع MenuGroups ومن ثم يسند جميع القوائم وأشرطة الأدوات المحملة في جلسة العمل الحالية إلى هذا المتغير :
PHP:
Dim MenuGroupsCollection As AcadMenuGroups
Set MenuGroupsCollection = Application.MenuGroups

إضافة عناصر جديدة إلى التجمعات
يمكن إضافة الكائنات والعناصر إلى معظم التجمعات من خلال الوظيفة Add . فمثلاً الكود التالي يقوم بتعريف طبقة جديدة layer ومن ثم يضيف هذه الطبقة إلى تجمع الطبقات في اللوحة الرسومية Layers collection على الشكل التالي :
PHP:
Dim newLayer As AcadLayer
Set newLayer = _ Application.Document.Layers.Add("MyNewLayer")

الاستعلام عن العناصر ضمن التجمعات
يتم ترقيم العناصر تلقائياً ضمن التجمعات بحيث يأخذ كل عنصر رقماً مميزاً index يعرف هذا العنصر , وبالتالي لاختيار عنصر محدد ضمن تجمع ما فإننا نستخدم الوظيفة Item التابعة للتجمع بالاعتماد على الرقم السابق أو بالاعتماد على إسم العنصر . فمثلاً الكود التالي يقوم بعرض أسماء الطبقات الموجودة ضمن تجمع الطبقات في اللوحة الرسومية :
PHP:
Sub example_CollectionItem()
    Dim I As Integer
    Dim msg As String
    msg = ""
    For I = 0 To Application.Document.Layers.count - 1
        msg = msg + _
        Application.Document.Layers.Item(I).Name + vbCrLf
    Next
    MsgBox(msg)
End Sub

والكود التالي يقوم بالبحث عن طبقة اسمها "ABC" ضمن تجمع الطبقات في اللوحة الرسومية :
PHP:
Sub example_FindLayerABC()
    ' Use the Item method to find a layer named "ABC"
    On Error Resume Next
    Dim ABCLayer As AcadLayer
    Set ABCLayer = _
    Application.Document.Layers.Item("ABC")
    If Err <> 0 Then
        MsgBox("The layer ’ABC’ does not exist.")
    Else
        MsgBox("You find The layer ’ABC’.")
    End If
End Sub

حذف العناصر من التجمعات
لحذف عنصر من تجمع نقوم أولاً باختيار هذا العنصر باستخدام الوظيفة Item التابعة للتجمع بالاعتماد على رقم أو إسم العنصر المراد حذفه , ثم نستخدم الوظيفة Delete الخاصة بالعنصر نفسه للحذف . فمثلاً لحذف الطبقة المسماة "ABC" نكتب الكود التالي :
PHP:
Dim ABCLayer As AcadLayer
Set ABCLayer = Application.Document.Layers.Item("ABC")
ABCLayer.Delete

مفهوم الخصائص Properties ووظائف التحكم Methods
كل كائن في أوتوكاد يمتلك مجموعة من الخصائص Properties وطرق التحكم methods . الخصائص Properties تصف الهيئة التي يكون عليها الكائن , بينما الطرق methods تساعد في التحم بالكائن . وبمجرد إنشاء الكائن نستطيع الاستعلام عنه أو تحريره من خلال خصائصه أو من خلال وظائف التحكم الخاصة به .
على سبيل المثال فإن الدائرةCircle تمتلك الخاصية Center التي تعيد مصفوفة من الإحداثيات التي هي عبارة عن إحداثيات مركز الدائرة . ولتغيير تلك الإحداثيات فإننا ببساطة نعدل الخاصية Center لتلك الدائرة بقيم جديدة للإحداثيات .
وأيضا تمتلك الدائرةCircle وظيفة التحكم Offset التي تتيح إنشاء نسخة طبق الأصل عن الدائرة السابقة وتبعد بمسافة محددة عنها .

استخدام المتغيرات Variants
المتغير Variant هو نوع مخصص من متغيرات البيانات data type الذي يمكن أن يخزن أي نوع من البيانات عدا بعض الأنواع المحددة . وكذلك يمكن أن يخزن المتغير السابق قيماً خاصة مثل Empty و Error و Nothing و NULL .
تستخدم تقنية ActiveX المتغيرات من النوع Variants للوصول إلى البيانات array data من داخل أو من خارج بيئة أوتوكاد . بمعنى أنه يجب حفظ البيانات على شكل Variants لنتمكن من التعامل معها باستخدام الخصائص Properties وطرق التحكم methods وفق تقنية ActiveX .
كما توفر تقنية ActiveX طريقة لتحويل البيانات من وإلى النوع Variants باستخدام الوظيفة CreateTypedArray التي تم ربطها بالكائن Utility السابق ذكره . وسنقوم بشرح هذه الوظيفة بالتفصيل عند شرح هذا الكائن .
 

Hossam_Vbcad

عضو جديد
إنضم
10 ديسمبر 2013
المشاركات
6
مجموع الإعجابات
4
النقاط
0
حسنا على ما يبدو الموقع لا يدعم تنسيق الأكواد ؟؟؟؟

إليكم الدرس الثاني بصيغة pdf في المرفقات
دمتم بخير
 

المرفقات

  • 02.pdf
    257 KB · المشاهدات: 82

Hossam-am

عضو جديد
إنضم
29 أكتوبر 2006
المشاركات
121
مجموع الإعجابات
20
النقاط
0
الفصل الثاني : التحكم في بيئة أوتوكاد Controlling the AutoCAD Environment

الكائن Application
كما ذكرنا سابقاً فإن الكائن Application هو الكائن الرئيسي الأعلى في التسلسل الهرمي للكائنات وهو يمثل تطبيق الأوتوكاد بحد ذاته . ويمكن من خلال هذا الكائن الوصول إلى الكائنات الفرعية الأخرى مع جميع خصائصها ووظائف التحكم بها .

إنشاء الكائن Application
- لإنشاء كائن الأوتوكاد Application باستخدام لغة فيجوال بيزك للتطبيقات VB6 فإننا نستخدم إحدى وظيفتي لغة فيجوال بيزك التاليتين :

  • الوظيفة CreateObject : تستخدم هذه الوظيفة في حال كان برنامج الأوتوكاد مغلقاً , حيث تقوم هذه الوظيفة بفتح تطبيق الأوتوكاد ومن ثم تقوم بإسناد التطبيق المفتوح إلى الكائن Application . و الصيغة العامة لهذه الوظيفة على الشكل :
PHP:
CreateObject("AutoCAD.Application.n")

  • الوظيفة GetObject : تستخدم هذه الوظيفة في حال كان برنامج الأوتوكاد مشغلاً سابقاً , حيث تقوم هذه الوظيفة بإسناد التطبيق المفتوح إلى الكائن Application, والصيغة العامة لهذه الوظيفة على الشكل :
PHP:
GetObject("AutoCAD.Application.n")

حيث n في كلتا الوظيفتين يعبر عن رقم الإصدار الحالي لبرنامج الأوتوكاد . حيث تكون قيمة هذا الرقم في الإصدار 2004 وما قبله تساوي (16) , أما الإصدارات الأعلى مثل الإصدار 2007 والإصدار 2009 فإن قيمة هذا الرقم تساوي (17) .

فعلى سبيل المثال فإن الكود التالي يقوم بتشغيل برنامج الأوتوكاد وإسناد التطبيق المفتوح إلى الكائن Acadapp الذي يتم تعريفه من النوع AcadApplication بحيث يعبر عن الكائن Application :
PHP:
Dim Acadapp As AcadApplication
Set Acadapp = CreateObject("AutoCAD.Application.17")
Acadapp.Visible = True

لاحظ في الكود السابق استخدام الخاصية Visible وإعطائها القيمة True لجعل نافذة تطبيق الأوتوكاد مرئية .

- لإضافة لوحة جديدة فإننا نستدعي الكائن الفرعي Documents الذي يمثل تجمع اللوحات في جلسة العمل الحالية , ثم نضيف لوحة جديدة باستخدام الوظيفة Add وفق الصيغة :
PHP:
Application.Documents.Add

- كل لوحة تتم إضافتها إلى تجمع اللوحات Documents في جلسة العمل الحالية يتم التعبير عنها بكائن Document يمثل لوحة الرسم . ويمتلك الكائن Document كائناً فرعياً مهماً جداً يستخدم لإضافة العناصر الرسومية هو الكائن ModelSpace الذي يعبر عن حيز النموذج في اللوحة الرسومية .

- إن آخر لوحة تتم إضافتها إلى تجمع اللوحات في جلسة العمل تصبح هي اللوحة النشطة . ويتيح برنامج أوتوكاد الوصول المباشر إلى هذه اللوحة من خلال الكائن الفرعي ActiveDocument والذي يعبر عن اللوحة النشطة . ويمتلك الكائن ActiveDocument أيضاَ الكائن الفرعي ModelSpace الذي يعبر عن حيز النموذج في اللوحة النشطة والذي يمكّننا من إضافة العناصر الرسومية المختلفة .
فعلى سبيل المثال فإن الكود التالي يرسم خط Line ودائرة Circle في حيز النموذج ModelSpace في اللوحة النشطة ActiveDocument في جلسة العمل الحالية :
PHP:
Sub Example_AddEntities()
    '1) Open AutoCAD
    Dim Acadapp As AcadApplication
    Set Acadapp = CreateObject("AutoCAD.Application.17")
    Acadapp.Visible = True
    '---------------------
    '2) Define Line object
    Dim acLine As acadLine
    Dim StartPt(2) As Double
    Dim EndPt(2) As Double
    StartPt(0) = 10: StartPt(1) = 10: StartPt(2) = 0
    EndPt(0) = 30: EndPt(1) = 30: EndPt(2) = 0
    Set acLine = Acadapp.ActiveDocument.ModelSpace. _
                 AddLine(StartPt, EndPt)
    '---------------------
    '3) Define Circle object
    Dim CircleObj As AcadCircle
    Dim Center(2) As Double
    Dim Radius As Double
    Center(0) = 20: Center(1) = 20: Center(2) = 0
    Radius = 5
    Set CircleObj = Acadapp.ActiveDocument.ModelSpace. _
                    AddCircle(Center, Radius)
End Sub

شرح الكود :
- في القسم الأول من الكود : تم تشغيل برنامج الأوتوكاد وإسناد التطبيق المفتوح إلى الكائن Acadapp الذي يمثل الكائن Application مع استخدام الخاصية Visible وإعطائها القيمة True لجعل نافذة التطبيق مرئية .
- في القسم الثاني من الكود : تم تعريف المتحول acLine من نوع AcadLine على أنه خط في أوتوكاد Line , و تم تعريف المتحول startPt على شكل مصفوفة من نوع Double لتخزين إحداثيات نقطة بداية الخط , والمتحول endPt على شكل مصفوفة من نوع Double لتخزين إحداثيات نقطة نهاية الخط . ثم بعد ذلك تم استخدام الوظيفة AddLine لإضافة الخط السابق إلى حيز النموذج ModelSpace في اللوحة النشطة ActiveDocument .
- في القسم الثالث من الكود : تم تعريف المتحول CircleObjمن نوع AcadCircle على أنه دائرة في أوتوكاد Circle , و تم تعريف المتحول Center على شكل مصفوفة من نوع Double لتخزين إحداثيات المركز الهندسي الدائرة , والمتحول Radius من نوع Double لتخزين قيمة نصف قطر الدائرة . ثم بعد ذلك تم استخدام الوظيفة AddCircle لإضافة الدائرة السابقة إلى حيز النموذج ModelSpace في اللوحة النشطة ActiveDocument .

خصائص الكائن Application

  • Visible : وهي للقراءة والكتابة من نوع Boolean , وهي تتحكم في إظهار أو إخفاء نافذة تطبيق الأوتوكاد وتأخذ إحدى القيمتين True أو False .
  • Caption : وهي للقراءة فقط من نوع String , وهي تعيد عنوان جلسة الأوتوكاد الحالية وهذه التسمية تظهر في شريط العنوان العلوي لبرنامج أوتوكاد .
  • Name : وهي للقراءة فقط من نوع String , وهي تعيد إسم تطبيق الأوتوكاد .
  • FullName : وهي للقراءة فقط من نوع String , وتعيد المسار الكامل للملف التنفيذي للبرنامج . ويختلف هذا المسار من حاسوب إلى آخر وحسب نسخة الأوتوكاد المحملة على الحاسوب .
  • Path : وهي للقراءة فقط من نوع String , وتعيد مسار الدليل الذي يحوي الملف التنفيذي للبرنامج . ويختلف هذا المسار من حاسوب إلى آخر وحسب نسخة الأوتوكاد المحملة على الحاسوب .
  • Version : وهي للقراءة فقط من نوع String , وتعيد رقم الإصدار الحالي لتطبيق الأوتوكاد .
  • Height : وهي للقراءة والكتابة من نوع integer , وتعيد ارتفاع نافذة برنامج الأوتوكاد الرئيسية مقدرة بالنقاط (Pixels) .
  • Width : وهي للقراءة والكتابة من نوع Double , وتعيد عرض نافذة برنامج الأوتوكاد الرئيسية مقدرة بالنقاط (Pixels) .
  • WindowLeft : وهي للقراءة والكتابة من نوع integer , وتمثل المسافة بين الحافة اليسرى لنافذة برنامج الأوتوكاد الرئيسية والحافة اليسرى للشاشة .
  • WindowTop : وهي للقراءة والكتابة من نوع integer , وتمثل المسافة بين الحافة العلوية لنافذة برنامج الأوتوكاد الرئيسية والحافة العلوية للشاشة .
  • WindowState : وهي للقراءة والكتابة وتمثل وضع نافذة التطبيق الرئيسية فإما أن تكون ملأ الشاشة acMax أو مصغرة acMin أو بوضعها الطبيعي acNorm .

وظائف التحكم بالكائن
Application

  • ZoomAll : وهي تنفذ أمر المعاينة ZoomAll للوحة النشطة .
  • ZoomExtents : وهي تنفذ أمر المعاينة ZoomExtents للوحة النشطة .
  • ZoomPrevious : وهي تنفذ أمر المعاينة ZoomPrevious للوحة النشطة
  • ZoomScaled : وهي تنفذ أمر المعاينة ZoomScale للوحة النشطة . حيث الصيغة العامة لهذه الوظيفة على الشكل التالي :
PHP:
object.ZoomScaled Scale, ScaleType

Object : وهو يعبر عن كائن الأوتوكاد Application .
Scale : متحول من النوع Double نخزن به قيمة مقياس التصغير أو التكبير .
ScaleType : متحول نخزن به نمط الوحدات المطبق على المقياس السابق ويأخذ إحدى القيم التالية :

  1. acZoomScaledAbsolute لاعتماد وحدات الرسم الأساسية في تقدير المقياس .
  2. acZoomScaledRelative لاعتماد الوحدات كنسبة من المعاينة الحالية في تقدير المقياس .
  3. acZoomScaledRelativePSpace لاعتماد وحدات حيز الورقة PaperSpace في تقدير المقياس.



  • ZoomWindow : وهي تنفذ أمر المعاينة ZoomWindow للوحة النشطة . حيث الصيغة العامة لهذه الوظيفة على الشكل التالي :
PHP:
object.ZoomWindow LowerLeft, UpperRight

Object : وهو يعبر عن كائن الأوتوكاد Application .
LowerLeft : مصفوفة من النوع Double نخزن بها إحداثيات الزاوية اليسارية السفلية .
UpperRight : مصفوفة من النوع Double نخزن بها إحداثيات الزاوية اليمينية العلوية .


  • ZoomCenter : وهي تنفذ أمر المعاينة ZoomCenter للوحة النشطة . حيث الصيغة العامة لهذه الوظيفة على الشكل التالي :
PHP:
object.ZoomCenter Center, Magnify

Object : وهو يعبر عن كائن الأوتوكاد Application .
Center : مصفوفة من النوع Double نخزن بها إحداثيات مركز المعاينة .
Magnify : متحول من النوع Double نخزن به معدل التكبير .


  • الوظيفة Quit : نستطيع من خلال هذه الوظيفة إنهاء جلسة العمل . الصيغة العامة لهذه الوظيفة على الشكل التالي :
PHP:
Application.Quit

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


وإليكم ملف الدرس بصيغة PDF في المرفقات
دمتم بخير
 

المرفقات

  • 03.pdf
    288.7 KB · المشاهدات: 76
إنضم
20 يوليو 2012
المشاركات
1
مجموع الإعجابات
0
النقاط
0
ما شاء الله مجهود عالي جداا وتخصص ما اروعه يرجي من سيادتكم كتابه المراجع في ذلك الموضوع المهم جداااااا لو تكرمت ارسالها علي الميل التالي [email protected] ولي طلب هل يوجد كود يقوم بعمل بحث عن فيل اوتوكاد و فتحه ....جزاك الله خيرا والي الامام حتي نصبح مبدعين وليس مستخدمين فقط
 

Eng_Mohamed_Salah

عضو جديد
إنضم
15 أكتوبر 2013
المشاركات
428
مجموع الإعجابات
105
النقاط
0
شرح جميل جدا
اتمنى ان تتجه الى تطوير التطبيق فى بيئة ال .net سواء #vb.net or C
 
أعلى