218
MIRRTEXT Xác định cách thức khi lấy đối xứng đối với văn bản. Bằng 0: giữ nguyên
chiều văn bản; bằng 1: đổi chiều văn bản.
TILEMODE Xác định không gian hiện hành là không gian mô hình hay không gian in.
Bằng 0: không gian in; bằng 1: không gian mô hình.
ZOOMFACTOR Xác định tỷ lệ phần trăm thu/phóng bản vẽ khi lăn phím chuột giữa.
TEXTFILL Điều khiển cách hiển thị văn bản TrueType. Bằng 0: chỉ vẽ đường biên văn
bản; bằng 1: vẽ cả đường biên và tô đầy văn bản.
5.2. Tạo mới đối tượng hình học
Mô hình đối tượng trong AutoCAD thực chất là sự mô tả lại hầu như tất các các đối tượng mà
người dùng có thể tạo ra trong AutoCAD theo cách vẽ thông thường, cho nên để lập trình tạo ra
các đối tượng hình học bằng VBA thì người dùng cần phải thông thuộc cách tạo ra đối tượng
đó bằng lệnh thông thường trực tiếp trong AutoCAD.
Trong AutoCAD, để hỗ trợ người dùng thao tác nhanh, một đối tượng hình học có thể được tạo
ra theo nhi
ều phương thức khác nhau, chẳng hạn như khi tạo đường tròn trong AutoCAD,
người dùng có thể tạo theo 4 cách khác nhau:
Ø
Ø
Xác định tâm và bán kính,
Ø
Ø
Xác định 2 điểm tạo nên đường kính đường tròn,
Ø
Ø
Xác định ba điểm ngoại tiếp đường tròn,
Các đối tượng dạng đường có chiều dài hữu hạn như Line, Polyline
5.2.1. Xác định nơi chứa đối tượng
AutoCAD nhóm các đối tượng hình học trong tập đối tượng ModelSpace, PaperSpace và trong
đối tượ
ng Block. Tuy nhiên, thường được sử dụng nhất là hai tập đối tượng ModelSpace và
PaperSpace:
Ø
Ø
ModelSpace (không gian mô hình) là một phần của bản vẽ, là nơi để người dùng tạo các
đối tượng hình học để tạo nên mô hình hoặc bản vẽ mà người dùng dự định thiết kế. Hầu
hết tất cả các thao tác xây dựng bản vẽ đều được thực hiện trên không gian mô hình.
Trong AutoCAD, chỉ có một không gian mô hình, tương ứng với không gian mô hình này
chính là thẻ Model nằm ở góc dưới màn hình bản vẽ trong AutoCAD.
C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
V
Ê
N
N
A
A
U
U
T
T
O
O
C
C
A
A
D
D
219
Ø
Ø
PaperSpace (không gian in) cũng cho phép chứa các đối tượng hình học như trong không
gian mô hình, tuy nhiên mục đích chính của không gian in là để phục vụ cho quá trình
sắp xếp bản vẽ và in ấn. Không gian in thường chứa các khung nhìn theo một tỷ lệ định
End With
End Sub
Hoặc đơn giản hơn, chỉ cần sử dụng một dòng lệnh sau:
Sub VD_ChuyenKhongGian()
ThisDrawing.ActiveSpace = (ThisDrawing.ActiveSpace + 1) Mod 2
End Sub
GỢI Ý Có thể chuyển đổi giữa các không gian bằng cách gán giá trị cho biến hệ thống
TILEMODE. Nếu TILEMODE=1, không gian mô hình sẽ là không gian hiện hành. Nếu bằng
0, không gian in sẽ là không gian hiện hành.
5.2.2. Khai báo và tạo đối tượng hình học
Tất các các đối tượng trong AutoCAD (kể cả đối tượng hình học và phi hình học) đều có thể
được khai báo trong VBA theo dạng thức Acad<TênĐốiTượng>. Chẳng hạn như đối tượng 220
đường thẳng – Line thì đối tượng tương ứng trong VBA sẽ có kiểu là AcadLine. Ví dụ sau
minh hoạ cách khai báo một đối tượng đường tròn trong VBA:
Dim CircleObj as AcadCircle
Người dùng có thể tạo mới đối tượng hình học trong không gian mô hình hoặc trong không
gian in. Để tạo đối tượng mới, sử dụng phương thức
AddXXX có trong tập đối tượng
ModelSpace và PaperSpace, trong đó
XXX là tên của loại đối tượng hình học cần tạo. Cú pháp
như sau:
Set Biến_đối_tượng = Object.AddXXX(Danh_sách_tham_số)
Trong đó, Object là tập đối tượng ModelSpace hoặc PaperSpace.
Mỗi phương thức
AddXXX sẽ trả về một đối tượng tham chiếu đến đối tượng vừa mới được tạo,
vì vậy bắt buộc phải sử dụng câu lệnh
Set trong khi tạo đối tượng và biến_đối_tượng phải
V
V
:
:
L
L
Ậ
Ậ
P
P
T
T
R
R
Ì
Ì
N
N
H
H
T
T
AddPoint để thêm một điểm tại vị trí mong muốn. Cú pháp như sau:
Set RetVal = object.AddPoint(Point)
Tham số Giải thích
Point Là tham số đầu vào kiểu Variant hoặc mảng 3 phần tử kiểu Double, chứa toạ độ
của vị trí tạo đối tượng Point.
RetVal Đối tượng kiểu Point, chứa tham chiếu đến đối tượng vừa mới được tạo.
ThayđổikiểuhiểnthịcủađốitượngPoint
Sau khi tạo đối tượng Point, người lập trình có thể thay đổi kiểu hiển thị của điểm bằng cách
thiết lập giá trị cho các biến hệ thống
PDMODE và PDSIZE.
Đoạn mã sau sẽ tạo một đối tượng Point trong không gian mô hình ở tọa độ (
5,5,0) và sau đó
thay đổi kiểu hiển thị của đối tượng Point bằng cách cập nhật lại giá trị biến hệ thống
PDMODE
và
PDSIZE.
Sub VD_TaoDTPoint()
Dim pointObj As AcadPoint
Dim ToaDo(0 To 2) As Double
’ Xác định vị trí vẽ điểm
ToaDo (0) = 5#: ToaDo (1) = 5#: ToaDo (2) = 0#
’ Tạo điểm mới
Set pointObj = ThisDrawing.ModelSpace.AddPoint(ToaDo)
ThisDrawing.SetVariable "PDMODE", 34
ThisDrawing.SetVariable "PDSIZE", 1
ZoomAll
End Sub
5.2.4. Tạo đối tượng dạng đường thẳng
' Tạo đoạn thẳng trong không gian mô hình
Set lineObj = ThisDrawing.ModelSpace.AddLine(diemDau, diemCuoi)
ZoomAll
End Sub
Còn trong ví dụ sau, đoạn thẳng sẽ được tạo ra từ hai điểm bất kỳ do người dùng chọn trên màn
hình. Đoạn thẳng này sẽ được tạo ra trên không gian mô hình hoặc không gian in, tuỳ thuộc vào
không gian nào là hiện hành.
Public Sub TestAddLine()
Dim diemDau As Variant
Dim diemCuoi As Variant
Dim objEnt As AcadLine
On Error Resume Next
' Lấy toạ độ điểm đầu và điểm cuối do người dùng nhập
diemDau = ThisDrawing.Utility.GetPoint _
(, vbCr & "Chon diem dau: ")
diemCuoi = ThisDrawing.Utility.GetPoint _
(diemDau, vbCr & "Chon diem cuoi: ")