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

Mấy anh giải thích dùm em lỗi này

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

Thân chào anh em CADVIET.COM

Em đang tập tìm hiểu VBA cho AUTOCAD, trong quá trình tiếp xúc gặp lỗi của đoạn code này em chưa rõ nguyên nhân( Ở ngay chỗ in đậm màu đỏ)

Mong anh em giúp đỡ, em cám ơn

 

 

Sub Ch3_CalculateDefinedArea()

Dim p1 As Variant

Dim p2 As Variant

Dim p3 As Variant

Dim p4 As Variant

Dim p5 As Variant

 

’ Nhập vào các điểm

p1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "First point: ")

p2 = ThisDrawing.Utility.GetPoint(p1, vbCrLf & "Second point: ")

p3 = ThisDrawing.Utility.GetPoint(p2, vbCrLf & "Third point: ")

p4 = ThisDrawing.Utility.GetPoint(p3, vbCrLf & "Fourth point: ")

p5 = ThisDrawing.Utility.GetPoint(p4, vbCrLf & "Fifth point: ")

 

’ Tạo đường đa tuyến 2D từ các điểm vừa nhập

Dim polyObj As AcadLWPolyline

Dim vertices(0 To 9) As Double

vertices(0) = p1(0): vertices(1) = p1(1)

vertices(2) = p2(0): vertices(3) = p2(1)

vertices(4) = p3(0): vertices(5) = p3(1)

vertices(6) = p4(0): vertices(7) = p4(1)

vertices(8) = p5(0): vertices(9) = p5(1)

Set polyObj = ThisDrawing.ModelSpace.AddLightWeightPolyline _

(vertices)

polyObj.Closed = True

ThisDrawing.Application.ZoomAll

 

’ Tính diện tích đường đa tuyến

MsgBox "The area defined the by points is " & _

polyObj.Area, , "Calculate Defined Area"

End Sub

 

 

Đây là em đang xem quyển dịch VBADEV và trích đoạn code từ sách này ra

Thân chào anh em CADVIET.COM

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

Nếu trong Code bạn nhập nguyên như vậy thì chắc chỉ lỗi ở ... dòng ghi chú của bạn thôi ^^ Mình k thấy bị lỗi gì với 1 cấu trúc rõ như 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

Chưa Hide From là sao bạn?

Có thể nói rõ dùm mình được không?

Tức là bạn phải ẩn cái Form đi thì mới click trên Cad để lấy tọa độ được chứ , sau khi lấy xong thì bạn lại Show nó lên

Đối với các hàm ThisDrawing.Utility.GetPoint ,ThisDrawing.Utility.GetAngle,ThisDrawing.Utility.GetEntity....Thì bạn phải Hide cái form đi , thì mới thao tác với Cad được

 

Cụ thể với cái Sub bạn đưa ở trên , mình copy về và chạy ngon không vấn đề gì

 

Bạn thử đặt đoạn Code sau vào sự kiện Click của Button :

Private Sub CommandButton1_Click()
Me.Hide
Ch3_CalculateDefinedArea
Me.Show
End Sub

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

Đoạn code trên mình nhập báo lỗi ngay dòng đỏ mà không biết tại sao!!

Đọc kỹ bài trả lời của Ketxu nhé.

Sub Ch3_CalculateDefinedArea()
Dim p1 As Variant
Dim p2 As Variant
Dim p3 As Variant
Dim p4 As Variant
Dim p5 As Variant

p1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "First point: ")
p2 = ThisDrawing.Utility.GetPoint(p1, vbCrLf & "Second point: ")
p3 = ThisDrawing.Utility.GetPoint(p2, vbCrLf & "Third point: ")
p4 = ThisDrawing.Utility.GetPoint(p3, vbCrLf & "Fourth point: ")
p5 = ThisDrawing.Utility.GetPoint(p4, vbCrLf & "Fifth point: ")

Dim polyObj As AcadLWPolyline
Dim vertices(0 To 9) As Double
vertices(0) = p1(0): vertices(1) = p1(1)
vertices(2) = p2(0): vertices(3) = p2(1)
vertices(4) = p3(0): vertices(5) = p3(1)
vertices(6) = p4(0): vertices(7) = p4(1)
vertices(8) = p5(0): vertices(9) = p5(1)
Set polyObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(vertices)
polyObj.Closed = True
ThisDrawing.Application.ZoomAll

MsgBox "The area defined the by points is " & polyObj.Area, , "Calculate Defined Area"
End Sub

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  

×