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

Giáo trình phân tích quy trình ứng dụng cấu tạo các phương pháp lập trình ajax trên autocad p2 pptx

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 (660.46 KB, 5 trang )



208

Ví dụ sau minh hoạ cách thức sử dụng phương thức ZoomScaled bằng cách phóng màn hình
bản vẽ lên 2 lần so với màn hình bản vẽ hiện tại:
Sub VD_ZoomScaled()
Dim ti_le As Double
Dim kieu_phong_dai As Integer
ti_le = 2
kieu_phong_dai = acZoomScaledRelative
‘ Thực hiện phương thức ZoomScaled
ZoomScaled ti_le, kieu_phong_dai
End Sub
5.1.5. Nhập dữ liệu người dùng từ dòng lệnh của AutoCAD
Trong một chương trình, giao diện để người sử dụng thao tác với chương trình là một bộ phận
rất quan trọng và không thể thiếu. Thông qua giao diện, người sử dụng có thể nhập dữ liệu và
điều khiển chương trình hoạt động, còn chương trình, cũng thông qua giao diện, sẽ hướng dẫn
cho người dùng cách thao tác và trình bày kết quả thực hiệ
n của nó cho người dùng.
Có nhiều cách để thiết kế giao diện nhập dữ liệu cho chương trình, như sử dụng các hộp thoại
chuẩn (như InputBox hoặc MsgBox) hay thông qua hệ thống các hộp thoại người dùng
(UserForm). Khi lập trình VBA trong AutoCAD, bởi chương trình sẽ hoạt động dựa trên nền là
AutoCAD cho nên việc thiết kế một giao diện cho phép người dùng tương tác với chương trình
ngay trong giao diện của AutoCAD là một nhu cầu cần thiết. Hơ
n nữa điều này được AutoCAD
và VBA hỗ trợ thông qua đối tượng Utility (là một thuộc tính của đối tượng Document). Với
những phương thức của đối tượng Utility người lập trình có cho phép người sử dụng thao tác
với chương trình VBA thông qua dòng lệnh của AutoCAD cũng như màn hình đồ họa của
AutoCAD. Các phương thức này sẽ hiển thị một dòng nhắc trên dòng lệnh của AutoCAD và
yêu cầu người sử dụng nhậ


p vào nhiều kiểu dữ liệu khác nhau (tuỳ thuộc vào từng loại phương
thức) từ bàn phím hoặc chọn trên màn hình đồ họa của AutoCAD.
Các phương thức để người dùng nhập dữ liệu vào từ bàn phím hay bằng chuột thường có dạng
GetXXX, tuỳ thuộc vào loại dữ liệu mà người lập trình cần lấy. Dưới đây là một số phương
thức thường được sử dụng:
Prompt
Phương thức này chỉ đơn giản là gửi một đoạn văn bản đến dòng lệnh của AutoCAD và thường
được sử dụng để thông báo cho người dùng biết một nội dung nào đó trước hoặc sau một thao
tác với chương trình. Cú pháp như sau:
Utility.Prompt Message
Trong đó Message là đoạn văn bản sẽ được hiển thị trên dòng lệnh của AutoCAD.
Khi gửi một đoạn văn bản đến dòng lệnh của AutoCAD, cần thêm vào ký tự xuống dòng, tránh
dòng văn bản cần hiển thị nối vào dòng văn bản đang có trong dòng lệnh. Ví dụ sau sẽ minh
hoạ rõ hơn điều này.
1. Trong VBAIDE, tạo Macro sau:
Sub VDPrompt()
Utility.Prompt ("Vi du phuong thuc Prompt")
End Sub
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



209

2. Trở về AutoCAD để thực thi Macro bằng cách gọi lệnh –vbarun. Lưu ý là sử dụng phím
SPACE để kết thúc dòng lệnh, thay vì sử dụng phím ENTER như thông thường. Kết quả
hiển thị trên dòng lệnh như sau:


3. Để đoạn văn bản được in ra trên một dòng riêng biệt, thêm vào trước đoạn văn bản hằng số
vbCrLf, và đoạn mã lệnh trên được chuyển thành:
Sub VDPrompt()
Utility.Prompt (vbCrLf & "Vi du phuong thuc Prompt")
End Sub
4. Thực thi lại Macro trên, đoạn văn bản đã được hiển thị trên một dòng riêng biệt

GetString
Phương thức này được sử dụng để người dùng nhập vào một chuỗi ký tự. AutoCAD sẽ dừng lại
cho đến khi người dùng nhập vào một giá trị nào đó. Cú pháp của phương thức GetString như
sau:
RetVal = Utility.GetString(HasSpaces[, Prompt])
Tham số Giải thích
HasSpaces Tham số cho phép người dùng nhập vào dấu cách. Nếu bằng TRUE, người dùng có
thể nhập dấu cách trong dòng lệnh, để kết thúc nhập phải nhấn phím ENTER. Nếu
bằng FALSE, người dùng không thể nhập dấu cách cho chuỗi ký tự, khi người dùng
nhấn phím SPACE hoặc ENTER thì sẽ kết thúc quá trình nhập.
Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người
dùng nhập dữ liệu.
RetVal Là biến kiểu String, chứa giá trị là chuỗi ký tự được người dùng nhập vào. Một điểm
cần lưu ý là phương thức này chỉ trả về tối đa 132 ký tự. Nếu người dùng nhập
nhiều hơn 132 ký tự, kết quả trả về cho biến RetVal chỉ là 132 ký tự đầu tiên.
Ví dụ sau sẽ minh hoạ cách sử dụng phương thức GetString:
Sub VD_GetString()
' Ví dụ minh hoạ các cách sử dụng phương thức GetString

Dim returnString As String

' Nhắc người dùng nhập



210
' Giá trị nhập vào không thể chứa dấu cách
returnString = ThisDrawing.Utility.GetString _
(False, "Nhập chuỗi (nhấn SPACE hoặc ENTER để kết thúc): ")
MsgBox "Chuỗi vừa nhập là: '" & returnString & "'"

' Nhắc người dùng nhập
' Giá trị nhập vào có thể chứa dấu cách
returnString = ThisDrawing.Utility.GetString _
(True, " Nhập chuỗi (nhấn ENTER để kết thúc): ")
MsgBox "Chuỗi vừa nhập là: '" & returnString & "'"
End Sub
GetInteger,GetReal
Phương thức này được sử dụng khi muốn người dùng nhập một số nguyên (phương thức
GetInteger) hoặc một số thực (phương thức GetReal). Cú pháp của các phương thức này như
sau:
RetVal = Utility.GetInteger([Prompt])
RetVal = Utility.GetReal([Prompt])
Tham số Giải thích
Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người
dùng nhập dữ liệu.
RetVal Là biến kiểu Double hoặc Interger (tuỳ thuộc vào phương thức được sử dụng), chứa
giá trị là số người dùng vừa nhập vào.
Nếu người dùng nhập vào một từ khoá hoặc không nhập số mà nhấn ngay phím ENTER để kết
thúc nhập liệu, AutoCAD sẽ phát sinh lỗi “User input keyword.”.
Ví dụ sau minh hoạ cách sử dụng các phương thức này:
Sub Example_GetReal()
' Ví dụ sau sử dụng phương thức GetReal và phương thức GetInteger

' để người dùng nhập vào số thực và số nguyên.

Dim returnReal As Double
Dim returnInteger As Integer

' Nhắc người dùng nhập vào số thực,
' sau đó hiển thị kết quả được nhập vào.
returnReal = ThisDrawing.Utility.GetReal("Enter an Real: ")
MsgBox "Số thực vừa được nhập: " & returnReal & vbCrLf & _
"(Tiếp tục nhập giá trị.)"

' Nhắc người dùng nhập vào số nguyên,
' sau đó hiển thị kết quả được nhập vào.
returnInteger = ThisDrawing.Utility.GetInteger("Nhập số nguyên: ")
MsgBox "Số nguyên vừa được nhập: " & returnInteger
End Sub
GetAngle
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



211

Phương thức này được sử dụng khi muốn người lập trình nhập vào một giá trị góc bằng cách
nhập giá trị ngay trên dòng lệnh hoặc chọn một góc trên màn hình. Cú pháp của phương thức
này như sau:
RetVal = Utility.GetAngle([Point][, Prompt])

Tham số Giải thích
Point Tham số tuỳ chọn, là mảng số thực có 3 phần tử thể hiện toạ độ đầu tiên của tia tạo
nên góc mà người dùng sẽ chọn trên màn hình.
Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc người
dùng nhập dữ liệu.
RetVal Là biến kiểu Double chứa giá trị trả về của phương thức GetAngle, là góc mà người
dùng đã nhập vào (tính theo Radian).
Khi sử dụng phương thức này, người dùng có thể nhập vào góc (tính bằng độ) tại dòng lệnh.
Ngoài ra, người sử dụng có thể sử dụng chuột để vẽ hai điểm xác định tia tạo nên góc cần nhập.
Giá trị trả về là góc hợp giữa tia đó và góc cơ sở (được xác định bởi biến hệ thống ANGBASE,
giá trị mặc định là 0).

Trong trường hợp không nhập giá trị cho tham số
Point, người dùng sẽ phải chọn hai điểm
trên màn hình để xác định tia mong muốn. Nếu nhập giá trị cho tham số
Point, thì toạ độ có
trong tham số
Point sẽ được gán cho điểm thứ 1, người dùng chỉ cần xác định điểm thứ 2 trên
màn hình mà thôi.
Bảng dưới đây thể hiện giá trị trả về của phương thức GetAngle với các góc nhập vào khác
nhau:
Góc người dùng
nhập (độ)
Giá trị trả về của phương
thức GetAngle
0 0.0
-90 1.5708
180 3.14159
90 4.71239



212
Nếu người dùng không nhập giá trị nào cả mà nhấn ENTER, AutoCAD sẽ phát sinh lỗi “User
input keyword.”
Ví dụ sau minh hoạ cách sử dụng phương thức GetAngle:
Sub Example_GetAngle()

Dim retAngle As Double

' Lấy về góc tính bằng radian
retAngle = ThisDrawing.Utility.GetAngle(, "Nhập vào góc: ")
MsgBox "Góc vừa được nhập là: " & retAngle

' Lấy về góc tính bằng radian với toạ độ điểm đầu cho trước
Dim basePnt(0 To 2) As Double
basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0#
retAngle = ThisDrawing.Utility.GetAngle(basePnt, "Nhập vào góc: ")
MsgBox "Góc vừa được nhập là: " & retAngle

End Sub
GetPoint
Phương thức GetPoint được sử dụng để lấy một điểm do người dùng nhập vào bằng cách nhập
tọa độ trực tiếp từ dòng lệnh hoặc chọn điểm trên màn hình. Giá trị trả về của phương thức có
kiểu Variant, là một mảng gồm 3 phần tử số thực chứa tọa độ của điểm đã được chọn trong hệ
tọa độ WCS. Cú pháp của phương thức như sau:
RetVal = Utility.GetPoint([Point][, Prompt])
Tham số Giải thích
Point Tham số tuỳ chọn, kiểu Variant, là mảng số thực có 3 phần tử thể hiện toạ độ
của điểm tham chiếu của điểm sẽ nhập vào.
Prompt Tham số tuỳ chọn, là chuỗi ký tự sẽ hiện trên dòng lệnh AutoCAD để nhắc

người dùng nhập dữ liệu.
Nếu tham số tùy chọn Point được gán giá trị, AutoCAD sẽ tạo một đường thẳng tham chiếu nối
từ điểm Point đến vị trí hiện tại của con trỏ trên màn hình đồ họa. Đường thẳng này luôn thay
đổi theo sự di chuyển của con trỏ, hỗ trợ việc quan sát của người dùng trong quá trình nhập
điểm. Sau khi người dùng nhập điểm bằng cách bấm chuột trên màn hình đồ họa tại vị trí mong
mu
ốn thì đường thẳng tham chiếu cũng sẽ mất đi.
Nếu người dùng không nhập vào điểm nào mà nhấn ENTER, AutoCAD sẽ phát sinh lỗi “User
input keyword.”
Ví dụ sau minh họa cách sử dụng phương thức GetPoint và các tham số:
Sub Example_GetPoint()
' Ví dụ minh họa cách sử dụng phương thức GetPoint.

Dim returnPnt As Variant

' Nhập điểm và trả về tọa độ của điểm khi không có điểm tham chiếu
returnPnt = ThisDrawing.Utility.GetPoint(, "Nhap mot diem: ")
MsgBox "Toa do WCS cua diem: " & returnPnt(0) & ", " & _
returnPnt(1) & ", " & returnPnt(2)

×