JWDStructure

دروس VBA AutoCAD 

برمجة أوتوكاد - الدرس الرابع - الفتح والحفظ

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

  • مقدمة
  • فتح ملف رسم موجود
  • إنشاء ملف رسم جديد
  • حفظ ملف رسم
  • إغلاق ملف رسم
  • خاتمة

مقدمة

نتعرف في هذا الدرس على بعض الوظائف على ملفات الرسوم من حيث فتح وحفظ الملفات وإنشاء ملف رسم جديد.

أولاً ابدأ جلسة عمل VBA وأضف وحدة نمطية جديدة لتنفيذ الأمثلة في هذا الدرس.

فتح ملف رسم موجود

لفتح ملف نستخدم الأمر Open التابع للكائن Documents (أو بمعنى أدق يسمى حاوية كائنات Document) والذي هو ابن للكائن Application كما في المثال التالي:

Public Sub OpenFile()
    Dim FileName As String
    FileName = InputBox("أدخل اسم الملف مع مساره", "فتح ملف")
    If FileName = "" Then
        Exit Sub
    ElseIf Dir(FileName) <> "" Then
        Dim doc As AcadDocument
        Set doc = Application.Documents.Open(FileName)
    Else
        MsgBox "الملف غير موجود"
    End If
End Sub

قمنا أولاً بإضافة ماكرو جديد باسم OpenFile، ثم عرّفنا متحولاً نصياً باسم FileName.

يتم السؤال عن اسم الملف المراد فتحه بواسطة تابع فيجوال بيسيك InputBox. (مع العلم أنه يوجد طريقة أفضل للسؤال عن اسم الملف باستخدام صندوق حوار فتح الملفات القياسي في ويندوز، ولكن لتبسيط البرنامج استخدمنا التابع InputBox).

نختبر بعد ذلك قيمة المتحول FileName فإذا كانت قيمة فارغة (عندما يضغط المستخدم على Cancel في صندوق حوار InputBox) فإننا نخرج من البرنامج وإلا فإننا نختبر إن كان الملف موجوداً أم لا بواسطة تابع فيجوال بيسيك وهو Dir.

فإن كان الملف موجوداً يتم فتحه بواسطة الأمر Open كما هو موضح في الكود، ويتم تخزين مرجع للوحته ضمن المتحول doc وهو من النوع AcadDocument، فإذا أردنا الرسم ضمن اللوحة استخدمنا المتحول doc.

أما إن كان الملف غير موجود، يتم عرض رسالة تشير إلى أن الملف غير موجود.

إنشاء ملف جديد

يمكن إنشاء ملف رسم جديد بواسطة الأمر Add المطبق على الكائن Documents كما في المثال:

Public Sub NewFile()
    Dim doc As AcadDocument
    Set doc = Application.Documents.Add
End Sub

أو يمكن اختصاراً إذا لم نرد تخزين مرجع للوحة الجديدة ضمن متحول نكتب:

Public Sub NewFile()
    Application.Documents.Add
End Sub

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

حفظ ملف

لحفظ ملف اللوحة الحالية بنفس الاسم (إذا كان لهذا الملف اسماً أصلاً) نستخدم الأمر Save على الكائن ThisDrawing، أما للحفظ باسم جديد نستخدم الأمر SaveAs كما في المثال التالي:

Public Sub SaveFile()
    ThisDrawing.Save
End Sub

Public Sub SaveFileAs()
    ThisDrawing.SaveAs "C:\myDrawing.dwg"
End Sub

كما يمكنك معرفة فيما إذا قام المستخدم بحفظ آخر التعديلات على ملف الرسم أم لا باستخدام الخاصية Saved للكائن ThisDrawing كما في المثال:

Public Sub TestIfSaved()
    If ThisDrawing.Saved = False Then
        Dim i As VbMsgBoxResult
        i = MsgBox("هل تريد حفظ التعديلات؟", vbYesNo + vbQuestion)
        If i = vbYes Then ThisDrawing.Save
    End If
End Sub

إغلاق ملف

لإغلاق ملف نستخدم الأمر Close للكائن ThisDrawing كما في المثال:

Public Sub CloseFile()
    ThisDrawing.Close
End Sub

ولكن يجب الانتباه إلى أن هذا الأمر لا يختبر إن كان الملف قد حفظ سابقاً أم لا، لذلك يجب أن نختبر ذلك بأنفسنا، لذلك نعدل الكود السابق ليصبح كما يلي:

Public Sub CloseFile()
    TestIfSaved
    ThisDrawing.Close
End Sub

افتح ملفاً موجوداً وعدّل عليه ثم نفذ الماكرو CloseFile وانظر ماذا سيحصل، ثم افتح نفس الملف ولكن لا تعدل عليه ونفذ الماكرو CloseFile، ستلاحظ أنه في المرة الثانية لم يسألك إن كنت تريد حفظ التغييرات، لأنه لا يوجد تغييرات.

خاتمة

تعلمت في هذا الدرس كيفية فتح ملف رسم موجود عن طريق برنامج VBA وإنشاء ملف رسم جديد، وكيفية الحفظ والحفظ باسم جديد، وكذلك إغلاق الملف مع تأكيد الحفظ في حال وجود تغييرات.

تحميل