Tải bản đầy đủ (.pdf) (5 trang)

Giáo trình phân tích khả năng ứng dụng các phương pháp lập trình ajax trên autocad p4 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (745.08 KB, 5 trang )



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,


Ø
Ø

Xác định hai đường tang và bán kính.
Hoặc để tạo một cung tròn, trong AutoCAD, người dùng có tới 11 phương thức để lựa chọn
như hình bên.
Tuy nhiên, vớ
i VBA trong AutoCAD, mỗi đối tượng chỉ có thể được tạo
bằng một phương thức với một loại thông số nhất định, ví dụ như đối
với đường tròn, người lập trình chỉ có thể tạo ra với các thông số là vị trí
tâm và bán kính của đường tròn.
Hầu hết các đối tượng hình học trong AutoCAD, tuy khác nhau về hìh
dáng, nhưng cách tạo ra chúng bằng VBA lại tương tự nhau, cho nên
trong phần này chỉ giới thi
ệu cách thức tạo ra một số đối tượng hình học
chính trong AutoCAD, bao gồm:
Ø
Ø

Đối tượng Point;
Ø
Ø

Đối tượng dạng đường cong: Arc, Circle;
Ø
Ø

Đối tượng văn bản: Text;
Ø
Ø


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

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



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

trước thể một phần của bản vẽ trong không gian mô hình, hoặc các bảng biểu, ghi chú,…
Trong AutoCAD, người dùng có thể tạo nhiều không gian in khác nhau, mỗi không gian
in tương ứng với một thẻ Layout nằm ở góc dướ
i màn hình bản vẽ trong AutoCAD. Để
truy cập đến các không gian in có trong bản vẽ, có thể sử dụng tập đối tượng Layouts có
trong đối tượng kiểu Document.
Tại một thời điểm, trong AutoCAD chỉ có một không gian là hiện hành, có thể là không gian
mô hình hoặc không gian in. Để xác định xem không gian nào là không gian hiện hành, người
lập trình có thể sử dụng thuộc tính ActiveSpace có trong đối tượng kiểu Document. Thuộc tính
này chỉ nhận giá trị là 2 hằng số sau:
Hằng số Giá trị tương ứng
acModelSpace 1
acPaperSpace 0
Ví dụ sau sẽ hiển thị thông báo tương ứng với không gian hiện hành của AutoCAD:
Sub VD_ActiveSpace()
If ThisDrawing.ActiveSpace = acModelSpace Then
MsgBox "Không gian hiện hành là không gian mô hình."
Else
MsgBox "Không gian hiện hành là không gian in."
End If
End Sub
Ngoài ra người dùng còn có thể chuyển đổi giữa không gian in và không gian mô hình bằng
cách gán giá trị cho thuộc tính ActiveSpace. Đoạn mã sau sẽ thực hiện thao tác này:
Sub VD_ChuyenKhongGian()
With ThisDrawing
If .ActiveSpace = acModelSpace Then
.ActiveSpace = acPaperSpace
Else
.ActiveSpace = acModelSpace
End If

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

có kiểu phù hợp với đối tượng trả về của phương thức
AddXXX.
Lấy ví dụ khi muốn tạo mới một đường tròn trong không gian mô hình, có thể sử dụng mẫu
sau:
Dim CircleObj as AcadCircle
Set Circle = ThisDrawing.ModelSpace.AddCircle(CenterPoint, Radius)
Sau khi tạo mới (hoặc hiệu chỉnh) đối tượng, thì kết quả hiển thị trên bản vẽ sẽ không được cập
nhật ngay cho đến khi gọi phương thức
Update của bản thân đối tượng đó, hoặc phương thức
Update của đối tượng Application hoặc phương thức Regen của đối tượng Document.
Trong một số trường hợp, AutoCAD cũng có tự động cập nhật ngay khi kết thúc Macro. Tuy
nhiên, để chắc chắn, sau khi tạo mới (hoặc hiệu chỉnh) đối tượng, nên chủ động cập nhật lại
những thay đổi này.
5.2.3. Tạo đối tượng Point
Đối tượng Point đôi khi cũng rất hữu dụng, chẳng hạn như để tạo một nút hoặc là một điểm
tham chiếu để từ đó ta tiến hành bắt điểm hoặc thực hiện lệnh Offset. Ngoài ra, khi thiết lập
kiểu và kích thước cho đối tượng Point, người dùng có thể sử dụng nó để trình bày bản vẽ một
cách hiệu quả.
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



221


TạođốitượngPoint
Sử dụng phương thức

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đổikiểuhiểnthịcủađốitượngPoint
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

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



222
Đường thẳng là đối tượng hình học cơ bản hay được dùng nhất trong AutoCAD. Nhìn chung, ta
có thể vẽ các đường thẳng bằng cách nhập vào tham số là tọa độ của các điểm của đường thẳng.
Để tạo một đường thẳng, có thể sử dụng một trong những phương thức sau:
Phương thức Giải thích
AddLine Tạo đường thẳng đi qua hai điểm.
AddLightweightPolyline Tạo đường đa tuyến 2D.
AddMLine Tạo đường đa tuyến nét đôi.
Add3DPoly Tạo đường đa tuyến 3D.
TạođốitượngLine
Phương thức thức
AddLine sẽ tạo đối tượng Line, là một đoạn thẳng đi qua hai điểm:
Set RetVal = object.AddLine(StartPoint, EndPoint)
Tham số Giải thích
StartPoint, EndPoint Là tham số đầu vào kiểu variant hoặc mảng 3 phần tử kiểu Double, chứa
toạ độ điểm đầu và điểm kết thúc của đoạn thẳng.
RetVal Đối tượng kiểu Line, tham chiếu đến đoạn thẳng vừa mới được tạo.
Ví dụ sau tạo một đoạn thẳng trong không gian mô hình với toạ độ điểm đầu và điểm cuối là
(
1,1,0) và (5,5,0):
Sub Example_AddLine()
Dim lineObj As AcadLine
Dim diemDau(0 To 2) As Double
Dim diemCuoi(0 To 2) As Double

' Định điểm đầu và điểm cuối của đoạn thẳng
diemDau(0) = 1#: diemDau(1) = 1#: diemDau(2) = 0#
diemCuoi(0) = 5#: diemCuoi(1) = 5#: diemCuoi(2) = 0#


' 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: ")

×