JWDStructure

دروس VBA AutoCAD 

برمجة أوتوكاد - الدرس الخامس - إضافة كائنات إلى اللوحة 1

النقاط الأساسية

  • مقدمة
  • تعريف الإحداثيات
  • رسم نقطة Point
  • رسم خط Line
  • رسم دائرة Circle
  • خاتمة

مقدمة

سنقوم في هذا الدرس بالتعرف على بعض الكائنات التي يمكن إضافتها بواسطة VBA، ولكن أولاً سنتعرف على كيفية تعريف إحداثيات نقطة ما في VBA، مثلاً إحداثيات بداية خط أو مركز دائرة.

تعريف الإحداثيات

معظم الكائنات التي نريد إضافتها إلى اللوحة تحتوي على نقاط مميزة يجب إدخال إحداثياتها، ويتم تعريف إحداثيات نقطة في VBA باستخدام شعاع أو مصفوفة مكونة من عمود واحد وثلاثة أسطر تمثل الإحداثيات x,y,z، وسنعتمد على الاصطلاح التالي في هذا الدرس والدروس القادمة وهو عند كتابة إحداثيات نقطة بالشكل (4,3,7) مثلاً فإننا نعني أن x=4 , y=3 , z=7 أي تكتب بالشكل (x,y,z).

مثلاً لتعريف إحداثيات نقطة ولتكن (5,4,0) نقوم أولاً باختيار اسم لها مثلاً location أو pntA ثم نكتب ما يلي:

Dim location(0 To 2) As Double
location(0) = 5: location(1) = 4: location(2) = 0

رسم نقطة Point

لإضافة نقطة Point إلى اللوحة نستخدم الأمر AddPoint التابع للكائن ThisDrawing.ModelSpace كما في المثال التالي:

لنفرض أننا نريد إضافة نقطة إحداثياتها (5,4,0) نضيف الماكرو التالي (كما تعلمت سابقاً):

Public Sub AddPoint()
    Dim pntA(0 To 2) As Double

    pntA(0) = 5: pntA(1) = 4: pntA(2) = 0
    ThisDrawing.ModelSpace.AddPoint pntA
End Sub

حيث مررنا المتحول pntA الذي يحمل إحداثيات النقطة إلى الأمر AddPoint ليقوم بالرسم.

الآن لاحظ الكائن نقطة الذي تم إضافته للوحة في الموضع السابق.

ولكن ماذا لو أردنا تغيير خصائص هذه النقطة من ضمن VBA أي ماذا لو أردنا إضافة نقطة حمراء مثلاً؟ فماذا نفعل؟

نقوم بالخطوات التالية:

  • نعرف الإحداثيات كما سبق
  • نقوم بالتعريف عن متحول جديد سيشير إلى النقطة التي نريد إضافتها وسيأخذ النوع AcadPoint
  • نضيف النقطة بواسطة AddPoint
  • نغير الخاصية Color إلى اللون الأحمر

مثال: أضف نقطة حمراء في الموضع (5,4,0):

Public Sub AddPoint()
    Dim pntA(0 To 2) As Double
    Dim pointObj As AcadPoint

    pntA(0) = 5: pntA(1) = 4: pntA(2) = 0
    Set pointObj = ThisDrawing.ModelSpace.AddPoint(pntA)
    pointObj.color = acRed
End Sub

لاحظ الاختلاف بين هذا الكود والكود السابق:

  • السطر Dim pointObj as AcadPoint حيث قمنا بتعريف متحول اسمه pointObj ليشير إلى النقطة التي سنضيفها
  • السطر الذي يضيف النقطة وهو:

Set pointObj = ThisDrawing.ModelSpace.AddPoint(pntA)

  • ثم السطر الذي نقوم فيه بتغيير الخاصية Color للكائن pointObj الذي يشير إلى النقطة المضافة

إذاً يوجد طريقتان لإضافة الكائن الرسومي:

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

رسم خط Line

لإضافة كائن خط إلى اللوحة نستخدم الأمر AddLine التابع للكائن ThisDrawing.ModelSpace بعد تعريف إحداثيات البداية وإحداثيات النهاية كما في المثال التالي:

أضف خطاً أزرقاً بدايته (9,2.5,0) ونهايته (20,1,0):

Public Sub AddLine()
    Dim pntStart(0 To 2) As Double
    Dim pntEnd(0 To 2) As Double
    Dim LineObj As AcadLine

    pntStart(0) = 9: pntStart(1) = 2.5: pntStart(2) = 0
    pntEnd(0) = 20: pntEnd(1) = 1: pntEnd(2) = 0

    Set LineObj = ThisDrawing.ModelSpace.AddLine(pntStart, pntEnd)
    LineObj.Color = acBlue
End Sub

رسم دائرة Circle

استخدم الأمر AddCircle التابع للكائن ThisDrawing.ModelSpace بعد تعريف إحداثيات المركز ومعرفة نصف قطرها ، مثال:

أضف دائرة خضراء إحداثيات مركزها (1.2,22,0) ونصف قطرها يساوي 15:

Public Sub AddCircle()
    Dim pntCenter(0 To 2) As Double
    Dim CircleObj As AcadCircle

    pntCenter(0) = 1.2: pntCenter(1) = 22: pntCenter(2) = 0

    Set CircleObj = ThisDrawing.ModelSpace.AddCircle(pntCenter, 15)
    CircleObj.color = acGreen
End Sub

خاتمة

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

وأكرر في نهاية هذا الدرس على ضرورة معرفة مبادئ لغة فيجوال بيسيك للمتابعة مع هذه السلسة من دروس VBA.

تحميل