Hiệu chỉnh đối tượng sử dụng các thuộc tính

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 250 - 254)

CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD

3. Tại dòng nhắc “Enter Variable(s) to List”, nhấn ENTER

5.4. Hiệu chỉnh đối tượng hình học

5.4.2. Hiệu chỉnh đối tượng sử dụng các thuộc tính

Không giống như các khi sử dụng các phương thức, người lập trình có thể sử dụng các thuộc tính để hiệu chỉnh sự hiển thị của các đối tượng hình học trong bản vẽ AutoCAD. Sau khi thay đổi thuộc tính của các đối tượng, nên sử dụng phương thứcUpdate có trong đối tượng đó để 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#c tính Color – Màu ca !i t*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 Gii thch

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

Giá trị của thuộc tínhColorlà 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ốacColortrong AutoCAD. Dưới đây là danh sách các hằng số này:

Hng s Gi tr ngha

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 – Lp cha !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ínhLayer 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 Gii thch

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

Sub VD_Layer()

http://www.ebook.edu.vn 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 – Kiu ]ng ca !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 Gii thch

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.

Thu#c tính Lineweight – Chiu dày nét in

Thuộc tínhLineweight 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ểuacLineWeight:

Hng s B dy (mm) Hng s B dy

(mm)

Hng s B dy (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ốngLWDEFAULT (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:

Thuc tnh *i tng p d+ng Gii thch

http://www.ebook.edu.vn

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.

Một phần của tài liệu Tự động hóa thiết kế cầu đường lê quỳnh mai (Trang 250 - 254)

Tải bản đầy đủ (PDF)

(434 trang)