VBA for AutoCAD GROUP 1 Đồ họa ứng dụng 1
VBA for AutoCADGROUP 1
Đồ họa ứng dụng 1
Thông tin nhóm
NHÓM 1
STT MSSV Họ tên Email
1 1012331 Phan Tiến Quang – Nhóm trưởng [email protected]
2 1012218 Phạm Hoàng Long [email protected]
3 1012297 Đặng Hà Phong [email protected]
Đồ họa ứng dụng 2
Nội dung trình bày
Tổng quan về dự án VBA trong AutoCAD
Hệ thống mô hình đối tượng trong AutoCAD
Các thao tác cơ bản trong AutoCAD
Demo
Q&A
Đồ họa ứng dụng 3
1
2
3
4
5
1. Tổng quan về dự án VBA trong AutoCAD
Dự án VBA trong AutoCAD chia làm 2 loại:
1. Dự án nhúng (Embedded Project)
• Lưu trữ trong tệp DWG cùng với các thông tin khác của bản vẽ trong AutoCAD.
• Tự động thực hiện khi mở bản vẽ chứa dự án nhúng.
• Hiệu lực đối với 1 bản vẽ chứa nó.
2. Dự án độc lập (Global Project)
• Lưu trữ tách biệt trong 1 tệp có phần mở rộng là *.dvb.
• Không phụ thuộc vào 1 bản vẽ nào cả.
• Người sử dụng phải tải dự án vào AutoCAD để thực thi.
Đồ họa ứng dụng 4
Cấu trúc dự án VBA
Đồ họa ứng dụng 5
1. AutoCAD Objects: đối tượng đạidiện cho bản vẽ hiện hành củaAutoCAD.
2. Userform: giao diện hộp thoại hỗtrợ giao tiếp giữa người dùng vàchương trình.
3. Module chuẩn: chứa mã lệnh khaibáo, chương trình con.
4. Class module: định nghĩa cho cáclớp của dự án
Trình quản lý dự án
Đồ họa ứng dụng 6
Cách 1
Trình quản lý dự án
Đồ họa ứng dụng 7
Cách 2
Trình quản lý dự án
Đồ họa ứng dụng 8
2. Hệ thống mô hình đối tượng trong AutoCAD
Theo góc nhìn lập trình:
• AutoCAD được cấu thành từ nhiều đối tượng khác nhau.
• Mỗi đối tượng có thể có nhiều đối tượng con ở cấp độ thấp hơn.
• Các đối tượng được tổ chức theo 1 cấu trúc nhất định, mỗi đối tượng trongcấu trúc đó tương đương với 1 thành phần của AutoCAD.
Đồ họa ứng dụng 9
2. Hệ thống mô hình đối tượng trong AutoCAD
Các loại đối tượng trong AutoCAD:
• Đối tượng hình học: line, arc, text, dimension,…
• Thiết lập về định dạng: linetype, dimension style,…
• Cấu trúc tổ chức: layer, group, block,…
• Đối tượng liên quan đến hiển thị bản vẽ: view, viewport,…
• Ngay cả bản vẽ và bản thân chương trình AutoCAD cũng được xem là đốitượng.
Đồ họa ứng dụng 10
Mô hình đối tượng
Đồ họa ứng dụng 11
Các đối tượng chính
• Application: phiên làm việc của AutoCAD.
• Document: bản vẽ đang được mở.
• Tập đối tượng: ModelSpace, PaperSpace, Block.
• Đối tượng phi hình học: dùng để thiết lập các thuộc tính cho đối tượng hìnhhọc. VD: Layer, Linetype, DimStyle,…
• Đối tượng hình học: thực thể cấu thành bản vẽ AutoCAD. VD: Line, Circle,…
Đồ họa ứng dụng 12
Thuộc tính của đối tượng hình học
Đồ họa ứng dụng 13
• Color
• Layer
• Linetype
• LinetypeScale
• Lineweight
• Visible
Phương thức của đối tượng hình học• ArrayPolar
• ArrayRectangular
• Copy
• GetBoundingBox
• Highlight
• IntersectWith
• Mirror
• Move
• Rotate
• ScaleEntity
• Update
Đồ họa ứng dụng 14
3. Các thao tác cơ bản trong AutoCAD
• Thu phóng màn hình bản vẽ
• Nhập liệu người dùng từ dòng lệnh
• Tạo mới đối tượng hình học
• Hiệu chỉnh đối tượng hình học
Đồ họa ứng dụng 15
Thu phóng màn hình bản vẽ (zoom)
Phương thức Mã lệnh ÝNghĩa
ZoomExtents Application.ZoomExtents Phóng màn hình theo vùng bao tất cả các đốitượng
ZoomAll Application.ZoomAll Phóng màn hình theo giới hạn của bản vẽ (2D)
ZoomPrevious Application.ZoomPrevious Chuyển màn hình về trạng thái trước đó
ZoomPickWindow Application.ZoomPickWindow Phóng màn hình theo hình chữ nhật được chọn
ZoomWindow Application.ZoomWindowbottm_left, top_right
Phóng màn hình theo hình chữ nhật định trước
ZoomScaled Application.ZoomScaledScale[, ScaleType]
Phóng màn hình theo 1 tỉ lệ xác định
Đồ họa ứng dụng 16
Nhập liệu người dùng từ dòng lệnh
• Được AutoCAD và VBA hỗ trợ thông qua đối tượng Utility.
• Các phương thức thường có dạng GetXXX
• Lỗi phát sinh “User input keyword”
• Ẩn form khi nhập liệu: form.Hide()
Đồ họa ứng dụng 17
Nhập liệu người dùng từ dòng lệnh (tt)
Phương thức Cú pháp Ý nghĩa
Prompt Utility.Prompt Message Gửi đoạn Message đến dòng lệnh củaAutoCAD
GetString RetVal = Utility.GetString(HasSpaces[, Prompt])
Nhập vào 1 chuỗi ký tự
GetIntegetGetReal
RetVal = Utility.GetInteger([Prompt])RetVal = Utility.GetReal([Prompt])
Nhập vào số nguyên hoặc số thực
GetAngle RetVal = Utility.GetAngle([Point][, Prompt])
Nhập vào 1 góc hoặc chọn 1 góc trên mànhình
GetPoint RetVal = Utility.GetPoint([Point][, Prompt])
Nhập vào 1 điểm bằng tọa độ hoặc chọntrên màn hình
GetDistance RetVal = Utility.GetDistance([Point][, Prompt])
Nhập vào giá trị khoảng cách
GetEntity Utility.GetEntity Object, PickedPoint[,Prompt]
Lấy 1 đối tượng bằng cách chọn trên mànhình
Đồ họa ứng dụng 18
Tạo mới đối tượng hình học
1. Khai báo đối tượng
Dim obj As AcadXXX
2. Thêm đối tượng
Set obj = Object.AddXXX (params)
Object = ThisDrawing.ModelSpace ‘không gian mô hình
Object = ThisDrawing.PaperSpace ‘không gian in
3. Cập nhật đối tượng
Obj.Update
VD:
Dim line As AcadLine
Set line = ThisDrawing.AddLine(startPoint, endpoint)
line.Update
Đồ họa ứng dụng 19
Hiệu chỉnh đối tượng hình học
Phương thức Cú pháp Ý nghĩa
Copy Set RetVal = object.Copy Sao chép đối tượng
Delete Object.Delete Xóa đối tượng khỏi bản vẽ
Explode Set RetVal = object.Explode Phá vỡ 1 đối tượng thành các đối tượng con
Move Object.Move Point1, Point2 Tịnh tiến đối tượng
Mirror Set RetVal = object.Mirror(Point1, Point2)
Lấy đối xứng qua 1 trục
Offset Set RetVal = object.Offset(Distance)
Tạo mới đối tượng với đường biên cách biên của đốitượng cũ 1 khoảng xác định
Rotate Object.Rotate BasePoint,RotationAngle
Xoay đối tượng quanh 1 điểm cố định
ScaleEntity Object.ScaleEntityBasePoint, ScaleFactor
Thay đổi tỉ lệ đối tượng đồng đều theo các phương x, y, z
Đồ họa ứng dụng 20
4. Demo
Đồ họa ứng dụng 21
The end!
Đồ họa ứng dụng 22
• Q&A
• Tham khảo: Giáo trình TDHTKCD.
• Cảm ơn thầy và các bạn đã theo dõi.