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 p10 ppt

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



248
Giá trị của thuộc tính Color là số nguyên trong phạm vi từ 0 đến 256, 9 trong các số này được
định nghĩa trước với các hằng số
acColor trong AutoCAD. Dưới đây là danh sách các hằng số
này:
Hằng số Giá trị Ý nghĩa
acByBlock 0 Màu của đối tượng lấy theo màu của Block chứa đối tượng đó.
acRed 1 Màu đỏ.
acYellow 2 Màu vàng.
acGreen 3 Màu xanh lá.
acCyan 4 Màu xanh lam.
acBlue 5 Màu xanh da trời.
acMagenta 6 Màu tím
acWhite 7 Màu trắng hoặc đen tuỳ thuộc vào màu nền.
acByLayer 256 Màu của đối tượng lấy theo màu của lớp chứa đối tượng đó.
Đoạn mã dưới đây cho phép người dùng chọn đối tượng trên màn hình và thực hiện đổi màu
đối tượng được chọn thành màu đỏ:
Sub VD_Color()
Dim ent As AcadEntity
Dim P(2) As Double
‘ Chọn đối tượng trên màn hình
On Error Resume Next
ThisDrawing.Utility.GetEntity ent, P, "Chon doi tuong can doi mau: "
If Not (ent Is Nothing) Then
‘ Đổi màu đối tượng
ent.Color = acRed
ent.Update
End If
End Sub


ThuộctínhLayer–Lớpchứađốitượng
Sử dụng thuộc tính
Layer để lấy và thay đổi lớp chứa đối tượng. Thông thường, khi một đối
tượng hình học mới được tạo ra, đối tượng đó sẽ được đặt trên lớp hiện hành của bản vẽ. Khi
người dùng thay đổi giá trị của thuộc tính
Layer thành tên của một lớp khác, đối tượng đó sẽ
được tự động chuyển về nằm trên lớp mới này. Nếu người dùng gán cho thuộc tính
Layer một
tên lớp không có trong bản vẽ thì chương trình sẽ không báo lỗi, và đối tượng vẫn nằm trên lớp
cũ.
object.Layer
Tham số Giải thích
Object Là đối tượng hình học.
Layer Chuỗi chứa tên của lớp.
Đoạn mã dưới đây cho phép người dùng chọn đối tượng trên màn hình và thực hiện đổi lớp của
đối tượng được chọn thành lớp
“Layer1” (người dùng phải tạo trước một lớp có tên là
“Layer1” bằng lệnh của 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



249

Sub VD_Layer()
Dim ent As AcadEntity
Dim P(2) As Double

' Chọn đối tượng trên màn hình
On Error Resume Next
ThisDrawing.Utility.GetEntity ent, P, "Chon doi tuong can doi lop: "
If Not (ent Is Nothing) Then
' Chuyển lớp cho đối tượng
ent.Layer = "Layer1"
ent.Update
End If
End Sub
ThuộctínhLineType–Kiểuđườngcủađốitượng
Để thay đổi kiểu hiển thị của nét vẽ các đối tượng hình học trên màn hình, thiết lập lại thuộc
tính
Linetype của đối tượng thành một kiểu đường hiện có trong bản vẽ. Thông thường, khi
một đối tượng vừa mới được tạo ra, đối tượng sẽ được gán kiểu đường bằng kiểu đường hiện
hành trong bản vẽ. Thuộc tính này cũng có hiệu lực với đối tượng Layer.
object.Linetype
Tham số Giải thích
Object Là đối tượng hình học hoặc đối tượng Layer.
Linetype Chuỗi chứa tên của kiểu đường của đối tượng. Ngoài ra, thuộc tính này cũng có
thể bằng một trong những giá trị đặc biệt sau:
CONTINUOUS: đây là kiểu đường mặc định, được AutoCAD tự động tạo ra.
BYLAYER: kiểu đường của đối tượng sẽ được lấy bằng kiểu đường đã được gán
cho lớp chứa đối tượng.
BYBLOCK: kiểu đường của đối tượng sẽ được lấy bằng kiểu đường của block có
chứa đối tượng.
Đoạn mã dưới đây cho phép người dùng chọn đối tượng trên màn hình và thực hiện đổi kiểu
đường của đối tượng được chọn thành
“DASHED2” (người dùng phải tạo trước kiểu đường có
tên là
“DASHED2” bằng lệnh của AutoCAD):

Sub VD_LineType()
Dim ent As AcadEntity
Dim P(2) As Double
' Chọn đối tượng trên màn hình
On Error Resume Next
ThisDrawing.Utility.GetEntity ent, P, "Chon DT can doi kieu duong: "
If Not (ent Is Nothing) Then
' Chuyển kiểu đường cho đối tượng
ent.Linetype = "DASHED2"
ent.Update
End If
End Sub
CHÚ Ý có thể phải điều chỉnh giá trị của biến hệ thống LTSCALE thì mới quan sát được các
kiểu đường không phải là nét liền.


250

ThuộctínhLineweight–Chiềudàynétin
Thuộc tính
Lineweight dùng để thiết lập chiều dày nét in cho các đối tượng hình học và đối
tượng Layer.
object.Lineweight
Giá trị của thuộc tính này là một hằng số kiểu acLineWeight:
Hằng số Bề dày (mm) Hằng số Bề dày
(mm)
Hằng số Bề dày
(mm)
acLnWtByLayer Theo lớp acLnWt020 0.2 acLnWt080 0.8
acLnWtByBlock Theo Block acLnWt025 0.25 acLnWt090 0.9

acLnWtByLwDefault Mặc định acLnWt030 0.3 acLnWt100 1.0
acLnWt000 0.0 acLnWt035 0.35 acLnWt106 1.06
acLnWt005 0.05 acLnWt040 0.4 acLnWt120 1.2
acLnWt009 0.09 acLnWt050 0.5 acLnWt140 1.4
acLnWt013 0.13 acLnWt053 0.53 acLnWt158 1.58
acLnWt015 0.15 acLnWt060 0.6 acLnWt200 2.0
acLnWt018 0.18 acLnWt070 0.7 acLnWt211 2.11
Khi một đối tượng hình học vừa mới được tạo ra, giá trị của thuộc tính này là acLnWtByLayer.
Nếu không được gán bằng một chiều dày nét in cụ thể, chiều dày nét in sẽ được lấy bằng chiều
dày mặc định của AutoCAD, chiều dày này được xác định thông qua biến hệ thống
LWDEFAULT
(giá trị này có đơn vị là 1/100 của mm).
Đoạn mã lệnh sau sẽ minh hoạ cách thức thao tác với thuộc tính Lineweight:
Sub VD_LineWeight()
Dim circleObj As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius As Double
' Xác định các thông số của đường tròn
centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
radius = 5#
' Tạo đường tròn trong không gian mô hình
Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint,
radius)
ZoomAll
' Hiển thị chiều dày hiện hành của đường tròn
MsgBox "Chieu day hien hanh la: " & circleObj.Lineweight
' Thay đổi chiều dày của đường tròn
circleObj.Lineweight = acLnWt211
circleObj.Update
MsgBox " Chieu day hien hanh la: " & circleObj.Lineweight

End Sub
Ngoài những thuộc tính như đã giới thiệu ở trên, người lập trình có thể sử dụng các thuộc tính
sau để hiệu chỉnh đối tượng:
Thuộc tính Đối tượng áp dụng Giải thích
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



251

Center Arc, Circle. Kiểu Variant (mảng 3 phần tử kiểu double). Toạ độ
tâm của đối tượng.
Radius Arc, Circle. Kiểu Double. Bán kính của cung tròn hoặc đường
tròn.
Area Arc, Circle, LWPolyline,
Polyline.
Kiểu Double. Diện tích vùng khép kín của đối tượng.
là thuộc tính đọc-ghi đối với đối tượng Circle, là thuộc
tính chỉ đọc với các đối tượng khác.
Length Line Kiểu Double. Thuộc tính chỉ đọc xác định chiều dài
của đoạn thẳng.
TextString MText, Text. Kiểu String. Chuỗi văn bản được hiển thị trong đối
tượng văn bản.
Alignment Text. Hằng số kiểu acAlignment, xác định chế độ canh
hàng theo phương đứng và phương ngang.
Rotation DimAligned, DimAngular,
DimDiametric,

DimOrdinate, DimRadial,
DimRotated, MText, Text
Kiểu Double. Xác định góc xoay của đối tượng so với
phương ngang, được tính bằng Radian.
5.4.3. Hiệu chỉnh đường đa tuyến
Như đã được giới thiệu ở phần trước, đối với đường đa tuyến 2D, có hai loại đối tượng là:
LWPolyline và Polyline, cách thức hiệu chỉnh hai đối tượng này là tương tự nhau. Tuy
nhiên, cần phải chú ý một điểm khác biệt lớn giữa hai đối tượng này: toạ độ tại một đỉnh của
đường
LWPolyline chỉ có 2 thành phần X và Y, còn toạ độ tại một đỉnh của đường Polyline
có cả 3 thành phần X, Y và Z nhưng thành phần thứ 3 sẽ không được sử dụng. Ở đây sẽ tập
trung giới thiệu về cách hiệu chỉnh đường đa tuyến dạng
LWPolyline.
Khi hiệu chỉnh đường đa tuyến, ngoài những cách thức đã được đề cập ở trên, người lập trình
thường sử dụng các phương thức và thuộc tính sau:
Thuộc tính Giải thích
Area Double, chỉ đọc. Diện tích của vùng khép kín tạo bởi đường đa tuyến.
Closed Boolean. Bằng TRUE: đường đa tuyến sẽ được khép kín, bằng FALSE:
đường đa tuyến sẽ được mở.
ConstantWidth Double. Chiều dày của tất cả các đoạn của đường đa tuyến.
Elevation Double. Cao độ của đường đa tuyến (toạ độ z của đường đa tuyến).
Coordinate(i) Variant (thực chất là mảng 2 hoặc 3 phần tử kiểu Double). Toạ độ của đỉnh
thứ i của đường đa tuyến.
Coordinates Variant (mảng kiểu Double). Toạ độ của tất cả các đỉnh của đường đa tuyến.

Phương thức Giải thích
SetWidth Thiết lập chiều dày đầu và chiều dày cuối cho đoạn thứ i của đường đa tuyến.
GetWidth Lấy chiều dày đầu và chiều dày cuối cho đoạn thứ i của đường đa tuyến.
Dưới đây là một số thao tác hiệu chỉnh đường đa tuyến thường dùng
Thêmmộtđỉnhvàođườngđatuyến

Để thêm một đỉnh vào đường đa tuyến, có thể sử dụng phương thức
AddVertex. Cú pháp của
phương thức này như sau:


252
object.AddVertex Index, Point
Tham số Giải thích
Object Là đối tượng LWPolyline.
Index Kiểu Integer. Chỉ số của đỉnh cần thêm vào đường đa tuyến. Đỉnh đầu tiên của
đường đa tuyến được đánh số là 0. Giá trị Index nhập vào phải lớn hơn 0.
Point Kiểu Variant (mảng 2 phần tử kiểu Double) chứa toạ độ của điểm cần thêm vào
đường đa tuyến.
Ví dụ sau sẽ minh hoạ cách thức chèn một đỉnh vào đường đa tuyến:
Sub VD_AddVertex()
Dim plineObj As AcadLWPolyline
Dim points(0 To 9) As Double
' Xác định các đỉnh của đường đa tuyến
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
' Tạo đường đa tuyến trong không gian mô hình
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
ZoomAll
MsgBox "Them dinh vao duong da tuyen.", , "Vi du AddVertex"

' Định nghĩa toạ độ đỉnh mới
Dim newVertex(0 To 1) As Double

newVertex(0) = 1.5: newVertex(1) = 1
' Thêm một đỉnh cào đường đa tuyến
plineObj.AddVertex 2, newVertex
plineObj.Update
MsgBox "Da them dinh vao duong da tuyen.", , "Vi du AddVertex"
End Sub
Đọchoặcthayđổitoạđộđỉnhcủađườngđatuyến
Để đọc hoặc thay đổi toạ độ đỉnh của đường đa tuyến, có thể sử dụng thuộc tính
Coordinate(i) có trong đối tượng LWPolyline. Khi sử dụng thuộc tính này, cần lưu ý là chỉ
số các đỉnh của đường đa tuyến được đánh số bắt đầu từ 0.
Đoạn mã dưới đây sẽ tạo một đường đa tuyến, sau đó thay đổi toạ độ đỉnh thứ 2 của đường đa
tuyến và hiển thị toạ độ mới của điểm này trong hộp thông báo.
Sub VD_Coordinate()
Dim plineObj As AcadLWPolyline
Dim points(0 To 9) As Double
' Xác định các đỉnh của đường đa tuyến
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
' Tạo đường đa tuyến trong không gian mô hình
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
ZoomAll
MsgBox "Thay doi toa do dinh 2.", , "Vi du Coordinate"

×