198
Trong mỗi dự án VBA, ThisDrawing là một đối tượng kiểu Document và luôn có sẵn. Với đối
tượng ThisDrawing này, người dùng không cần phải khai báo hoặc gán giá trị cho đối tượng
này mà có thể truy cập được ngay do nó luôn tồn tại trong dự án VBA. ThisDrawing tham
chiếu đến bản vẽ hiện hành trong AutoCAD, nghĩa là những tác động lên đối tượng này sẽ
tương đương với việc tác động lên bản vẽ hiện hành trong AutoCAD. Một đối tượng tương
C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
V
V
:
:
L
L
Ậ
Ậ
P
P
T
T
R
R
Ì
Ì
N
N
H
H
T
T
R
R
Ê
Ê
N
N
A
A
U
U
T
T
O
O
C
C
A
A
D
D
199
đương với ThisDrawing chính là đối tượng ActiveDocument, đối tượng này cũng là một thuộc
tính của đối tượng Application.
Để hiển thị tên bản vẽ hiện hành trong AutoCAD ta có thể truy cập theo những cách sau (từ
mô-đun ThisDrawing của dự án VBA):
MsgBox Name
MsgBox ThisDrawing.Name
MsgBox Application.ActiveDocument.Name
4.2.3. Tập đối tượng
AutoCAD tổ chức hầu hết các đối tượng vào trong tập đối tượng, ví dụ như tất cả các đối tượng
hình học, cho dù khác nhau về loại đối tượng, đều được đặt trong tập đối tượng ModelSpace,
PaperSpace và Block. Để truy cập vào một đối tượng nào đó ta phải thông qua tập đối tượng
chứa nó.
Mỗi một tập đối tượng có một phươ
ng thức dùng để thêm đối tượng vào bản thân tập đối tượng
đó và hầu hết các tập đối tượng đều sử dụng phương thức Add để thực hiện nhiệm vụ này. Chú
ý rằng, trong AutoCAD, khi thêm các đối tượng hình học vào tập đối tượng liên quan (như
ModelSpace và PaperSpace) thì phương thức dùng để thực hiện nhiệm vụ này có tên là
Add<Tên đối tượng>, ví dụ để thêm vào một đường thẳng (Line) ta sử dụng phươ
ng thức
AddLine. Trong khi đó, đối với các đối tượng khác, ví dụ như các đối tượng phi hình học như
Layer chẳng hạn, thì phương thức của tập đối tượng Layers dùng để thêm một đối tượng vào
trong tập đối tượng lại có tên là Add.
Cách thức thêm đối tượng vào tập đối tượng:
ModelSpace.AddLine (P1, P2)
Layers.Add ("ABC")
Các tập đối tượng có những phương thức và thuộc tính giống nhau dùng để thao tác với chúng
cũng như với các đối tượng bên trong chúng. Ví dụ thuộc tính Count dùng để truy cập bộ đếm
số đối tượng có trong tập đối tượng. Phương thức Item sử dụng để truy cập bất kỳ đối tượng
nào trong tập đối tượng.
Đoạn mã sau sẽ hiển thị số đối tượng hình họ
c hiện có trong bản vẽ và tên của đối tượng hình
học đầu tiên:
MsgBox ModelSpace.Count
MsgBox ModelSpace.Item(0).ObjectName
4.2.4. Đối tượng phi hình học
Các đối tượng phi hình học là những đối tượng không thể nhìn thấy được, chúng được sử dụng
trong AutoCAD để thiết lập các thuộc tính cho đối tượng hình học. Những đối tượng phi hình
học hay gặp là: Layer, Linetype, DimStyle, Các đối tượng phi hình học thường được chứa
trong các tập đối tượng có tên tương ứng, ví dụ như Layers, Linetypes, DimStyles, …
Cách thức để tạo ra một đối tượng phi hình học là s
ử dụng phương thức Add của đối tượng tập
đối tượng tương ứng. Ví dụ sau sẽ tạo ra một Layer mới có tên là “ABC”:
Layers.Add ("ABC")
Để hiệu chỉnh và truy vấn các đối tượng phi hình học, sử dụng các phương thức và thuộc tính
riêng trong từng đối tượng tương ứng. Ví dụ sau sẽ thay đổi màu của Layer “ABC” thành màu
đỏ:
200
Layers("ABC").Color = acRed
Mỗi loại đối tượng phi đồ hoạ đều có các phương thức để thiết lập và gọi lại dữ liệu mở rộng
(xdata) và xoá bản thân đối tượng. Ví dụ sau sẽ xóa lớp “ABC”:
Layers("ABC").Delete
Cách thức thao tác trên các đối tượng phi hình học sẽ được trình bày cụ thể ở phần “Các thao
tác cơ bản trong AutoCAD” trang 201.
4.2.5. Đối tượng hình học
Đối tượng hình học hay còn gọi là thực thể, là những đối tượng hữu hình cấu thành bản vẽ của
AutoCAD, một số đối tượng điển hình loại này là: đường thẳng (Line), hình tròn (Circle), ….
Để tạo những đối tượng này, ta sử dụng phương thức Add<Tên th
ực thể> của tập đối tượng
tương ứng. Để hiệu chỉnh hoặc truy vấn các đối tượng, ta sử dụng các phương thức và thuộc
tính của bản thân từng đối tượng.
Mỗi đối tượng hình học đều có các thuộc tính cho phép hiệu chỉnh đối tượng như Copy, Erase,
Move, Mirror… . Lưu ý rằng, những thuộc tính này sẽ tác động lên đối tượng tương tự như khi
ta sử d
ụng các lệnh tương ứng trong AutoCAD để hiệu chỉnh đối tượng.
Những đối tượng hình học còn có các phương thức để xác lập và gọi lại các dữ liệu mở rộng
(xdata), lựa chọn và cập nhật, lấy hình bao của đối tượng. Trong các đối tượng hình học đều có
các thuộc tính điển hình như Layer, Linetype, Color, và Handle cũng như những thuộc tính
riêng biệt, phụ thuộc vào loại đối tượ
ng, chẳng hạn như Center, Radius, và Area.
Dưới đây là các phương thức và thuộc tính có trong hầu hết các đối tượng hình học.
Cácphươngthứccủađốitượnghìnhhọc
Phương thức Giải thích
ArrayPolar
Nhân bản dạng cực đối tượng được chọn (giống như lệnh array) dựa trên số
đối tượng cần nhân bản, góc quay cần để tạo đối tượng và tâm của cung tròn.
ArrayRectangular
Nhân bản dạng chữ nhật đối tượng được chọn (giống như lệnh array) dựa
trên số hàng, số cột, số tầng và các khoảng các tương ứng.
Copy Sao chép đối tượng được chọn. Đối tượng mới được tạo sẽ có vị trí trùng với
đối tượng gốc.
GetBoundingBox Phương thức này trả về toạ độ hai điểm cấu thành hình chữ nhật bao đối
tượng được chọn.
Highlight Định trạng thái của đối tượng: có đang được chọn hay không.
IntersectWith Trả về toạ độ các điểm mà đối tượng được chọn giao với các đối tượng khác.
Người lập trình cũng có thể thiết lập các chế độ khác nhau trong quá trình tìm
giao với các đối tượng khác.
Mirror Lấy đối xứng đối tượng qua một đường thẳng đi qua hai điểm do người dùng
định ra.
Move Di chuyển đối tượng được chọn theo vector xác định bằng hai điểm do người
dùng định ra.
Rotate Xoay đối tượng quanh một điểm.
ScaleEntity Co giãn đối tượng được chọn theo một tỉ lệ nhất định với một điểm cơ sở cho
trước.
Update Cập nhật đối tượng trên màn hình bản vẽ.
C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
V
V
:
:
L
L
Ậ
Ậ
P
P
T
T
R
R
Ì
Ì
N
N
H
H
T
T
R
R
Ê
Ê
N
N
A
A
U
U
T
T
O
O
C
C
A
A
D
D
201
Cácthuộctínhcủađốitượnghìnhhọc
Thuộc tính Giải thích
Color Xác định màu cho đối tượng. Giá trị màu có thể nhập là số nguyên từ 0 đến 256
hoặc theo các hằng số đã được định nghĩa trước trong VBA.
Layer Xác định lớp cho đối tượng được chọn.
Linetype Xác định kiểu đường cho đối tượng được chọn.
LinetypeScale Xác định tỉ lệ kiểu đường cho đối tượng được chọn.
Lineweight Xác định bề dày nét vẽ của đối tượng được chọn.
Visible Xác định tính nhìn thấy của đối tượng trong bản vẽ.
5. Các thao tác cơ bản trong AutoCAD
5.1. Điều khiển AutoCAD
5.1.1. Tạo mới, Mở, Lưu và Đóng bản vẽ
Những thao tác này được thực hiện thông qua việc truy cập đến tập đối tượng Documents và
đối tượng Document.
Để tạo một bản vẽ mới, hoặc mở một bản vẽ đã có, ta phải sử dụng các phương thức trong tập
đối tượng Documents. Phương thức Add sẽ tạo một bản vẽ mới và thêm bản vẽ
đó vào tập đối
tượng Documents. Phương thức Open sẽ mở một bản vẽ đã có và cũng sẽ thêm bản vẽ đó vào
tập đối tượng Documents. Ngoài ra còn có phương thức Close trong tập đối tượng Documents
dùng để đóng tất các các bản vẽ đang mở trong phiên làm việc của AutoCAD.
Để lưu, nhập hoặc xuất một bản vẽ, ta sử dụng các phương thức của đối tượ
ng Document:
Save, Save As, Import và Export.
Mởbảnvẽ
Để mở bản vẽ, sử dụng phương thức Open có trong tập đối tượng Documents. Bản vẽ vừa được
mở sẽ được chuyển thành bản vẽ hiện hành. Cú pháp của phương thức Open như sau:
object.Open Name[, ReadOnly]
Object ở đây là tập đối tượng Documents hoặc một đối tượng có kiểu là Document. Ý nghĩa
của các tham số như sau:
Tham số Giải thích
Name Là chuỗi ký tự chứa đường dẫn đầy đủ đến tệp bản vẽ cần mở.
ReadOnly Là tham số tuỳ chọn. Nếu gán tham số này bằng TRUE, bản vẽ được mở ra với
thuộc tính chỉ đọc, nghĩa là người dùng không thể lưu bản vẽ. Giá trị mặc định của
thuộc tính này là FALSE.
Ví dụ sau sử dụng phương thức Open để mở một bản vẽ đã có. Khi thực hành, cần thay đổi tên
bản vẽ hoặc đường dẫn cho biến
dwgName để chỉ đến một bản vẽ hiện có trong máy tính.
Sub OpenDrawing()
Dim dwgName As String
dwgName = "C:\Program Files\AutoCAD 2002\Sample\campus.dwg"
On Error Resume Next
Application.Documents.Open dwgName ‘←Mở bản vẽ
202
If Err.Description <> "" Then ‘←Thông báo khi có
lỗi
MsgBox "File " & dwgName & " does not exist."
Err.Clear
End If
End Sub
Tạobảnvẽmới
Để tạo bản vẽ mới, sử dụng phương thức Add có trong tập đối tượng Documents. Giá trị trả về
của phương thức này là một đối tượng kiểu Document chứa bản vẽ vừa được tạo. Cú pháp của
phương thức Open như sau:
Set RetVal = Documents.Add([TemplateName])
Tham số Giải thích
TemplateName Tham số tuỳ chọn. Là chuỗi ký tự chứa đường dẫn đầy đủ đến tệp bản vẽ mẫu
(tệp *.dwt). Nếu không nhập tham số này, AutoCAD sẽ tạo bản vẽ dựa trên tệp
bản vẽ mẫu mặc định (thường có tên là Acad.dwt).
RetVal Đối tượng kiểu Document chứa bản vẽ vừa mới tạo.
Ví dụ sau sử dụng phương thức Add để tạo một bản vẽ mới dựa trên tệp bản vẽ mẫu mặc định.
Sub NewDrawing()
Dim docObj As AcadDocument
Set docObj =Documents.Add ‘← Tạo bản vẽ mới
End Sub
Lưubảnvẽ
Để lưu bản vẽ, có thể sử dụng phương thức Save (lưu bản vẽ với tên hiện hành) hoặc SaveAs
(lưu bản vẽ với tên khác). Cú pháp của các phương thức trên như sau:
Object.Save
Object.SaveAs FileName[, FileType]
Tham số Giải thích
Object Đối tượng kiểu Document, là bản vẽ sẽ được lưu.
FileName Là chuỗi ký tự chứa tên tệp sẽ được lưu (bao gồm cả đường dẫn đầy đủ). Nếu
không chỉ ra đường dẫn đầy đủ, tệp bản vẽ sẽ được lưu vào thư mục hoạt động của
AutoCAD (thông thường là C:\Program Files\AutoCAD 2002).