Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
6 replies to this topic

#1 lastdayvn

lastdayvn

    Chưa sử dụng CAD

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

Đã gửi 24 December 2012 - 08:42 AM

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

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 24 December 2012 - 06:25 PM

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

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


#3 garupro

garupro

    biết vẽ circle

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

Đã gửi 29 December 2012 - 08:00 PM

Hay là chưa Hide form
  • 0

#4 lastdayvn

lastdayvn

    Chưa sử dụng CAD

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

Đã gửi 30 December 2012 - 06:46 PM

Chưa Hide From là sao bạn?
Có thể nói rõ dùm mình được không?
  • 0

#5 lastdayvn

lastdayvn

    Chưa sử dụng CAD

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

Đã gửi 30 December 2012 - 06:46 PM

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

#6 garupro

garupro

    biết vẽ circle

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

Đã gửi 30 December 2012 - 08:39 PM

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

  • 0

#7 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 30 December 2012 - 08:45 PM

Đ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

  • 0