Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
foreverand1

Lỗi bắt tiếp tuyến khi AddSpline với VBA

Các bài được khuyến nghị

Mình mới tìm hiểu VBA và đang làm vài bài tập nho nhỏ. Khi add spline mình không thể bắt chuẩn được tiếp tuyến 2 đầu Spline dù đã xem rất kĩ cú pháp và ví dụ, mong các bạn giúp đỡ

Sub AddSpline()
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
startTan(0) = 0: startTan(1) = 0: startTan(2) = 0
endTan(0) = 105: endTan(1) = -5: endTan(2) = 0
fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
fitPoints(3) = 50: fitPoints(4) = 50: fitPoints(5) = 0
fitPoints(6) = 100: fitPoints(7) = 0: fitPoints(8) = 0
Set splineObj = ThisDrawing.ModelSpace. _
AddSpline(fitPoints, startTan, endTan)
splineObj.Update
' Ve Line noi hai diem bat tiep tuyen de kiem tra
Dim TT1 As AcadLine
Set TT1 = ThisDrawing.ModelSpace.AddLine(startTan, endTan)
ZoomAll
End Sub

Mình dùng Cad 2007

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình mới tìm hiểu VBA và đang làm vài bài tập nho nhỏ. Khi add spline mình không thể bắt chuẩn được tiếp tuyến 2 đầu Spline dù đã xem rất kĩ cú pháp và ví dụ, mong các bạn giúp đỡ

Mình dùng Cad 2007

Tôi là người ngoại đạo với VBA. Tuy nhiên, vì VBA đang làm việc trên Cad, nên chỉ nói về nguyên lý của Cad:

Spline là một đối tượng mà khi bạn vẽ tới điểm thứ n thì các điểm trước đó chưa hoàn toàn được xác định. Để ý sẽ thấy: khi di chuyển mouse thì các điểm trên spline thay đổi liên tục. Vì vậy, việc bắt điểm lên chính spline khi nó đang được vẽ sẽ không có ý nghĩa (biết điểm nào mà bắt?).

Tuy nhiên, ta có thể dùng mẹo, VD: vẽ một line có đầu mút trùng với điểm đầu của spline. Khi đó bạn có thể bắt điểm "end" vào mút line, cũng chính là mút của spline vậy.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thanks Doan Van Ha đã chỉ bảo nhưng hai điểm mình bắt tiếp tuyến đã được xác định tọa độ rõ ràng không dính dáng gì đến spline đang vẽ bạn à

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bro vào giúp với, tớ làm việc với spline rất nhiều mà ko bắt được tiếp tuyến thì nghỉ tìm hiều VBA à hic :(

Thấy bạn hỏi cũng lâu, 4rum cũng rất nhiều người viết VBA, nhưng sao không thấy ai trả lời?

Hỏi bạn thêm một câu "vô duyên" nữa, biết đâu tìm ra được nguyên nhân:

Bạn có thể diễn giải toàn bộ code trên bằng lời không? Tôi đọc, hiểu mang máng, thấy có vấn đề nên mới hỏi vây.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn chủ topic dường như nhầm lẫn giữa điểm đầu - cuối 1 spline (đã có trong array fitpoint) với vecto tiếp tuyến tại 2 điểm đầu - cuối ^^

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×