Hiệu chỉnh đường cong Splines

Một phần của tài liệu Phát triển AutoCAD bằng ActiveX & VBA - Chương 4 pot (Trang 31 - 33)

1 Fit polyline: làm ột đường cong trơn bao gồm các cung tròn nối các cặp đỉnh đường Fit polyline Các đường cong này sẽđi qua tất cả các đỉnh của đường đa tuyến và sử dụng một hướng tiếp tuyến

2.11.Hiệu chỉnh đường cong Splines

Ta có thể xoá hay thêm các điểm chuẩn để tăng độ

điểm chuẩn để thay đổi hình dáng đường cong Spline. Ta cũng có thể mở hay khép kín đường cong Spline, hiệu chỉnh tiếp tuyến đầu và cuối, đổi chiều đường cong Spline. Ngoài ra ta cũng có thể thay đổi dung sai của đường cong Spline. Dung sai thể hiện mức độ lệch của đường cong Spline so với tập hợp các điểm chuẩn mà ta

đã ấn định. Dung sai càng thấp thì đường cong Spline càng gần với các điểm chuẩn. Ta có thể tinh chỉnh một đường cong Spline bằng cách tăng sốđiểm điều khiển trên một đoạn hoặc thay đổi trọng số của các điểm điều khiển cụ thể. Gia tăng trọng số

của một điểm điều khiển sẽ kéo đường cong về gần điểm đó hơn. Chúng ta cũng có thể tinh chỉnh một đường cong Spline bằng cách thay đổi bậc của nó. Bậc của một

đường cong Spline chính bằng bậc của đa thức Spline cộng thêm 1. Chẳng hạn, một

đường cong Spline bậc 3 sẽ có bậc là 4. Một đường cong Spline có bậc càng cao thì càng có nhiều điểm điều khiển.

Xem ví dụ sau:

Ví dụ tạo một đường cong Spline biểu diễn đường đồng mức. Ta cần phải dịch chuyển điểm điều khiển thứ tư nhằm tăng độ chính xác. Sử dụng phương thức SetFitPoint để nhập toạđộ mới cho điểm chuẩn thứ tư.

Điểm chuẩn thứ tư

Vị trí ban đầu

Điểm chuẩn thứ tư

Vị trí mới

Kết quả Sử dụng các thuộc tính sau để thay đổi đường cong Spline:

Closed Mở hoặc khép kín đường cong Spline

ControlPoints Xác định các điểm điều khiển của một đường cong Spline

EndTangent Xác định tiếp tuyến cuối của đường cong Spline

FitPoints Xác định tất cả các điểm chuẩn của một đường cong Spline

FitTolerance Điều chỉnh đường cong Spline cho phù hợp với các điểm hiện có với giá trị dung sai mới

Knots Xác định vectơ nút cho đường cong Spline

StartTangent Xác định tiếp tuyến đầu cho đường cong Spline

Ngoài ra, ta còn có thể sử dụng các phương thức sau để hiệu chỉnh đường cong Spline:

AddFitPoint Thêm một điểm chuẩn vào đường cong Spline ở một vị trí cho trước

DeleteFitPoint Xoá điểm chuẩn của một đường cong Spline

ElevateOrder Nâng bậc của đường cong Spline

GetFitPoint Lấy lại điểm chuẩn của đường cong Spline tại chỉ số cho trước (chỉ

lấy một điểm duy nhất. Để tìm tất cả các điểm chuẩn ta dùng thuộc tính FitPoints)

Reverse Đổi chiều của một đường cong Spline

SetControlPoint Thiết lập điểm điều khiển của một đường cong Spline tại chỉ số

cho trước.

SetFitPoint Thiết lập điểm chuẩn cho đường cong Spline tại chỉ số cho trước (chỉ thiết lập một điểm chuẩn, để thay đổi tất cả các điểm chuẩn của đường cong Spline, ta sử dụng thuộc tính FitPoints)

SetWeight Lập trọng số cho điểm điều khiển tại chỉ số cho trước Sử dụng các thuộc tính chỉđọc sau để truy vấn đường cong Spline: (adsbygoogle = window.adsbygoogle || []).push({});

Degree Tìm bậc đa thức của đường cong Spline

Area Diện tíchvùng bao quanh bởi đường cong Spline

IsPeriodic Xác định xem đường Spline có tuần hoàn hay không

IsRational Xác định xem đường Spline có hữu tỷ hay không

NumberOfControlPoints

Sốđiểm điều khiển của đường cong Spline

NumberOfFitPoints

Sốđiểm chuẩn của đường cong Spline

Thay đổi điểm điều khiển của đường cong Spline

Ví dụ sau tạo một đường cong Spline và thay đổi điểm điều khiển đầu tiên của

đường cong Spline.

Sub Ch4_ChangeSplineControlPoint() ’ Tạo đường cong spline Dim splineObj As AcadSpline Dim noOfPoints As Integer Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim fitPoints(0 To 8) As Double noOfPoints = 3

startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0 endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0

fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0 fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0 fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0 Set splineObj = ThisDrawing.ModelSpace. _

AddSpline(fitPoints, startTan, endTan) splineObj.Update

’ Thay đổi tọa độ của điểm điều khiển đầu tiên Dim controlPoint(0 To 2) As Double

controlPoint(0) = 0 controlPoint(1) = 3 controlPoint(2) = 0 splineObj.SetControlPoint 0, controlPoint splineObj.Update End Sub 2.12. Hiu chnh vùng tô mu

Ta có thể hiệu chỉnh cả đường biên và mẫu tô của vùng tô mẫu. Nếu hiệu chỉnh

đường biên của vùng tô mẫu có liên kết, mẫu tô sẽ được cập nhật tương ứng, miễn là đường biên vẫn phù hợp. Các vùng tô mẫu có liên kết cũng được cập nhật cho dù chúng nằm trong lớp đã bị tắt. Chúng ta có thể hiệu chỉnh mẫu tô hoặc chọn mẫu tô mới cho vùng tô mẫu hiện có, tuy nhiên thuộc tính liên kết chỉđược gán khi tạo đối tượng vùng tô mẫu. Ta có thể kiểm tra xem liệu một vùng tô mẫu có liên kết không bằng cách sử dụng thuộc tính AssociativeHatch. (Xem thêm phương thức AddHatch

để biết cách tạo ra một vùng tô mẫu)

Cần phải tính toán lại vùng tô mẫu bằng cách sử dụng phương thức Evaluate để

thấy được những thay đổi trên vùng tô mẫu.

Một phần của tài liệu Phát triển AutoCAD bằng ActiveX & VBA - Chương 4 pot (Trang 31 - 33)