Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 foreverand1

foreverand1

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 13 March 2012 - 07:32 PM

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
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 March 2012 - 07:52 PM

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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 foreverand1

foreverand1

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 13 March 2012 - 08:18 PM

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 à
  • 0

#4 foreverand1

foreverand1

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 17 March 2012 - 05:37 PM

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 :(
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 17 March 2012 - 06:25 PM

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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 March 2012 - 10:08 PM

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 ^^
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC