تعلم التحكم ببرنامج أتوكاد من خلال فجوال بيزك خطوة بخطوة

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

الدرس الأول

· افتح مشروع فجوال بيزك جديد يحوي إطاراً واحداً Form 1 وموديول واحد Module1 وخزنه في أي مكان تختاره وسمه VBcad .
· حيث سنعتمد في دروسنا القادمة على تطوير هذا المثال خطوة بخطوة ليكون شاملاً بإذن الله .
· الآن قم بعمل زر Command1 وأضفه للفورم وقم بتغيير خاصية caption ليصبح (Open New Drawing) . وقم بعمل زر Command2 وأضفه للفورم وقم بتغيير خاصية caption ليصبح (Close New Drawing ) وقم بعمل زر Command3 وأضفه للفورم وقم بتغيير خاصية caption ليصبح (Exit) .
· يجب الآن تحميل مكتبة كائن الأوتوكاد ضمن المشروع ونقوم بعمل ذلك من قائمة Project نختار References ، ثم نبحث في مربع الحوار الذي يظهر لدينا عن مكتبة الأتوكاد ذات الإصدار المرتبط بالنسخة المحملة على جهازك (2000-2004-2007-2009…) ونفعل هذا الخيار Autocad 2009 Type Library ثم موافق .
· نفتح صفحة الموديول Module1 ونكتب السطر التالي :

 
Public Acadapp As AcadApplication



حيث Acadapp متحول تم تعريفه ليمثل تطبيق أو كائن الأتوكاد …أي أن هذا المتحول وكأنه برنامج الأتوكاد نفسه سنتعامل مع الأتوكاد من خلاله (وإن كان التعبير غير دقيق).
· الآن في حدث النقر Click على زر Command1(Open New Drawing) نكتب السطر التالي :


[FONT=Simplified Arabic][FONT=Simplified Arabic]Private Sub Command1_Click()[/font]
[FONT=Simplified Arabic]    [COLOR=blue]Set[/color] Acadapp = [COLOR=blue]CreateObject[/color]("AutoCAD.Application.17")[/font]
[FONT=Simplified Arabic]    Acadapp.Documents.[COLOR=blue]Add[/color][/font]
[FONT=Simplified Arabic]    Acadapp.Visible = True[/font]
[FONT=Simplified Arabic]    Acadapp.WindowState = acMax        [/font]
[FONT=Simplified Arabic]End Sub[/font]
[/font]

الشرح :
- نقوم أولا بفتح تطبيق أو كائن أتوكاد (Object) من خلال وظيفة CreateObject وإسناد هذا الكائن إلى المتحول Acadapp من خلال وظيفة Set . وهنا أصبح المتحول Acadapp يمثل التطبيق المفتوح وسنتعامل مع التطبيق أو الكائن من خلاله . وهنا نلاحظ الجملة “AutoCAD.Application.17” وهي لنسخ الكاد بعد 2004 أما قبل 2004 نكتب “AutoCAD.Application.16”
- من خلال هذا المتحول (الذي سنتعامل معه وكأنه تطبيق الأتوكاد ) نقوم بفتح ملف جديد من خلال السطر

[FONT=Simplified Arabic]

[FONT=Simplified Arabic]Acadapp.Documents.Add[/font]

[/font]
- نقوم بعد ذلك بجعل تطبيق الأتوكاد ظاهراً على الشاشة من خلال


[FONT=Simplified Arabic][FONT=Simplified Arabic]Acadapp.Visible = True[/font]
[/font]

- يمكن التحكم بنافذة برنامج الأتوكاد من خلال :


[FONT=Times New Roman][FONT=Times New Roman][FONT=Times New Roman][FONT=Times New Roman]Acadapp.WindowState = acMax[/font][/font]
[/font][/font]

الآن إحفظ العمل وشغل البرنامج واضغط زر (Open New Drawing) ولاحظ النتيجة .
ولكن :
ماذا لو كان برنامج الأتوكاد مفتوحاً عند تشغيل البرنامج ؟
عندها سيقوم بتشغيل برنامج الأتوكاد مرة ثانية … هنا نستطيع اختبار كون أتوكاد مفتوحأ أم لا كما يلي :
سنعدل الكود السابق بشكل كامل ليصبح على الشكل :


[FONT=Simplified Arabic][FONT=Simplified Arabic]Private Sub Command1_Click()[/font]
[FONT=Simplified Arabic]On Error Resume Next[/font]
[FONT=Simplified Arabic]    Set Acadapp = GetObject(, "AutoCAD.Application.17")[/font]
[FONT=Simplified Arabic]    Acadapp.Documents.Add[/font]
[FONT=Simplified Arabic]    Acadapp.Visible = True[/font]
[FONT=Simplified Arabic]    Acadapp.WindowState = acMax[/font]
[FONT=Simplified Arabic]If Err.Number <> 0 Then[/font]
[FONT=Simplified Arabic]    Set Acadapp = CreateObject("AutoCAD.Application.17")[/font]
[FONT=Simplified Arabic]    Acadapp.Documents.Add[/font]
[FONT=Simplified Arabic]    Acadapp.Visible = True[/font]
[FONT=Simplified Arabic]    Acadapp.WindowState = acMax[/font]
[FONT=Simplified Arabic]    Err.Clear[/font]
[FONT=Simplified Arabic]End If[/font]
[FONT=Simplified Arabic]End Sub[/font]
 
[/font]

شرح :
نقوم أولاً باختبار كون أتوكاد مفتوحاً أو لا من خلال وظيفة GetObject وإسناد التطبيق المفتوح إلى المتحول Acadapp من خلال وظيفة set . لو كان أتوكاد غير مفتوحأ سنحصل على خطأ Error .
نختبر قيمة الخطأ فإذا كانت مختلفة عن الصفر معنى ذلك وقوع خطأ وهو كون التطبيق مغلق عندها نستخدم وظيفة CreateObject لفتح التطبيق وغسناده للمتحول acadapp من خلال set
الآن إحفظ العمل وشغل البرنامج واضغط زر (Open New Drawing) ولاحظ النتيجة .

جزاك الله خيرا اخى العزيز
هذا الموضوع رائع فعلا واعتقد انه غير مدرج فى المنتدى من قبل

جزاك الله خيرا

بارك الله فيك وجزاك الله خير موضوع تستحق عليه التحيه ولكن ال تقف نحن فى انتظار ابداعاتك

جزاك الله خيرا
اخي الكريم ياريت تتابع الموضوع للاهمية

جزاك الله كل خير

جزاك الله كل خير ، وبارك الله فيك
وفى انتظار التكملة

جزاك الله خيرا
هل يمكن اجراء هذا الربط مع الأتوكاد المعمارى
ارشيكاد أم autocad architecture