Thông tin tài liệu:
LÀM VIỆC TRONG KHÔNG GIAN BA CHIỀUTrong chương nàyVật thể 3 chiều (3D) thường được biểu diễn bởi các bản vẽ gồm các hình chiếu của nó trên các mặt phẳng (2D). Mặc dù phương pháp phác hoạ trên được sử dụng rất rộng rãi trong các ngành kỹ thuật và kiến trúc, nhưng nó bị hạn chế ở chỗ: bản vẽ 2D phải mô tả vật thể không gian và phải thể hiện được một cách trực quan. Hơn nữa, vì các hình chiếu được tạo ra độc lập nên khả năng lỗi và gây nhầm lẫn là rất...
Nội dung trích xuất từ tài liệu:
Phát triển AutoCAD bằng ActiveX & VBA - Chương 8LÀM VIỆC TRONG KHÔNGGIAN BA CHIỀU 8 Trong chương nàyVật thể 3 chiều (3D) thường được biểu diễn bởi các Xác định toạ độ ba chiềubản vẽ gồm các hình chiếu của nó trên các mặt phẳng Định nghĩa hệ toạ độ người dùng(2D). Mặc dù phương pháp phác hoạ trên được sử Chuyển trục toạ độdụng rất rộng rãi trong các ngành kỹ thuật và kiến Tạo đối tượng ba chiềutrúc, nhưng nó bị hạn chế ở chỗ: bản vẽ 2D phải mô Hiệu chỉnh trong khôngtả vật thể không gian và phải thể hiện được một cách gian ba chiềutrực quan. Hơn nữa, vì các hình chiếu được tạo ra Hiệu chỉnh vật thể khốiđộc lập nên khả năng lỗi và gây nhầm lẫn là rất lớn.Vì vậy, ta có thể tạo ra hình 3D thật thay vì thể hiệnnó bằng các hình 2D. Có thể sử dụng các công cụcủa AutoCAD để tạo ra các hình 3D một cách chi tiếtvà giống như thật, hơn nữa ta có thể thao tác vớichúng theo nhiều cách khác nhau. Phát triển ứng dụng ActiveX và VBA | 2151. Xác định tọa độ ba chiềuViệc xác định toạ độ 3D cũng giống như trong hệ toạ độ 2D, chỉ thêm thành phầntheo hướng thứ 3, trục Z. Khi vẽ trong 3D, cần xác định được các giá trị toạ độ theocác trục X,Y và Z trong hệ toạ độ chung (WCS) cũng như trong hệ toạ độ ngườidùng (UCS). Hình vẽ dưới đây mô tả các trục X, Y, Z của hệ trục WCS: Gốc tọa độ UCSBiểu tượng UCS Gốc tọa độ WCS1.1. Quy tắc bàn tay phảiQuy tắc bàn tay phải xác định chiều dương của trục Z khi đã biết hướng của trục Xvà Y, đồng thời cũng xác định chiều quay dương xung quanh các trục trong khônggian 3D.Để xác định chiều dương của các trục X, Y, Z, đặt bàn tay phải thẳng, các ngón tayhướng thẳng lên trên sao cho mu bàn tay hướng về phía màn hình, ngón cái hướngsang ngang, ngón trỏ chỉ hướng thẳng đứng lên trên và ngón giữa gập theo hướngvuông góc với lòng bàn tay, khi đó hướng chỉ của ngón cái sẽ trùng với hướngdương của trục X, hướng của các ngón trỏ trùng với hướng dương của trục Y, vàhướng chỉ của ngón giữa là hướng dương của trục Z. Để xác định chiều quay dươngquanh các trục toạ độ đặt ngón cái trùng theo hướng dương của hệ trục toạ độ, gậpcác ngón tay còn lại hướng vào lòng bàn tay thì hướng gập các ngón tay trùng vớichiều quay dương quanh trục toạ độ đó.1.2. Nhập tọa độ X, Y , ZNhập toạ độ trong hệ trục toạ độ WCS 3D tương tự như nhập tọa độ trong hệ trụctọa độ WCS 2D, nhưng cần chỉ ra toạ độ Z bên cạnh toạ độ X, Y. Cũng như hệ trụctoạ độ 2D, một biến được sử dụng để chuyển các tọa độ vào trong các phương thứchay thuộc tính trong ActiveX cũng như để nhập vào một tọa độ.216 | Chương 8: Làm việc trong không gian ba chiềuĐoạn chương trình con dưới đây, trước hết sẽ tạo ra một đường đa tuyến nét mảnh2D với 3 đỉnh, sau đó sẽ tạo đường đa tuyến 3D với 3 đỉnh. Chú ý rằng chiều dàicủa mảng chứa các đỉnh đó sẽ tăng lên để chứa thêm toạ độ Z của đường đa tuyến3D. Chương trình này kết thúc bởi việc xuất ra toạ độ các đỉnh của đường đa tuyến2D và 3D bằng thông báo.Định nghĩa và truy vấn toạ độ của đường đa tuyến 2D và 3DVí dụ này sẽ tạo ra 2 đường đa tuyến, trong đó có một đường 3D. Đường đầu tiên làđa tuyến 2D và đường thứ hai sẽ là 3D. Ví dụ này cũng sẽ truy vấn toạ độ củachúng và hiển thị trên các thông báo.Sub Ch8_Polyline_2D_3D() Dim pline2DObj As AcadLWPolyline Dim pline3DObj As AcadPolyline Dim points2D(0 To 5) As Double Dim points3D(0 To 8) As Double ’ Định nghĩa đỉnh polyline 2D points2D(0) = 1: points2D(1) = 1 points2D(2) = 1: points2D(3) = 2 points2D(4) = 2: points2D(5) = 2 ’ Định nghĩa đỉnh polyline 3D points3D(0) = 1: points3D(1) = 1: points3D(2) = 0 points3D(3) = 2: points3D(4) = 1: points3D(5) = 0 points3D(6) = 2: points3D(7) = 2: points3D(8) = 0 ’ Tạo polyline 2D Set pline2DObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points2D) pline2DObj.Color = acRed pline2DObj.Update ’ Tạo polyline 3D Set pline3DObj = ThisDrawing.ModelSpace.AddPolyline(points3D) pline3DObj.Color = acBlue pline3DObj.Update ’ Lấy các toạ độ đỉnh của các polyline Dim get2Dpts As Variant Dim get3Dpts As Variant get2Dpts = pline2DObj.Coordinates get3Dpts = pline3DObj.Coordinates ’ Hiển thị toạ độ MsgBox (2D polyline (red): & vbCrLf & _ get2Dpts( ...