1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình hình thành phương pháp lập trình trên autocad và phương pháp hệ thống đối tượng p10

5 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

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ố acByBlock acRed acYellow acGreen acCyan acBlue acMagenta acWhite acByLayer

Giá trị thuộc tính Color số nguyên phạm vi từ đến 256, số định nghĩa trước với số acColor AutoCAD Dưới danh sách số này: Hằng số Giá trị Ý nghĩa acByBlock Màu đối tượng lấy theo màu Block chứa đối tượng acRed Màu đỏ acYellow Màu vàng acGreen Màu xanh acCyan Màu xanh lam acBlue Màu xanh da trời acMagenta Màu tím acWhite Màu trắng đen tuỳ thuộc vào màu acByLayer 256 Màu đối tượng lấy theo màu lớp chứa đối tượng Đoạn mã cho phép người dùng chọn đối tượng hình thực đổi màu đối tượng chọn thành màu đỏ: Sub VD_Color() Dim ent As AcadEntity Dim P(2) As Double ‘ Chọn đối tượng 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 thay đổi lớp chứa đối tượng Thông thường, đối tượng hình học tạo ra, đối tượng đặt lớp hành vẽ Khi người dùng thay đổi giá trị thuộc tính Layer thành tên lớp khác, đối tượng tự động chuyển nằm lớp Nếu người dùng gán cho thuộc tính Layer tên lớp khơng có vẽ chương trình khơng báo lỗi, đối tượng nằm 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 lớp Đoạn mã cho phép người dùng chọn đối tượng hình thực đổi lớp đối tượng chọn thành lớp “Layer1” (người dùng phải tạo trước lớp có tên “Layer1” lệnh AutoCAD): 248 CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Sub VD_Layer() Dim ent As AcadEntity Dim P(2) As Double ' Chọn đối tượng 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ị nét vẽ đối tượng hình học hình, thiết lập lại thuộc tính Linetype đối tượng thành kiểu đường có vẽ Thông thường, đối tượng vừa tạo ra, đối tượng gán kiểu đường kiểu đường hành vẽ Thuộc tính 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 đối tượng Layer Linetype Chuỗi chứa tên kiểu đường đối tượng Ngồi ra, thuộc tính giá trị đặc biệt sau: CONTINUOUS: kiểu đường mặc định, AutoCAD tự động tạo BYLAYER: kiểu đường đối tượng lấy kiểu đường gán cho lớp chứa đối tượng BYBLOCK: kiểu đường đối tượng lấy kiểu đường block có chứa đối tượng Đoạn mã cho phép người dùng chọn đối tượng hình thực đổi kiểu đường đối tượng chọn thành “DASHED2” (người dùng phải tạo trước kiểu đường có tên “DASHED2” lệnh AutoCAD): Sub VD_LineType() Dim ent As AcadEntity Dim P(2) As Double ' Chọn đối tượng 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Ú Ý phải điều chỉnh giá trị biến hệ thống LTSCALE quan sát kiểu đường khơng phải nét liền 249 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 đối tượng hình học đối tượng Layer object.Lineweight Giá trị thuộc tính số kiểu acLineWeight: Hằng số Bề dày (mm) Hằng số Bề dày Hằng số (mm) 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 đối tượng hình học vừa tạo ra, giá trị thuộc tính acLnWtByLayer Nếu không gán chiều dày nét in cụ thể, chiều dày nét in lấy chiều dày mặc định AutoCAD, chiều dày xác định thông qua biến hệ thống LWDEFAULT (giá trị có đơn vị 1/100 mm) Đoạn mã lệnh sau 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 thơng số đường trịn centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0# radius = 5# ' Tạo đường trịn khơng gian mơ hình Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) ZoomAll ' Hiển thị chiều dày hành đường tròn MsgBox "Chieu day hien hanh la: " & circleObj.Lineweight ' Thay đổi chiều dày đường tròn circleObj.Lineweight = acLnWt211 circleObj.Update MsgBox " Chieu day hien hanh la: " & circleObj.Lineweight End Sub Ngoài thuộc tính giới thiệu trên, người lập trình sử dụng thuộc tính sau để hiệu chỉnh đối tượng: Thuộc tính 250 Đối tượng áp dụng Giải thích CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD  Center Arc, Circle Kiểu Variant (mảng phần tử kiểu double) Toạ độ tâm đối tượng Radius Arc, Circle Kiểu Double Bán kính cung tròn đường tròn Area Arc, Circle, LWPolyline, Polyline Kiểu Double Diện tích vùng khép kín đối tượng thuộc tính đọc-ghi đối tượng Circle, thuộc tính đọc với đối tượng khác Length Line Kiểu Double Thuộc tính đọc xác định chiều dài đoạn thẳng TextString MText, Text Kiểu String Chuỗi văn hiển thị đối tượng văn Alignment Text Hằng số kiểu acAlignment, xác định chế độ canh hàng theo phương đứng phương ngang Rotation DimAligned, DimAngular, DimDiametric, DimOrdinate, DimRadial, DimRotated, MText, Text Kiểu Double Xác định góc xoay đối tượng so với phương ngang, tính Radian 5.4.3 Hiệu chỉnh đường đa tuyến Như giới thiệu phần trước, đường đa tuyến 2D, có hai loại đối tượng là: LWPolyline Polyline, cách thức hiệu chỉnh hai đối tượng tương tự Tuy nhiên, cần phải ý điểm khác biệt lớn hai đối tượng này: toạ độ đỉnh đường LWPolyline có thành phần X Y, toạ độ đỉnh đường Polyline có thành phần X, Y Z thành phần thứ không sử dụng Ở tập trung giới thiệu cách hiệu chỉnh đường đa tuyến dạng LWPolyline Khi hiệu chỉnh đường đa tuyến, cách thức đề cập trên, người lập trình thường sử dụng phương thức thuộc tính sau: Thuộc tính Giải thích Area Double, đọc Diện tích vùng khép kín tạo đường đa tuyến Closed Boolean Bằng TRUE: đường đa tuyến khép kín, FALSE: đường đa tuyến mở ConstantWidth Double Chiều dày tất đoạn đường đa tuyến Elevation Double Cao độ đường đa tuyến (toạ độ z đường đa tuyến) Coordinate(i) Variant (thực chất mảng phần tử kiểu Double) Toạ độ đỉnh thứ i đường đa tuyến Coordinates Variant (mảng kiểu Double) Toạ độ tất đỉnh đường đa tuyến Phương thức Giải thích SetWidth Thiết lập chiều dày đầu chiều dày cuối cho đoạn thứ i đường đa tuyến GetWidth Lấy chiều dày đầu chiều dày cuối cho đoạn thứ i đường đa tuyến Dưới 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 đỉnh vào đường đa tuyến, sử dụng phương thức AddVertex Cú pháp phương thức sau: 251 object.AddVertex Index, Point Tham số Giải thích Object Là đối tượng LWPolyline Index Kiểu Integer Chỉ số đỉnh cần thêm vào đường đa tuyến Đỉnh đường đa tuyến đánh số Giá trị Index nhập vào phải lớn Point Kiểu Variant (mảng phần tử kiểu Double) chứa toạ độ điểm cần thêm vào đường đa tuyến Ví dụ sau minh hoạ cách thức chèn đỉnh vào đường đa tuyến: Sub VD_AddVertex() Dim plineObj As AcadLWPolyline Dim points(0 To 9) As Double ' Xác định đỉnh đường đa tuyến points(0) = 1: points(1) = points(2) = 1: points(3) = points(4) = 2: points(5) = points(6) = 3: points(7) = points(8) = 4: points(9) = ' Tạo đường đa tuyến 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 Dim newVertex(0 To 1) As Double newVertex(0) = 1.5: newVertex(1) = ' Thêm đỉ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 thay đổi toạ độ đỉnh đường đa tuyến, sử dụng thuộc tính Coordinate(i) có đối tượng LWPolyline Khi sử dụng thuộc tính này, cần lưu ý số đỉnh đường đa tuyến đánh số Đoạn mã tạo đường đa tuyến, sau thay đổi toạ độ đỉnh thứ đường đa tuyến hiển thị toạ độ điểm hộp thông báo Sub VD_Coordinate() Dim plineObj As AcadLWPolyline Dim points(0 To 9) As Double ' Xác định đỉnh đường đa tuyến points(0) = 1: points(1) = points(2) = 1: points(3) = points(4) = 2: points(5) = points(6) = 3: points(7) = points(8) = 4: points(9) = ' Tạo đường đa tuyến không gian mơ hình Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) ZoomAll MsgBox "Thay doi toa dinh 2.", , "Vi du Coordinate" 252 ... đường đối tượng lấy kiểu đường gán cho lớp chứa đối tượng BYBLOCK: kiểu đường đối tượng lấy kiểu đường block có chứa đối tượng Đoạn mã cho phép người dùng chọn đối tượng hình thực đổi kiểu đường đối. .. Ngồi thuộc tính giới thiệu trên, người lập trình sử dụng thuộc tính sau để hiệu chỉnh đối tượng: Thuộc tính 250 Đối tượng áp dụng Giải thích CHƯƠNG V: LẬP TRÌNH TRÊN? ?AUTOCAD? ? Center Arc, Circle... 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ị nét vẽ đối tượng hình học hình, thiết lập lại thuộc

Ngày đăng: 11/05/2021, 02:26

w