Sd ng layer, color

Một phần của tài liệu LẬP TRÌNH TRONG AUTOCAD (Trang 62 - 63)

VI. Làm v ic vi Group

1. Sd ng layer, color

Trong mục này chúng ta sẽ nghiên cứu :

• Truy cập đến Layers Collection và Layer Objects. • Kiểm tra sự tồn tại của một Layer.

• Tạo một Layer và chuyển một layer thành layer hiện hành.

• Thiết lập các thuộc tính của layer nh : On /Off, Thawed /Frozen, Locked /Unlocked • Đổi tên, xóa một layer

• Thiết lập hay lấy các thông số Color và Linetype của layer.

Làm vi c v i Layers

AutoCAD cung cấp Layers collection chứa tất cả các đối t ợng Layer có trong bản vẽ. Bạn có thể tạo ra các layer bằng các thên layer object vào Layers collection.

Bạn có thể truy suất vào Layers collection bằng cách nh sau : Dim objLayers As AcadLayers

Set objLayers = ThisDrawing.Layers

Để tham chiếu đến mọt Layer có sẵn trong bản vẽ. Bạn sử dụng phuơng thức Item của layer Collection nh sau : BỘ MÔN TIN HỌC XÂY DỰNG KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠ I HỌC XÂY DỰNG

Dim objLayer As AcadLayer

Set objLayer = objLayers.Item(Index)

Set objLayer = objLayers.Item("Name of Layer")

Index là một số integer đại diện cho vị trí của layer trong Layers collection. “Name Layer là một chuỗi, là tên của Layer mà ta muỗn truy cập đến nó. Nếu bạn sử dụng index thì nó phải nằm trong khoảng từ 0 đến ( Layers.Count – 1).

Giống nh các AutoCAD collections khác, Item là ph ơng thức mặc định của Layer collection. Có nghĩa là tên ph ơng thức này có thể khơng đ ợc viết vào nh ng cad vẫn hiểu đó là ph ơng thức

Dim objLayer As AcadLayer Set objLayer = objLayers(index)

Set objLayer = objLayers("Name of Layer")

Duy t qua các Layers trong Layer Collection

Sử dụng For … Each loop để duyệt qua các layer trong Layer Collection:

Public Sub ListLayers()

Dim objLayer As AcadLayer

For Each objLayer In ThisDrawing.Layers

Debug.Print objLayer.Name

Next

End Sub

Ngồi ra ta có thể duyệt qua các Layer thông qua chỉ số Index. Sử dụng thuộc tính objLayers.Count – 1 nh sau :

Public Sub ListLayersManually()

Dim objLayers As AcadLayers Dim objLayer As AcadLayer Dim intI As Integer

Set objLayers = ThisDrawing.Layers For intI = 0 To objLayers.Count - 1

Set objLayer = objLayers(intI)

Debug.Print objLayer.name

Next

End Sub

Một phần của tài liệu LẬP TRÌNH TRONG AUTOCAD (Trang 62 - 63)

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

(101 trang)