Giáo trình Phát triển AutoCAD bằng ActiveX & VBA - Chương 5: Kích thước và dung sai
rong chương này 5
Khái niệm về kích thước
Tạo kích thước
Hiệu chỉnh kích thước
Kiểu kích thước
Kích thước trong không
gian mô hình và không
gian in
Tạo đường dẫn và chú
thích
Tạo dung sai hình học
Bạn đang xem tài liệu "Giáo trình Phát triển AutoCAD bằng ActiveX & VBA - Chương 5: Kích thước và dung sai", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Giáo trình Phát triển AutoCAD bằng ActiveX & VBA - Chương 5: Kích thước và dung sai
Phát triển ứng dụng ActiveX và VBA | 155 KÍCH THƯỚC VÀ DUNG SAI 5 Trong chương này Khái niệm về kích thước Tạo kích thước Hiệu chỉnh kích thước Kiểu kích thước Kích thước trong không gian mô hình và không gian in Tạo đường dẫn và chú thích Tạo dung sai hình học Định kích thước là quá trình vẽ các đường kích thước cho bản vẽ. Còn dung sai xác định khoảng sai số cho phép của kích thước bản vẽ. Với ActiveX Automation, kích thước của bản vẽ được quản lý bằng các kiểu kích thước. 156 | Chương 5: Kích thước và dung sai 1. Khái niệm về kích thước Kích thước cho biết các số đo hình học của đối tượng như khoảng cách, góc giữa các đối tượng và toạ độ XY của một điểm. AutoCAD cung cấp 3 loại kích thước cơ bản: dạng đường, dạng tia và dạng góc. Kích thước dạng đường bao gồm các kiểu đo theo cạnh1, đo góc và kiểu tọa độ. Dưới đây là ví dụ về mỗi loại kích thước: Ta có thể vẽ kích thước cho từng đường thẳng, nhiều đường thẳng một lúc, đường cong, đường tròn và các đoạn của đường đa tuyến hoặc cũng có thể xác định các kích thước đơn lẻ. Kích thước theo kiểu tọa độ AutoCAD vẽ kích thước trên lớp hiện hành. Mỗi kích thước đều thuộc một kiểu kích thước nhất định, có thể là mặc định hoặc tuỳ chọn. Kiểu kích thước xác định các đặc tính như màu, kiểu chữ, và tỷ lệ kiểu đường, nhưng lại không được hỗ trợ thông số về độ dày. Các họ đường kích thước cho phép tạo những kiểu kích thước 1 Trong kích thước đo theo cạnh, đường kích thước song song với hai điểm gốc của đường kéo dài. Ví dụ dưới đây minh họa hai ví dụ về kích thước đo theo cạnh. Đầu tiên chọn đối tượng (1), sau đó xác định vị trí của kích thước đo theo cạnh (2). Đường dóng sẽ được vẽ tự động. Phát triển AutoCAD bằng ActiveX và VBA | 157 khác dựa trên một kiểu kích thước cơ bản. Chế độ ghi đè1 cho phép chỉnh sửa chi tiết chỉ cho một kích thước cụ thể. 1.1. Thành phần của một kích thước Phần này định nghĩa sơ lược về các thành phần của một kích thước. Chữ kích thước Đầu mũi tên Đường kích thước Đường dóng Đường dẫn Đường kích thước là một đường thẳng biểu thị hướng và độ rộng của một kích thước. Đối với kích thước đo góc, đường kích thước là một cung tròn. Đường dóng là một đường nối từ điểm được đo đến đường kích thước. Đầu mũi tên, còn gọi là ký hiệu điểm kết thúc hay điểm kết thúc, được thêm vào hai đầu của đường kích thước. Chữ kích thước là một chuỗi ký tự thường biểu thị số đo thực. Chuỗi ký tự cũng có thể bao gồm tiền tố, hậu tố và sai số. Đường dẫn là đường thẳng dẫn từ dòng chú thích đến đối tượng được chú thích. Dấu tâm là một dấu cộng nhỏ chỉ tâm của một đường tròn hay cung tròn. Đường tâm là các đường nét đứt xác định tâm của một đường tròn hay đường cung. Đường tâm 1.2. Định nghĩa biến hệ thống kích thước Biến hệ thống kích thước điều kiển sự hiển thị của kích thước. Biến hệ thống kích thước gồm có: DIMAUNIT, DIMUPT, DIMTOFL, DIMFIT, DIMTIH, DIMTOH, DIMJUST, và DIMTAD. Ta có thể gán các biến này bằng cách sử dụng phương thức SetVariable. Ví dụ, đoạn mã sau gán biến hệ thống DIMAUNIT (dạng đơn vị cho kích thước góc) là rađian (3). ThisDrawing.SetVariable "DIMAUNIT", 3 1.3. Thiết lập kiểu chữ cho kích thước Chữ kích thước là tất cả các đối tượng văn bản gắn với kích thước, bao gồm số đo, sai số, tiền tố, hậu tố và các ghi chú một dòng hoặc nhiều dòng. Ta có thể sử dụng 1 Ghi đè kiểu đường kích thước (dimension style override) là những thay đổi nhỏ cho một cấu hình nào đó cho kiểu kích thước hiện hành. Chế độ này tương đương với việc thay đổi biến hệ thống về đường kích thước mà không làm thay đổi kiểu kích thước hiện hành. 158 | Chương 5: Kích thước và dung sai các số đo mặc định của AutoCAD làm chữ kích thước hoặc tự nhập vào hoặc có thể bỏ đi hoàn toàn. Ta cũng có thể thêm vào chữ kích thước các thông tin như quy trình sản xuất hoặc hướng dẫn lắp đặt. Chữ kích thước một dòng sử dụng kiểu chữ hiện hành được xác định trong thuộc tính ActiveTextStyle. Chữ kích thước nhiều dòng cũng sử dụng kiểu chữ hiện hành cho các chuỗi văn bản đó. 1.4. Khái niệm về đường dẫn Đường dẫn mặc định là một đường thẳng có một đầu mũi tên chỉ tới một đối tượng trong bản vẽ. Thông thường, chức năng của một đường dẫn là nối phần chú thích với đối tượng. Chú thích trong trường hợp này là một đoạn văn bản, khối hoặc khung điều chỉnh đối tượng. Các đường dẫn này khác với loại đường dẫn đơn giản do AutoCAD tự động tạo ra cho các kích thước bán kính, đường kính hay kích thước theo cạnh vốn có chuỗi ký tự không đặt giữa các đường dóng. đường dẫn- Các đối tượng đường dẫn được liên kết với chú thích, do đó khi chú thích được chỉnh sửa, đường dẫn cũng được cập nhật theo. Ta có thể sao chép chú thích được sử dụng ở một nơi khác trong bản vẽ và gắn thêm đường dẫn vào hoặc ta có thể tạo một chú thích mới. Ta cũng có thể tạo một đường dẫn mà không cần có chú thích. 1.5. Khái niệm về kích thước liên kết Kích thước liên kết là kích thước mà trong đó tất cả các đường thẳng, đầu mũi tên, cung tròn và chữ kích thước đều được vẽ như một đối tượng kích thước đơn nhất. Biến hệ thống DIMASO điều khiển tính liên kết và mặc định là giá trị on (bật). Nếu biến DIMASO có giá trị là off (tắt), đường kích thước, đường dóng, đầu mũi tên, đường dẫn và chữ kích thước được vẽ như là các đối tượng riêng biệt. Ta có thể tạo kích thước không liên kết nếu cần thay đổi kích thước mà không bị các biến số chi phối. Tuy nhiên, nói chung, các kích thước liên kết dễ sử dụng hơn vì chúng được xem như là một đối tượng đơn nhất. Để gán hoặc lấy biến hệ thống, sử dụng phương thức SetVariable và GetVariable. Phát triển AutoCAD bằng ActiveX và VBA | 159 2. Tạo kích thước Ta có thể tạo kích thước dạng đường, dạng tia, dạng góc và kiểu toạ độ. Khi tạo kích thước, kiểu kích thước hiện hành sẽ được sử dụng. Sau khi đã được tạo ra, ta có thể điều chỉnh gốc của các đường dóng, vị trí chữ kích thước và nội dung chữ kích thước và góc hợp của nó so với đường kích thước. Ta cũng có thể thay đổi kiểu kích thước được sử dụng. 2.1. Tạo kích thước dạng đường Các kích thước dạng đường có thể là kiểu đo theo cạnh hoặc kiểu đo nghiêng. Kích thước kiểu đo theo cạnh có đường kích thước song song gốc của đường dóng. Các kích thước đo nghiêng có đường kích thước nằm nghiêng một góc so với gốc của đường dóng. Để tạo một kích thước dạng đường, sử dụng các lệnh AddDimAligned, AddDimRotated hoặc AddDim3PointAligned. Sau khi đã tạo xong các kích thước đo thẳng, ta có thể điều chỉnh chuỗi ký tự, góc của chuỗi ký tự hoặc góc của đường kích thước. Hình vẽ sau hiển thị rõ gốc của đường dóng cũng như vị trí đặt đường kích thước: nằm ngang thẳng đứng theo cạnh nghiêng góc 315 độ Để tạo kích thước kiểu đo theo cạnh, ta sử dụng phương thức AddDimAligned. Phương thức này cần phải nhập vào 3 toạ độ: gốc của hai đường dóng và vị trí của chuỗi ký tự. 2.2. Tạo kích thước dạng tia Kích thước dạng tia dùng để đo bán kính, đường kính của cung và đường tròn. Để tạo kích thước dạng tia, sử dụng phương thức AddDimRadial. Các dạng khác nhau của kích thước dạng tia được tạo dựa trên kích cỡ của đường tròn hay đường cung, thuộc tính TextPosition (vị trí chuỗi ký tự) và các giá trị trong các biến hệ thống kích thước như DIMUPT, DIMTOFL, DIMFIT, DIMTIH, DIMTOH, 160 | Chương 5: Kích thước và dung sai DIMJUST và DIMTAD. (Có thể lấy hoặc gán biến hệ thống bằng cách sử dụng phương thức GetVariable và SetVariable.) Đối với chuỗi ký tự của kích thước nằm ngang, nếu góc nghiêng của đường kích thước lớn hơn 15 độ so với phương ngang và ở bên ngoài đường tròn hay cung tròn, AutoCAD vẽ một đường móc. Đường móc là một đường có mũi tên đặt bên cạnh chuỗi ký tự kích thước, như được minh họa dưới đây: Để tạo kích thước dạng tia, sử dụng phương thức AddDimRadial hoặc AddDimDiametric. Các phương thức này cần phải nhập vào các giá trị: toạ độ tâm đường tròn hoặc cung tròn, toạ độ vị trí gắn đường dẫn và độ dài của đường dẫn. Các phương thức này sử dụng tham số LeaderLength làm khoảng cách từ điểm gắn đường dẫn đến điểm mà kích thước sẽ tạo một đường móc nằm ngang chỉ đến dòng chú thích (hoặc dừng lại nếu không cần vẽ đường móc). Tạo một kích thước dạng tia Ví dụ sau tạo đường kích thước dạng tia trong không gian mô hình. Sub Ch5_CreateRadialDimension() Dim dimObj As AcadDimRadial Dim center(0 To 2) As Double Dim chordPoint(0 To 2) As Double Dim leaderLen As Integer ’ Định nghĩa kích thước center(0) = 0 center(1) = 0 center(2) = 0 chordPoint(0) = 5 chordPoint(1) = 5 chordPoint(2) = 0 leaderLen = 5 ’ Tạo kích thước dạng tia trong không gian mô hình Set dimObj = ThisDrawing.ModelSpace. _ AddDimRadial(center, chordPoint, leaderLen) ZoomAll End Sub Phát triển AutoCAD bằng ActiveX và VBA | 161 CHÚ Ý Việc đặt thông số LeaderLength chỉ được sử dụng trong quá trình tạo kích thước. Sau khi kích thước đã được thiết lập xong lần đầu, mọi thay đổi giá trị LeaderLength đều không có tác dụng, nhưng các thiết lập mới sẽ được lưu lại và hiển thị trong các ứng dụng DXF, LISP và ADSRX. 2.3. Tạo kích thước đo góc Kích thước đo góc dùng để đo góc giữa hai đường thẳng hoặc giữa 3 điểm. Ví dụ, ta có thể sử dụng chúng để đo góc giữa hai đường bán kính của một đường tròn. Đường kích thước là một cung tròn. Để tạo kích thước đo góc, sử dụng phương thức AddDimAngular. Phương thức này cần nhập 3 giá trị sau: đỉnh của góc, gốc của các đường dóng, và vị trí của chuỗi ký tự. Đỉnh của góc là tâm của đường tròn hay đường cong, hoặc giao điểm của hai đường thẳng được đo. Gốc của đường dóng là điểm mà hai đường dóng đi qua. Đỉnh của góc có thể trùng với một trong những điểm gốc. Các đường dóng sẽ được tự động thêm vào nếu cần. Tạo một kích thước dạng góc Sau đây là ví dụ thiết lập một kích thước dạng góc trong không gian mô hình Sub Ch5_CreateAngularDimension() Dim dimObj As AcadDimAngular Dim angVert(0 To 2) As Double Dim FirstPoint(0 To 2) As Double Dim SecondPoint(0 To 2) As Double Dim TextPoint(0 To 2) As Double ’ Định nghĩa đường kích thước angVert(0) = 0 angVert(1) = 5 angVert(2) = 0 FirstPoint(0) = 1 FirstPoint(1) = 7 FirstPoint(2) = 0 SecondPoint(0) = 1 SecondPoint(1) = 3 SecondPoint(2) = 0 TextPoint(0) = 3 TextPoint(1) = 5 TextPoint(2) = 0 ’ Tạo đường kích thước đo góc trong không gian mô hình Set dimObj = ThisDrawing.ModelSpace. _ AddDimAngular(angVert, FirstPoint, SecondPoint, TextPoint) ZoomAll End Sub 162 | Chương 5: Kích thước và dung sai 2.4. Tạo kích thước dạng tọa độ Kích thước dạng toạ độ đo khoảng cách vuông góc từ một điểm, gọi là điểm mốc, đến đối tượng cần đo, như một lỗ trong một phần hình nào đó. Các kích thước này tránh được các sai số cộng dồn vì khoảng cách được đo trực tiếp từ điểm gốc đến đối tượng. Kích thước dạng toạ độ bao gồm một toạ độ X hoặc Y và một đường dẫn. Kích thước dạng toạ độ theo trục X đo khoảng cách từ một đối tượng đến điểm mốc theo trục X. Kích thước dạng toạ độ theo trục Y đo khoảng cách đó theo với trục Y. AutoCAD sử dụng gốc của UCS hiện hành để xác định các toạ độ được đo và sử dụng giá trị tọa độ tuyệt đối. Chuỗi ký tự được canh thẳng với toạ độ đường dẫn bất kể hướng của chuỗi ký tự này được quy định thế nào trong kiểu kích thước hiện hành. Ta có thể chấp nhận ký tự mặc định hoặc có thể điều chỉnh sau. Để tạo một kích thước dạng toạ độ, sử dụng phương thức AddDimOrdinate. Phương thức này cần 3 giá trị: một toạ độ xác định điểm cần đo (A), một toạ độ xác định đầu mút của đường dẫn (B) và tham biến kiểu “Boolean” xác định kích thước là kích thước theo trục X hay Y. Nếu chọn TRUE cho “Boolean”, phương thức sẽ tạo một kích thước theo trục X, nếu chọn FALSE thì sẽ tạo một kích thước theo trục Y. Tạo một kích thước dạng toạ độ Sub Ch5_CreatingOrdinateDimension() Dim dimObj As AcadDimOrdinate Dim definingPoint(0 To 2) As Double Dim leaderEndPoint(0 To 2) As Double Dim useXAxis As Long ’ Định nghĩa kích thước definingPoint(0) = 5 definingPoint(1) = 5 definingPoint(2) = 0 leaderEndPoint(0) = 10 leaderEndPoint(1) = 5 leaderEndPoint(2) = 0 useXAxis = 5 ’ Tạo kích thước dạng tọa độ trong không gian mô hình Set dimObj = ThisDrawing.ModelSpace. _ AddDimOrdinate(definingPoint, _ leaderEndPoint, useXAxis) ZoomAll End Sub Phát triển AutoCAD bằng ActiveX và VBA | 163 3. Hiệu chỉnh kích thước Cũng giống như các đối tượng đồ hoạ khác trong AutoCAD, ta có thể hiệu chỉnh kích thước bằng cách sử dụng các thuộc tính và phương thức chuẩn của đối tượng đó. Các thuộc tính sau đây dùng cho hầu hết các đối tượng kích thước: Rotation Xác định góc nghiêng cho đường kích thước theo đơn vị rađian StyleName Xác định tên của kiểu kích thước Text Xác định chuỗi ký tự của kích thước TextPosition Xác định vị trí của chuỗi ký tự kích thước TextRotation Xác định góc nghiêng của chuỗi ký tự kích thước Measurement Xác định số đo thực của kích thước Bên cạnh đó, một số đối tượng kích thước nhất định có những thuộc tính khác dùng để hiệu chỉnh gốc của đường dóng và chiều dài đường dẫn. Các phương thức sau đây có thể sử dụng khi hiệu chỉnh đối tượng kích thước: ArrayPolar Nhân bản dạng cực ArrayRectangular Nhân bản dạng chữ nhật Copy Sao chép đối tượng kích thước Erase Xoá đối tượng kích thước Mirror Lấy đối xứng đối tượng kích thước Move Di chuyển đối tượng kích thước Rotate Xoay đối tượng kích thước ScaleEntity Co dãn đối tượng kích thước Ghi đè chuỗi ký tự kích thước Giá trị kích thước được hiển thị có thể thay thế được bằng cách dùng thuộc tính TextOverride. Thuộc tính này có thể thay thế hoàn toàn giá trị hiển thị của kích thước, hoặc ta có thể thêm ký tự vào giá trị hiển thị. Ví dụ sau đây sẽ thêm một chuỗi ký tự vào giá trị kích thước để cả chuỗi ký tự đó và giá trị kích thước cùng được hiển thị. Sub Ch5_OverrideDimensionText() Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim location(0 To 2) As Double ’ Định nghĩa kích thước point1(0) = 5#: point1(1) = 3#: point1(2) = 0# point2(0) = 10#: point2(1) = 3#: point2(2) = 0# location(0) = 7.5: location(1) = 5#: location(2) = 0# ’ Tạo kích thước đo theo cạnh trong không gian mô hình Set dimObj = ThisDrawing.ModelSpace. _ AddDimAligned(point1, point2, location) ’ Thay đổi chuỗi ký tự của kích thước 164 | Chương 5: Kích thước và dung sai dimObj.TextOverride = "The value is " dimObj.Update End Sub 4. Kiểu kích thước Một kiểu kích thước có đặt tên là một nhóm các thiết lập quy định hình thức hiển thị của kích thước. Với các kiểu kích thước có đặt tên, ta có thể thiết lập và áp dụng các tiêu chuẩn phác thảo cho bản vẽ. Tất cả các kích thước đều được tạo ra đều dựa trên kiểu kích thước hiện hành. Nếu không định nghĩa hoặc áp dụng một kiểu nào đó trước khi tạo kích thước, AutoCAD sẽ sử dụng kiểu mặc định là kiểu STANDARD. Để thiết lập kiểu kích thước ... whead2Type Quy định dạng đầu mũi tên của đường kích thước. 166 | Chương 5: Kích thước và dung sai ArrowheadSize Quy định cỡ đầu mũi tên của đường kích thước, đường dẫn và đường móc. CenterMarkSize Quy định cỡ của dấu tâm cho các kích thước dạng tia. CenterType Quy định dạng của dấu tâm cho kích thước dạng tia. DecimalSeparator Quy định ký tự dùng làm dấu cách thập phân trong kích thước thập phân và các giá trị dung sai. DimensionLineColor Quy định màu cho đường kích thước của một kích thước, đối tượng đường dẫn hoặc dung sai. DimensionLineWeight Quy định độ dày của đường kích thước DimLine1Suppress, DimLine2Suppress Quy định sự hiển thị (có/không) của đường kích thước. DimLineInside Quy định chỉ hiển thị đường kích thước trong vòng các đường dóng. ExtensionLineColor Quy định màu của các đường dóng. ExtensionLineExtend Quy định khoảng cách từ đường dóng đến đường kích thước. ExtensionLineOffset Quy định khoảng cách từ đường dóng đến điểm gốc của đường dóng. ExtensionLineWeight Quy định độ dày của đường dóng. ExtLine1EndPoint, ExtLine2EndPoint Xác định điểm cuối của đường dóng. ExtLine1StartPoint, ExtLine2StartPoint Xác định điểm khởi đầu của đường dóng. ExtLine1Suppress, ExtLine2Suppress Quy định hiển thị (có/không) đường dóng. Fit Quy định vị trí của chuỗi ký tự và mũi tên ở trong hay ngoài các đường dóng. ForceLineInside Quy định một đường kích thước có được vẽ giữa các đường dóng hay không ngay cả khi chuỗi ký tự được đặt bên ngoài các đường mở rộng. FractionFormat Quy định định dạng của các giá trị phân số trong kích thước và dung sai HorizontalTextPosition Quy định canh lề ngang cho chuỗi ký tự kích thước Phát triển AutoCAD bằng ActiveX và VBA | 167 LinearScaleFactor Quy định hệ số tỷ lệ toàn cục cho các số đo kích thước dạng đường. PrimaryUnitsPrecision Quy định số chữ số thập phân hiển thị trong đơn vị chính của kích thước hoặc dung sai. SuppressLeadingZeros, SuppressTrailingZeros Quy định làm ẩn các số 0 ở trước hoặc ở sau của các số trong các giá trị kích thước. SuppressZeroFeet, SuppressZeroInches Quy định làm ẩn các số đo 0 foot và 0 inche trong các giá trị kích thước. TextColor Quy định màu của chuỗi ký tự trong đối tượng kích thước và dung sai. TextGap Quy định khoảng cách giữa chuỗi ký tự kích thước và đường kích thước khi ngắt đường kích thước để chèn chuỗi ký tự vào. TextHeight Quy định độ cao của chuỗi ký tự kích thước hoặc dung sai. TextInside Quy định chuỗi ký tự có/không xuất hiện ở trong đường dóng. TextInsideAlign Quy định vị trí của chuỗi kích thước là nằm trong đường dóng cho tất cả các loại kích thước trừ loại theo toạ độ. TextMovement Quy định cách thức vẽ chuỗi ký tự kích thước khi di chuyển chuối ký tự. TextOutsideAlign Quy định vị trí của chuỗi ký tự kích thước bên ngoài đường dóng cho tất cả các loại kích thước trừ loại theo toạ độ. TextPosition Quy định vị trí của chuỗi ký tự kích thước. TextPrecision Quy định độ chính xác của chuỗi ký tự kích thước dạng góc. TextPrefix Quy định tiền tố giá trị kích thước. TextRotation Quy định góc nghiêng của chuỗi ký tự kích thước. TextSuffix Quy định hậu tố giá trị kích thước. ToleranceDisplay Quy định dung sai có hiển thị cùng chuỗi ký tự kích thước hay không. ToleranceHeightScale Quy định hệ số tỷ lệ cho độ của cao chuỗi ký tự dung sai so với độ cao của chuỗi ký tự kích thước. ToleranceJustification Quy định chế độ canh hàng thẳng đứng của các giá trị dung sai so với chuỗi ký tự kích thước. ToleranceLowerLimit Quy định giới hạn dung sai nhỏ nhất cho chuỗi ký tự kích thước. 168 | Chương 5: Kích thước và dung sai TolerancePrecision Quy định độ chính xác của các giá trị dung sai trong giá trị kích thước chính. ToleranceSuppressLeadingZeros Quy định làm ẩn các số 0 ở đầu giá trị dung sai. ToleranceSuppressTrailingZeros Quy định làm ẩn các số 0 ở cuối giá trị dung sai. ToleranceUpperLimit Quy định dung sai lớn nhất cho chuỗi ký tự kích thước. UnitsFormat Quy định định dạng đơn vị cho tất cả các kích thước trừ kích thước dạng góc. VerticalTextPosition Quy định vị trí thẳng đứng của chuỗi ký tự so với đường kích thước. Nhập hậu tố do người dùng định nghĩa vào một kích thước đo theo cạnh Ví dụ dưới đây tạo một kích thước đo theo cạnh trong không gian mô hình và sử dụng thuộc tính TextSuffix để cho phép người dùng thay đổi hậu tố của chuỗi ký tự kích thước. Sub Ch5_AddTextSuffix() Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim location(0 To 2) As Double Dim suffix As String ’ Định nghĩa kích thước point1(0) = 0: point1(1) = 5: point1(2) = 0 point2(0) = 5: point2(1) = 5: point2(2) = 0 location(0) = 5: location(1) = 7: location(2) = 0 ’ Tạo kích thước đo theo cạnh trong không gian mô hình Set dimObj = ThisDrawing.ModelSpace. _ AddDimAligned(point1, point2, location) ThisDrawing.Application.ZoomAll ’ Cho phép người dùng nhập vào hậu tố suffix=InputBox("Enter a new text suffix for the dimension" _ , "Set Dimension Suffix", ":SUFFIX") ’ Áp dụng thay đối cho các kích thước dimObj.TextSuffix = suffix ThisDrawing.Regen acAllViewports End Sub 5. Kích thước trong không gian mô hình và không gian in Ta có thể vẽ kích thước trong cả không gian mô hình và không gian in. Tuy nhiên, nếu đối tượng đồ họa đang định kích thước nằm trong không gian mô hình thì nên Phát triển AutoCAD bằng ActiveX và VBA | 169 vẽ kích thước trong không gian mô hình, bởi vì AutoCAD sẽ đặt các điểm định nghĩa trong không gian mà đối tượng đồ hoạ được vẽ. Nếu một đường kích thước vẽ trong không gian in mô tả đối tượng đồ họa trong không gian mô hình thì đường kích thước trong không gian in sẽ không thay đổi mỗi khi hiệu chỉnh hoặc thay đổi độ phóng đại của khung nhìn trong không gian in. Vị trí của đường kích thước trong không gian in luôn giữ nguyên khi thay đổi từ không gian in sang không gian mô hình. Nếu vẽ kích thước trong không gian in và hệ số tỷ lệ chung của kích thước dạng đường (biến hệ thống DIMLFAC) là nhỏ hơn 0 thì khoảng cách đo được sẽ được nhân lên với giá trị tuyệt đối của DIMLFAC. Nếu vẽ kích thước trong không gian mô hình, giá trị 1.0 được sử dụng ngay cả khi DIMLFAC nhỏ hơn 0. AutoCAD tính toán giá trị của DIMLFAC nếu ta thay đổi biến số ở dòng lệnh Dim và chọn tùy chọn Viewport. AutoCAD tính tỷ lệ của không gian mô hình với không gian in và gán dấu âm của giá trị này cho DIMLFAC. 6. Tạo đường dẫn và chú thích Một đường dẫn là một đường nối từ chú thích đến một đối tượng trong bản vẽ. Đường dẫn và chú thích luôn liên kết với nhau, nghĩa là nếu chỉnh sửa chú thích thì đường dẫn cũng sẽ thay đổi theo. Không nên nhầm lẫn giữa đối tượng đường dẫn với đường dẫn AutoCAD tự động tạo ra trong một đường kích thước. 6.1. Tạo đường dẫn Ta có thể tạo một đường dẫn từ bất cứ điểm nào hoặc đối tượng nào trong bản vẽ và điều khiển sự hiển thị trong khi vẽ. Đường dẫn có thể là đoạn thẳng hoặc các đường cong Spline. Màu của các đường dẫn được lấy theo màu của đường kích thước hiện hành. Tỷ lệ các đường dẫn cũng được điều khiển thông qua hệ số tỷ lệ chung được thiết lập trong kiểu kích thước hiện hành. Loại và cỡ của đầu mũi tên, nếu có, được lấy giống như mũi tên thứ nhất định nghĩa trong kiểu kích thước hiện hành. Một đoạn thẳng nhỏ gọi là đường móc thường nối chú thích với đường dẫn. Đường móc xuất hiện với đối tượng Mtext và khung điều chỉnh nếu đoạn đường dẫn cuối cùng ở một góc lớn hơn 15 độ so với phương ngang. Nếu đường dẫn không có chú thích sẽ không có đường móc. đường móc đường dẫn Phương thức AddLeader dùng để tạo mới một đường dẫn. Phương thức này cần phải nhập ba giá trị: mảng toạ độ để đặt đường dẫn, chú thích (hoặc NULL nếu đường dẫn không có chú thích) và loại đường dẫn muốn tạo. Loại đường dẫn quy định đường dẫn là đường thẳng hay đường cong Spline và quyết định đường dẫn có mũi tên hay không. Sử dụng một trong những hằng số sau đây để xác định loại của đường dẫn: acLineNoArrow, acLineWithArrow, acSplineNoArrow, hoặc acSplineWithArrow. Các hằng số này độc lập với nhau. 170 | Chương 5: Kích thước và dung sai Tạo mới đường dẫn Ví dụ sau đây tạo một đường dẫn trong không gian mô hình. Không có chú thích gắn với đường dẫn. Sub Ch5_CreateLeader() Dim leaderObj As AcadLeader Dim points(0 To 8) As Double Dim leaderType As Integer Dim annotationObject As AcadObject points(0) = 0: points(1) = 0: points(2) = 0 points(3) = 4: points(4) = 4: points(5) = 0 points(6) = 4: points(7) = 5: points(8) = 0 leaderType = acLineWithArrow Set annotationObject = Nothing ’ Tạo đường dẫn trong không gian mô hình Set leaderObj = ThisDrawing.ModelSpace. _ AddLeader(points, annotationObject, leaderType) ZoomAll End Sub 6.2. Thêm chú thích vào đường dẫn Chú thích của đường dẫn có thể là đối tượng Tolerance, Mtext hoặc BlockRef. Ta có thể tạo một chú thích mới, hoặc thêm vào một chú thích có sẵn. Chú thích được thêm vào đường dẫn chỉ khi nào nó được tạo ra. Để thêm một chú thích khi tạo đường dẫn, nhập chú thích trong phương thức AddLeader. 6.3. Liên kết của đường dẫn Đường dẫn được liên kết với chú thích để khi chú thích di chuyển, điểm cuối của đường dẫn cũng di chuyển theo. Khi di chuyển chuỗi ký tự và khung điều chỉnh đối tượng chú thích, đoạn đường dẫn cuối cùng hoặc sẽ gắn vào phía bên trái hoặc bên phải của chú thích tuỳ theo vị trí của chú thích đó so với điểm áp chót của đường dẫn. Nếu điểm giữa của chú thích ở bên trái điểm áp chót của đường dẫn, đường dẫn sẽ gắn vào bên phải, và với tất cả các trường hợp khác, đường dẫn sẽ được gắn vào bên trái chú thích. Bỏ đi một trong hai đối tượng (chú thích và đường dẫn) khỏi bản vẽ bằng một trong các phương thức Erase, Add (để thêm vào một block) hoặc Wblock sẽ làm phá vỡ liên kết. Nếu đường dẫn và chú thích của nó được sao chép cùng nhau, bản sao chép mới vẫn có liên kết. Nếu được sao chép riêng lẻ thì sẽ không còn liên kết. Nếu sự liên kết bị phá vỡ vì một lý do nào đó, chẳng hạn như do chỉ sao chép đối tượng đường dẫn hoặc do xoá chú thích, đường móc bị xóa đi. Liên kết đường dẫn với chú thích Ví dụ sau đây tạo đối tượng Mtext. Sau đó tạo một đường dẫn và tạo liên kết với chuỗi ký tự vừa tạo để làm chú thích. Sub Ch5_AddAnnotation() Dim leaderObj As AcadLeader Dim mtextObj As AcadMText Dim points(0 To 8) As Double Dim insertionPoint(0 To 2) As Double Phát triển AutoCAD bằng ActiveX và VBA | 171 Dim width As Double Dim leaderType As Integer Dim annotationObject As Object Dim textString As String, msg As String ’ Tạo đối tượng Mtext trong không gian mô hình textString = "Hello, World." insertionPoint(0) = 5 insertionPoint(1) = 5 insertionPoint(2) = 0 width = 2 Set mtextObj = ThisDrawing.ModelSpace. _ AddMText(insertionPoint, width, textString) ’ Thông số của đường dẫn points(0) = 0: points(1) = 0: points(2) = 0 points(3) = 4: points(4) = 4: points(5) = 0 points(6) = 4: points(7) = 5: points(8) = 0 leaderType = acLineWithArrow ’ Tạo đối tượng đường dẫn trong không gian mô hình và ’ liên kết với đối tượng Mtext làm chú thích Set annotationObject = mtextObj Set leaderObj = ThisDrawing.ModelSpace. _ AddLeader(points, annotationObject, leaderType) ZoomAll End Sub 6.4. Hiệu chỉnh liên kết của đường dẫn Trừ liên kết giữa đường dẫn và chú thích, đường dẫn và chú thích của nó là hai đối tượng hoàn toàn tách biệt trong bản vẽ. Chỉnh sửa đường dẫn sẽ không làm ảnh hưởng đến chú thích và ngược lại. Dù được tạo ra dựa trên các biến hệ thống DIMCLRT, DIMTXT, và DIMTXSTY (để xác định màu, chiều cao và kiểu) nhưng chuỗi ký tự chú thích không bị thay đổi bởi các biến số này bởi vì thực chất nó không phải là đối tượng kích thước. Sử dụng phương thức Evaluate để định mối quan hệ giữa đường dẫn và chú thích liên kết với nó. Lệnh này sẽ cập nhật lại đường dẫn khi cần. 6.5. Hiệu chỉnh đường dẫn Bất cứ điều chỉnh nào làm thay đổi vị trí chú thích của đường dẫn đều ảnh hưởng đến vị trí điểm cuối của đường dẫn có liên kết. Tương tự, khi xoay chú thích sẽ khiến đường móc của đường dẫn (nếu có) xoay theo. Để thay đổi kích cỡ của đường dẫn, ta có thể đặt lại tỷ lệ cho nó. Việc đặt tỷ lệ chỉ thay đổi tỷ lệ của đối tượng được chọn. Chẳng hạn, nếu bạn đặt tỷ lệ đường dẫn, vị trí chú thích sẽ thay đổi theo điểm cuối của đường dẫn nhưng không bị biến đổi tỷ lệ. Ngoài việc thay đổi tỷ lệ, ta cũng có thể di chuyển, lấy đối xứng và xoay đường dẫn. Ta cũng có thể thay đổi kiểu chữ liên kết với chú thích bằng cách sử dụng thuộc tính StyleName. 172 | Chương 5: Kích thước và dung sai 7. Tạo dung sai hình học Dung sai hình học thể hiện độ lệch của hình dạng, mặt cắt, hướng, vị trí của một chi tiết. Ta thêm dung sai hình học vào khung điều chỉnh đối tượng. Khung này chứa tất cả các thông tin về dung sai cho một đường kích thước. Để tạo dung sai hình học, ta sử dụng phương thức AddTolerance. Phương thức này cần phải nhập ba giá trị: chuỗi ký tự gồm các biểu tượng dung sai, vị trí đặt dung sai trên bản vẽ và một vectơ chỉ phương xác định chiều của dung sai. Đối tượng dung sai cũng có thể được sao chép, di chuyển, xoá, thay đổi tỷ lệ và xoay. Khung điều chỉnh đối tượng bao gồm ít nhất hai phần. Phần đầu chứa các ký tự thể hiện loại dung sai được áp dụng, chẳng hạn như hình dạng, hướng hoặc biên. Sai số hình dạng điều chỉnh độ thẳng, độ phẳng, độ tròn, dạng trụ và mặt cắt của đường và mặt phẳng. thứ nhất, hai và ba Ký tự tham chiếu chuẩn Giá trị dung sai Ký hiệu đặc tính hình học – trong trường hợp này là độ thẳng Ký hiệu đường kính (lựa chọn) Điều kiện vật liệu chuẩn Thành phần thứ hai chứa các giá trị dung sai. Khi được áp dụng, phía trước giá trị dung sai là biểu tượng đường kính và theo sau là biểu tượng điều kiện vật liệu. Tạo dung sai hình học Ví dụ sau đây tạo một dung sai hình học đơn giản trong không gian mô hình. Sub Ch5_CreateTolerance() Dim toleranceObj As AcadTolerance Dim textString As String Dim insertionPoint(0 To 2) As Double Dim direction(0 To 2) As Double ’ Định nghĩa đối tượng dung sai textString = "Here is the Feature Control Frame" insertionPoint(0) = 5 insertionPoint(1) = 5 insertionPoint(2) = 0 direction(0) = 1 direction(1) = 1 direction(2) = 0 ’ Tạo đối tượng dung sai trong không gian mô hình Set toleranceObj = ThisDrawing.ModelSpace. _ AddTolerance(textString, insertionPoint, direction) ZoomAll End Sub Phát triển AutoCAD bằng ActiveX và VBA | 173 7.1. Hiệu chỉnh dung sai Dung sai chịu ảnh hưởng bởi một vài biến hệ thống: DIMCLRD điều khiển màu của khung điều chỉnh đối tượng; DIMCLRT điều khiển màu của chuỗi ký tự dung sai, DIMGAP điều khiển khoảng trống giữa khung điều chỉnh đối tượng và chuỗi ký tự; DIMTXT điều chỉnh cỡ của ký tự dung sai. Sử dụng phương thức SetVariable để gán giá trị của biến hệ thống.
File đính kèm:
- giao_trinh_phat_trien_autocad_bang_activex_vba_chuong_5_kich.pdf