Translate

segunda-feira, 29 de agosto de 2011

VB.net - Erase

Hoje apresento a programação para o comando de erase por selecção.


Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime

Public Class Class1

    <CommandMethod("erasepoly")> _
    Public Sub erasepolilinha()

        'para ter acesso ao editor do AutoCAD
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor

        'para ter acesso banco de dados do desenho aberto no AutoCAD
        Dim db As Database = Application.DocumentManager.MdiActiveDocument.Database

        Dim mydwg As Document = Application.DocumentManager.MdiActiveDocument

        'Iniciar a transacção
        Using trans As Transaction = db.TransactionManager.StartTransaction

            'Pedido de objetos a serem selecionados na área de desenh
            Dim objetos As PromptSelectionResult = mydwg.Editor.GetSelection()

            'Abrir o Model Space
            Dim modelSpace As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForRead)

            If objetos.Status = PromptStatus.OK Then

                Dim acSSet As SelectionSet = objetos.Value

                For Each selectobject As SelectedObject In acSSet

                    If Not IsDBNull(selectobject) Then

                        Dim entidade As Entity = trans.GetObject(selectobject.ObjectId, OpenMode.ForWrite)

                        If Not IsDBNull(entidade) Then

                            '' apaga as entidades

                            entidade.Erase()

                        End If

                    End If

                Next

                'Confirmar a transação
                trans.Commit()
            End If

        End Using 'Fecha a transação

    End Sub

End Class


Comentem. 

Boa programação.


Sem comentários:

Enviar um comentário