C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
V
V
:
:
L
L
Ậ
Ậ
P
P
T
T
R
A
D
D
243
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 2#: center(1) = 2#: center(2) = 0#
radius = 0.5
Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)
ZoomAll
' Xác định 2 điểm tạo nên vec-tơ tịnh tiến
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 0: point1(1) = 0: point1(2) = 0
point2(0) = 2: point2(1) = 0: point2(2) = 0
MsgBox "Di chuyển theo trục X 2 đơn vị."
' Thực hiện di chuyển đối tượng
circleObj.Move point1, point2
ZoomAll
MsgBox "Quá trình dịch chuyển đã kết thúc."
End Sub
Dim points(0 To 11) As Double
points(0) = 1: points(1) = 1
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 2
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 1
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
' Xác định trục đối xứng
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 0: point1(1) = 4.25: point1(2) = 0
point2(0) = 4: point2(1) = 4.25: point2(2) = 0
MsgBox "Lấy đối xứng đường đa tuyến.", , "VD Mirror"
' Thực hiện lấy đối xứng đường đa tuyến
Dim mirrorObj As AcadLWPolyline
Set mirrorObj = plineObj.Mirror(point1, point2)
mirrorObj.Color = acRed
ZoomAll
MsgBox "Mirror completed.", , " VD Mirror"
End Sub
LấyOff‐set–PhươngthứcOffset
Phương thức Offset sẽ tạo ra một đối tượng mới với đường biên nằm cách đường biên của đối
tượng cũ một khoảng được xác định trước. Phương thức này có thể được áp dụng với các đối
Ậ
P
P
T
T
R
R
Ì
Ì
N
N
H
H
T
T
R
R
Ê
Ê
N
N
A
A
U
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 2
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 1
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
MsgBox "Off-set đa tuyến với khoảng cách 0.25.", , "Ví dụ Offset"
' Lấy Off-set đường đa tuyến
Dim offsetObj As Variant
offsetObj = plineObj.Offset(0.25)
offsetObj(0).Color = acRed
ZoomAll
End Sub
Xoayđốitượng–PhươngthứcRotate
Sử dụng phương thức
Rotate để xoay một đối tượng quanh một điểm cố định. Cú pháp của
phương thức này như sau:
object.Rotate BasePoint, RotationAngle
Tham số Giải thích
Object Là đối tượng sẽ được xoay.
BasePoint Là mảng 3 phần tử kiểu Double chứa toạ độ điểm gốc, đối tượng sẽ được quay
quanh điểm này.
RotationAngle Là tham số kiểu Double, xác định góc xoay đối tượng (tính bằng Radian).
Đoạn mã sau sẽ minh hoạ cách thức sử dụng phương thức Rotate:
Sub VD_Rotate()
Y và Z. Cú pháp của phương thức này như sau:
object.ScaleEntity BasePoint, ScaleFactor
Tham số Giải thích
Object Là đối tượng sẽ được thay đổi tỷ lệ.
BasePoint Mảng 3 phần tử kiểu Double chứa toạ độ điểm gốc, đối tượng sẽ được thay đổi tỷ
lệ theo các phương X, Y và Z quanh điểm này quay quanh điểm này.
ScaleFactor Tham số kiểu Double, xác định hệ số tỷ lệ khi thay đổi tỷ lệ. Kích thước của đối
tượng sẽ được nhân với hệ số tỷ lệ này. Tham số ScaleFactor chỉ nhận giá trị lớn
hơn không, nếu nhỏ hơn hoặc bằng không thì VBAIDE sẽ báo lỗi. Giá trị
ScaleFactor<1 sẽ thu nhỏ đối tượng, ngược lại sẽ phóng to đối tượng lên.
Đốitượngvớivịtrí
vàkíchthướcmới
Đốitượngvớivịtrívà
kíchthướcbanđầu
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
247
Hình V-13: Minh hoạ phương thức ScaleEntity
Đoạn mã sau tạo một đường đa tuyến trong không gian mô hình và sử dụng phương thức
ScaleEntity để thay đổi tỷ lệ của đường đa tuyến đó quanh điểm (4 , 4.25 , 0) với hệ số
tỷ lệ là
0.5
Sub VD_ScaleEntity()
cập nhật những thay đổi trên bản vẽ.
Dưới đây là các thuộc tính thường được sử dụng khi hiệu chỉnh các đối tượng hình học.
ThuộctínhColor–Màucủađốitượng
Sử dụng thuộc tính
Color để lấy hoặc gán màu cho một đối tượng hình học. Thuộc tính này
cũng có trong đối tượng Layer với ý nghĩa tương đương.
object.Color
Tham số Giải thích
Object Là đối tượng hình học, hoặc đối tượng Layer.
Color Số nguyên hoặc hằng số acColor, xác định màu của đối tượng. Khi một đối tượng
mới được tạo ra, giá trị mặc định của thuộc tính này acByLayer