Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
huunhantvxdts

làm sao để lấy toạ độ của đối tượng ofset line

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

giúp toi với làm sao để lấy toạ độ của đối tượng ofset line (endpoint và startpoin)

chuong trinh cua toi nhu sau

 

Option Explicit

Sub veline()

Dim line As AcadLine

Dim diemdau As Variant

Dim diemcuoi As Variant

diemdau = ThisDrawing.Utility.GetPoint(, "nhap vao diem dau")

diemcuoi = ThisDrawing.Utility.GetPoint(diemdau, "Nhap diem tiep theo")

Set line = ThisDrawing.ModelSpace.AddLine(diemdau, diemcuoi)

line.Update

Dim line1 As Variant

line1 = line.Offset(1)

line1(0).color = 3

MsgBox (line1(0).EndPoint(0))

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
ks_chang    2

Bạn có thể lấy giá trị góc của Line do bạn tạo ra:

tan = (pt1(1) - pt2(1)) / (pt1(0) - pt2(0))

Sau đó cộng(hoặc trừ) tọa độ pt3, pt4 (là 2 điểm offset) với giá trị:

a*Cos(Atn(tan)), a*Sin(Atn(tan))

  • 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
phantuhuong    204
giúp toi với làm sao để lấy toạ độ của đối tượng ofset line (endpoint và startpoin)

chuong trinh cua toi nhu sau

 

Option Explicit

Sub veline()

Dim line As AcadLine

Dim diemdau As Variant

Dim diemcuoi As Variant

diemdau = ThisDrawing.Utility.GetPoint(, "nhap vao diem dau")

diemcuoi = ThisDrawing.Utility.GetPoint(diemdau, "Nhap diem tiep theo")

Set line = ThisDrawing.ModelSpace.AddLine(diemdau, diemcuoi)

line.Update

Dim line1 As Variant

line1 = line.Offset(1)

line1(0).color = 3

MsgBox (line1(0).EndPoint(0))

End Sub

 

Bài viết này vi phạm nội quy nhưng là thành viên mới nên tạm bỏ qua. Bạn tham khảo code sau nhé:

 

Sub Example_Offset()
Dim lineObj As AcadLine
Dim line1Obj As Variant
Dim line2Obj As AcadLine

Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double

' Create a new line reference
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 2: endPoint(1) = 2: endPoint(2) = 0
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
line1Obj = lineObj.Offset(1)

Set line2Obj = ThisDrawing.ModelSpace.AddLine(lineObj.startPoint, line1Obj(0).endPoint)

Set line2Obj = Nothing
Set lineObj = Nothing
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
Bài viết này vi phạm nội quy nhưng là thành viên mới nên tạm bỏ qua. Bạn tham khảo code sau nhé:

 

Sub Example_Offset()
Dim lineObj As AcadLine
Dim line1Obj As Variant
Dim line2Obj As AcadLine

Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double

' Create a new line reference
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 2: endPoint(1) = 2: endPoint(2) = 0
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
line1Obj = lineObj.Offset(1)

Set line2Obj = ThisDrawing.ModelSpace.AddLine(lineObj.startPoint, line1Obj(0).endPoint)

Set line2Obj = Nothing
Set lineObj = Nothing
End Sub

 

cám ơn bác đã chỉ dùm để em sữa lại code xem sao

Bác có code nào hay share cho em với

 

:(

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
gia_bach    1.442
giúp toi với làm sao để lấy toạ độ của đối tượng ofset line (endpoint và startpoin)

chuong trinh cua toi nhu sau

.......

Bạn thử đoạn code sau :

Sub Offset_Line()
   Dim line As AcadLine
   Dim staPt As Variant
   Dim endPt As Variant
   staPt = ThisDrawing.Utility.GetPoint(, "Nhap vao diem dau")
   endPt = ThisDrawing.Utility.GetPoint(staPt, "Nhap diem tiep theo")
   Set line = ThisDrawing.ModelSpace.AddLine(staPt, endPt)
   line.Update

   Dim line_Off As Variant
   Dim dis As Double
   dis = line.Length / 5
   line_Off = line.Offset(dis)
   line_Off(0).color = 3

   Dim staPt_Off As Variant
   Dim endPt_Off As Variant
   staPt_Off = line_Off(0).startPoint
   endPt_Off = line_Off(0).endPoint

   MsgBox "Toa do cac diem cua Line goc : " & Chr(13) + Chr(10) & _
          " - diem dau  (X,Y,Z): " & staPt(0) & "; " & staPt(1) & "; " & staPt(2) & Chr(13) + Chr(10) & _
          " - diem cuoi (X,Y,Z): " & endPt(0) & "; " & endPt(1) & "; " & endPt(2) & Chr(13) + Chr(10) + Chr(10) & _
          "Toa do cac diem cua Line OFFSET : " & Chr(13) + Chr(10) & _
          " - diem dau  (X,Y,Z): " & staPt_Off(0) & "; " & staPt_Off(1) & "; " & staPt_Off(2) & Chr(13) + Chr(10) & _
          " - diem cuoi (X,Y,Z): " & endPt_Off(0) & "; " & endPt_Off(1) & "; " & endPt_Off(2)
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  

×