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 p7
lượt xem 7
download
Phương thức SelectByPolygon Phương thức này thực hiện chọn các đối tượng để thêm vào SelectionSet dựa trên mối tương quan với đường đa tuyến do người lập trình xác định trước. Cú pháp của phương thức này như sau: object.SelectByPolygon
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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 p7
- CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD Ví dụ sau thêm tất cả các đối tượng đi qua điểm (6.8 , 9.4 , 0) vào đối tượng SelectionSet có tên là “MySelectionSet”: Sub VD_SelectAtPoint() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("MySelectionSet") If Err 0 Then Err.Clear Set ssetObj = ThisDrawing.SelectionSets.Add("MySelectionSet") Else ssetObj.Clear End If ' Thêm tất cả các đối tượng qua điểm (6.8,9.4,0) ' vào đối tượng SelectionSet Dim point(0 To 2) As Double point(0) = 6.8: point(1) = 9.4: point(2) = 0 ssetObj.SelectAtPoint point End Sub Phương thức SelectByPolygon Phương thức này thực hiện chọn các đối tượng để thêm vào SelectionSet dựa trên mối tương quan với đường đa tuyến do người lập trình xác định trước. Cú pháp của phương thức này như sau: object.SelectByPolygon Mode, PointsList[, FilterType][, FilterData] Tham số Giải thích Object Là đối tượng SelectionSet Mode Tham số xác định chế độ chọn đối tượng. PointsList Tham số tùy chọn, kiểu Variant (mảng kiểu Double) chứa toạ độ 3 chiều của các đỉnh của đường đa tuyến. FilterType, Tham số tuỳ chọn, xác định bộ lọc đối tượng (Chi tiết tham khảo phần “Định nghĩa FilterData bộ lọc đối tượng cho SelectionSet” trang 236). Giá trị của tham số Mode sẽ xác định cách thức lựa chọn đối tượng khi sử dụng phương thức SelectByPolygon. Giá trị của tham số này có thể là một trong những giá trị sau: Hằng số Giá trị Ý nghĩa acSelectionSetFence 2 Chọn các đối tượng có giao cắt với đường bao đa tuyến có tọa độ các đỉnh xác định bởi PointsList. acSelectionSetWindowPolygon 6 Chọn các đối tượng nằm hoàn toàn bên trong miền đa giác có tọa độ các đỉnh xác định bởi PointsList. acSelectionSetCrossingPolygon 7 Chọn các đối tượng nằm hoàn toàn hoặc một phần bên trong miền đa giác có tọa độ các đỉnh xác định bởi PointsList. AutoCAD sẽ tự động vẽ đa giác từ các tọa độ này theo nguyên tắc các cạnh của đa giác không giao nhau. 233
- Minh hoạ dưới đây sẽ làm rõ ý nghĩa các giá trị của tham số Mode. Các đường liền là các đối tượng trên bản vẽ của AutoCAD, còn các đường nét đứt là đường đa tuyến nối các đỉnh được cho bởi tham số PointList. Hình V-10: Minh hoạ các chế độ chọn đối tượng của phương thức SelectByPolygon. Kết quả của phương thức SelectByPolygon là rất khác nhau tuỳ thuộc vào giá trị của tham số Mode. Nếu tham số Mode có giá trị là: acSelectionSetFence: đối tượng được chọn là hình ellipese. acSelectionSetWindowPolygon: đối tượng được chọn là hình chữ nhật và hình tròn. acSelectionSetCrossingPolygon: đối tượng được chọn là tất cả các hình trên. Đoạn mã sau sẽ minh hoạ cách thức sử dụng phương thức SelectByPolygon Sub VD_SelectByPolygon() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("MySelectionSet") If Err 0 Then Err.Clear Set ssetObj = ThisDrawing.SelectionSets.Add("MySelectionSet") Else ssetObj.Clear End If ' Xác định các đỉnh của đường đa tuyến Dim pointsArray(0 To 11) As Double pointsArray(0) = 28.2: pointsArray(1) = 17.2: pointsArray(2) = 0 pointsArray(3) = -5: pointsArray(4) = 13: pointsArray(5) = 0 pointsArray(6) = -3.3: pointsArray(7) = -3.6: pointsArray(8) = 0 pointsArray(9) = 28: pointsArray(10) = -3: pointsArray(11) = 0 ' Xác định chế độ chọn đối tượng Dim mode As Integer mode = acSelectionSetFence ' Chọn đối tượng ssetObj.SelectByPolygon mode, pointsArray End Sub Phương thức SelectOnScreen Phương thức này sẽ hiển thị dòng nhắc “Select object:” tại dòng lệnh và cho phép người dùng chọn đối tượng trực tiếp trên màn hình bản vẽ, cách thao tác trên màn hình AutoCAD này tương tự như khi sử dụng các lệnh thông thường khác của AutoCAD, mà có yêu cầu lựa chọn đối tượng (ví dụ như lệnh Copy). Cú pháp của phương thức này như sau: 234
- CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD object.SelectOnScreen [FilterType] [, FilterData] Tham số Giải thích Object Là đối tượng SelectionSet FilterType, Tham số tuỳ chọn, xác định bộ lọc đối tượng (Chi tiết tham khảo phần “Định nghĩa FilterData bộ lọc đối tượng cho SelectionSet” trang 236). Đoạn mã sau sẽ minh hoạ cách thức sử dụng phương thức SelectOnScreen: Sub VD_SelectOnScreen() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("MySelectionSet") If Err 0 Then Err.Clear Set ssetObj = ThisDrawing.SelectionSets.Add("MySelectionSet") Else ssetObj.Clear End If ' Hiển thị thêm dòng nhắc tại dòng lệnh ThisDrawing.Utility.Prompt vbCrLf & "Chon doi tuong tren man hinh:" ' Chọn đối tượng trên màn hình ssetObj.SelectOnScreen End Sub 5.3.3. Thao tác với các đối tượng trong SelectionSet Như phần trước đã trình bày, thực chất đối tượng SelectionSet là một tập đối tượng dùng để nhóm các đối tượng hình học lại với nhau nhằm mục đích hiệu chỉnh các đối tượng hình học đó dễ dàng hơn. Do bản thân là một tập đối tượng nên cách thức truy cập đến tất cả các đối tượng bên trong SelectionSet tốt nhất là sử dụng cấu trúc lặp “For each … next”. Đoạn mã lệnh sau sẽ yêu cầu người sử dụng thực hiện chọn đối tượng trên màn hình bản vẽ, sau đó tiến hành đổi màu các đối tượng được chọn thành màu xanh. Sub VD_SelectOnScreen() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("MySelectionSet") If Err 0 Then Err.Clear Set ssetObj = ThisDrawing.SelectionSets.Add("MySelectionSet") Else ssetObj.Clear End If ' Chọn đối tượng trên màn hình ThisDrawing.Utility.Prompt vbCrLf & "Chon doi tuong can doi mau:" ssetObj.SelectOnScreen ' Thực hiện các thao tác với đối tượng được chọn Dim ent As AcadEntity For Each ent In ssetObj 235
- ' Đoạn chương trình xử lý các đối tượng sẽ nằm ở đây ' Trong ví dụ này, các đối tượng sẽ được đổi màu thành màu xanh ent.Color = acBlue ent.Update Next ent End Sub 5.3.4. Định nghĩa bộ lọc đối tượng cho SelectionSet Trong tất cả các phương thức chọn đối tượng dạng SelectXXX đều có hai tham số tuỳ chọn FilterType và FilterData, là tham số được sử dụng để lọc các đối tượng được chọn theo một tiêu chí nào đó. Các tiêu chí thường được sử dụng bao gồm: loại đối tượng (đường thẳng, đường tròn...), màu sắc, kiểu đường nét, lớp... Khi sử dụng bộ lọc đối tượng, chỉ có những đối tượng thoả mãn các tiêu chí trong bộ lọc mới được chọn để thêm vào đối tượng SelectionSet. Để thiết lập bộ lọc đối tượng, hai tham số FilterType và FilterData cần phải được sử dụng song hành: FilterType: là tham số kiểu Variant, thực chất là một mảng một chiều kiểu Integer chứa mã DXF xác định kiểu lọc đối tượng. FilterData: là tham số kiểu Variant, thực chất là một mảng một chiều kiểu Variant chứa giá trị của kiểu lọc tương ứng trong tham số FilterType. Do có mối quan hệ 1-1 như vậy nên số phần tử của mảng FilterData phải bằng với số phần tử của mảng FilterType. Tuỳ theo nhu cầu mà người lập trình phải chọn cho mình một tiêu chí lọc đối tượng thích hợp. Dưới đây sẽ liệt kê danh sách các mã DXF tương ứng với một số kiểu lọc đối tượng thường sử dụng: Mã DXF Ý nghĩa -4 Các toán tử điều kiện (sử dụng cho bộ lọc theo nhiều điều kiện kết hợp) 0 Chuỗi thể hiện kiểu đối tượng, chẳng hạn như: Line, Polyline, LWPolyline, Spline, Circle, Arc, Text, Mtext,... 1 Chuỗi văn bản của các đối tượng như Text và MText (giá trị thuộc tính Content của các đối tượng này). 2 Chuỗi tương ứng với thuộc tính Name, chẳng hạn như thuộc tính Tag của đối tượng Attribute, thuộc tính name của đối tượng Block,… 6 Chuỗi tương ứng với kiểu đường (Linetype) của các đối tượng. 7 Chuỗi tương ứng với kiểu văn bản (Textstyle) của các đối tượng. 8 Chuỗi tương ứng với tên lớp (Layer) của các đối tượng. 10 Toạ độ điểm chủ yếu của đối tượng, chẳng hạn như: điểm đầu của đối tượng Line, điểm chèn của đối tượng Text, tâm của đối tượng Circle,… 62 Số nguyên xác định màu của đối tượng: 0-ByBlock, 256-ByLayer, 1-Red, 2-Yellow,… các giá trị màu này tương ứng với bảng màu trong AutoCAD. Tất cả các mã DXF có thể tham khảo trong tài liệu trợ giúp của AutoCAD “DXF Reference”, mục DXF Format Group Codes in Numerical Order. CHÚ Ý Khi truyền giá trị cho tham số FilterType và FilterData, số phần tử của mảng FilterType và mảng FilterData phải bằng nhau. Mỗi phần tử của mảng FilterType sẽ tương ứng với một phần tử của mảng FilterData. Lọc theo một điều kiện 236
- CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD Khi thực hiện lọc theo một điều kiện, số phần tử của các tham số FilterType và FilterData là 1. Tuy nhiên, người lập trình không được gán giá trị trực tiếp mà vẫn phải thực hiện khai báo các tham số này là mảng nhưng chỉ có một phần tử. Ví dụ sau sẽ minh hoạ rõ hơn cách thức tạo bộ lọc đối tượng với chỉ một điều kiện: Sub VD_Filter() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("SSET") ssetObj.Delete Set ssetObj = ThisDrawing.SelectionSets.Add("SSET") ' Tạo bộ lọc đối tượng: ' Tiêu chí chọn là: Kiểu đổi tượng ' Giá trị của tiêu chí là: “Circle” ' nghĩa là chỉ chọn đối tượng là đường tròn. Dim gpCode(0) As Integer Dim dataValue(0) As Variant gpCode(0) = 0: dataValue(0) = "Circle" ssetObj.SelectOnScreen gpCode, dataValue MsgBox "So doi tuong duoc chon: " & ssetObj.Count End Sub Lọc theo nhiều điều kiện kết hợp Khi cần lọc đối tượng theo nhiều điều kiện kết hợp, cần phải thêm vào các toán tử điều kiện trong bộ lọc. Để kết hợp các điều kiện với nhau, các điều kiện phải được đặt giữa các toán tử điều kiện, mã DXF chung của các toán tử điều kiện là -4. Dưới đây là danh sách các toán tử điều kiện được sử dụng trong bộ lọc đối tượng: Toán Giá trị Giá trị kết Số lượng Ý nghĩa tử bắt đầu thúc điều kiện ≥1 AND “” Đối tượng nào thoả mãn tất cả các điều kiện sẽ được chọn. ≥1 OR “” Đối tượng nào thoả mãn một trong các điều kiện sẽ được chọn. XOR “” 2 Đối tượng nào thoả mãn một điều kiện và không thoả mãn điều kiện còn lại sẽ được chọn. NOT “” 1 Đối tượng nào không thoả mãn điều kiện sẽ được chọn. Đoạn mã sau sẽ thực hiện chọn đối tượng có sử dụng bộ lọc theo nhiều điền kiện kết hợp: những đối tượng là đường thẳng hoặc đường tròn và không nằm trên lớp “Layer1” sẽ được chọn. Sub VD_Filter() ' Tạo đối tượng SelectionSet Dim ssetObj As AcadSelectionSet On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("SSET") ssetObj.Delete Set ssetObj = ThisDrawing.SelectionSets.Add("SSET") 237
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Quá trình hình thành phương pháp sử dụng softimage để tạo hình nhân vật p1
7 p | 93 | 9
-
quá trình hình thành phương pháp tùy chọn ease full để thay đổi tốc độ hoạt động p1
5 p | 77 | 8
-
quá trình hình thành phương pháp tùy chọn ease full để thay đổi tốc độ hoạt động p6
5 p | 92 | 6
-
Giáo trình hình thành phương pháp cấu tạo dữ liệu giải thuật ứng dụng trong hệ thống p1
15 p | 74 | 5
-
Quá trình hình thành phương pháp sắp xếp ảnh minh họa bằng phương pháp contact sheet p3
6 p | 84 | 5
-
Giáo trình hình thành phương pháp sử dụng graphic movie để tạo chuyển động bằng key sence p5
10 p | 58 | 4
-
Giáo trình hình thành phương pháp sử dụng graphic movie để tạo chuyển động bằng key sence p4
10 p | 61 | 4
-
Giáo trình hình thành phương pháp sử dụng graphic movie để tạo chuyển động bằng key sence p2
10 p | 47 | 4
-
Giáo trình hình thành phương pháp cấu tạo dữ liệu giải thuật ứng dụng trong hệ thống p4
5 p | 73 | 4
-
Giáo trình hình thành phương pháp cấu tạo dữ liệu giải thuật ứng dụng trong hệ thống p3
15 p | 73 | 4
-
Giáo trình hình thành phương pháp cấu tạo dữ liệu giải thuật ứng dụng trong hệ thống p2
15 p | 65 | 4
-
quá trình hình thành phương pháp tùy chọn ease full để thay đổi tốc độ hoạt động p9
5 p | 70 | 4
-
Giáo trình hình thành phương pháp ứng dụng dàn ngưng khí đổi cưỡng bức p10
5 p | 63 | 4
-
Quá trình hình thành phương pháp sử dụng softimage để tạo hình nhân vật p7
5 p | 79 | 4
-
Quá trình hình thành phương pháp sử dụng softimage để tạo hình nhân vật p5
5 p | 77 | 3
-
Quá trình hình thành phương pháp sử dụng softimage để tạo hình nhân vật p3
5 p | 84 | 3
-
Giáo trình hình thành phương pháp sử dụng graphic movie để tạo chuyển động bằng key sence p6
10 p | 77 | 3
-
Giáo trình hình thành phương pháp sử dụng graphic movie để tạo chuyển động bằng key sence p8
2 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn