Chuyển đến nội dung
Diễn đàn CADViet

LoVe_ActiveX_VBNET

Thành viên
  • Số lượng nội dung

    2
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi LoVe_ActiveX_VBNET


  1. Vào lúc 9/3/2015 tại 21:34, hotrung đã nói:

     Các bác chỉ với em với, trong đoạn code dưới đây của bác anhcos là select các đối tượng trên màn hình, nhưng em chỉ muốn select các đối tượng là Line hoặc Polyline thôi  thì phải làm thế nào ạ? Và sau khi select xong, em muốn lấy các thông số Startpoint, Endpoint, vector pháp tuyến của từng Line thì phải làm thế nào ạ? Cái này em mới tìm hiểu mà tìm mãi chẳng thấy chỗ nào các bác nói đến cả, mong các bác giúp đỡ.

     

     Private Sub cmdSelectObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSelectObject.Click

     

            If ACADLink() Then

                Try

                    Dim dwg As Object = Acad.ActiveDocument

     

                    Try

                        SelSet = dwg.SelectionSets.Add("anhcos")

                    Catch

                        SelSet = dwg.SelectionSets.Item("anhcos")

                    End Try

                    SelSet.Clear()

     

                    AppActivate(Acad.Caption)

     

                    SelSet.SelectOnScreen()

     

                    ObjIndex = 0

                    Vịtríđốitượngtrongtậpchọn()

     

                    AppActivate(Me.Text)

                    pgObject.SelectedObject = SelSet.Item(ObjIndex)

     

     

                Catch

                    ObjIndex = -1

                End Try

            End If

        End Sub

    Mình hướng dẫn bạn một chút về cách lấy thông tin của 1 đối tượng hình học trong cad nhé. Các đối tượng khác thì bạn tự suy nghĩ thêm, cũng tương tự thôi.

    Sau khi bạn dùng phương thức selectionOnscreen. Bạn dùng vòng lặp để xét đến đối tượng cần lấy thông tin:

    For each object_cad in Object_Select

    if Object_cad.ObjectName = "AcdbLine" then ' Lấy thông số đối tượng Line

    Dim ToadoDau( 0 to 2) as double

    Dim Toadocuoi( 0 to 2) as double

    Dim Layer_line as layer

    toadodau(0) =Object_cad.startPoint.Coordinates(0)

    toadodau(1) =Object_cad.startPoint.Coordinates(1)

    toadocuoi(0) =Object_cad.EndPoint.Coordinates(0)

    toadocuoi(1) =Object_cad.EndPoint.Coordinates(1)

    Layer_line= Object_cad.layer

    end if

    Next

×