Selectall, nuovi oggetti creati

mariano.boi

Utente poco attivo
Professione: geometra
Software: autocad
Regione: sardegna
#1
Salve a tutti,
ho scritto del codice per trasformare un cerchio in polilinea,
per fare questo, con il comando ThisDrawing.SendCommand "DIVIDE", ho creato dei punti selezionando cerchio.
Fino a qui tutto a posto, ma quando devo selezionare i punti per creare la polilinea, non vengono selezionati.
Posto qui di seguito il codice:

Codice:
Private Function circle_point() As AcadSelectionSet
        Dim SetdivSS As AcadSelectionSet

        On Error Resume Next
        If Not IsDBNull(ThisDrawing.SelectionSets.Item("DivideSS")) Then
            SetdivSS = ThisDrawing.SelectionSets.Item("DivideSS")
            SetdivSS.Delete()
        End If

        SetdivSS = ThisDrawing.SelectionSets.Add("DivideSS")

        SetdivSS.SelectOnScreen() 


        For Each Ojarc In SetdivSS
            Ojarc.color = ACAD_COLOR.acYellow
        Next
        Return SetdivSS
    End Function

    Private Sub divide_circle(ByVal Ojarc As AcadEntity)
        Dim div As Integer
        Dim CommandStr As String
        
         div = ThisDrawing.Utility.GetInteger("Numero dividenti: ")

         CommandStr = "_DIVIDE (handent """ + Ojarc.Handle + """" + ")" & vbCr & div & vbCr


        If NoOfPeaces = 1 Or NoOfPeaces = 0 Then
        Else
                      ThisDrawing.SendCommand(CommandStr)
        End If


    End Sub

    <Autodesk.AutoCAD.Runtime.CommandMethod("arcdiv")> _
     Public Sub divcirc()
        Dim newSSet As AcadSelectionSet
        Dim SetdivSS As AcadSelectionSet
        Dim filtype(0) As Short
        Dim fildata(0) As Object

        SetdivSS = circle_point()

        divide_circle(SetdivSS.Item(0))

         On Error Resume Next
            If Not IsDBNull(ThisDrawing.SelectionSets.Item("newSelSet")) Then
                newSSet = ThisDrawing.SelectionSets.Item("newSelSet")
                newSSet.Delete()
            End If

           

            newSSet = ThisDrawing.SelectionSets.Add("newSelSet")

            newSSet.Select(AcSelect.acSelectionSetAll,,,filtype,fildata)

            MsgBox(newSSet.Count)

    End Sub

    Dim CommandStr As String
Vi chiedo se è possibile trovare qualche altra soluzione.
Naturalmente il comando sarà condiviso a tutto il forum.

Vi ringrazio anticipatamente.

Mariano

PS: sto usando Autocad 2012
 

Tristan

Utente Senior
Professione: Application Engineer
Software: AutoCAD Civil 3D, Revit e altre amenità
Regione: Trentino
#2
Scusa Mariano, non so aiutarti ma mi chiedo...a che serve questo comando? Si ottiene una cosa simile con tools nativi di AutoCAD in meno di 5 secondi...