Visual Basic.NET - boton para ejecutar comando creado en VB.NET

 
Vista:
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 11/03/2018 19:13:05
Buenas tardes,

Alguien me puede ayudar?

Tengo un código con un comando para abrir un dibujo en autocad.
Quisiera ejecutar ese comando presionando un button.
Como se haría?
El código creado seria:

1
2
3
4
5
6
7
8
9
10
11
12
<CommandMethod("abredibujo", CommandFlags.Session)>
Public Sub OpenDrawing()
    Dim strFileName As String = "C:\Rectangulo.dwg"
 
    Dim acDocMgr As DocumentCollection = Application.DocumentManager
 
    If (IO.File.Exists(strFileName)) Then
        DocumentCollectionExtension.Open(acDocMgr, strFileName, False)
    Else
        acDocMgr.MdiActiveDocument.Editor.WriteMessage("File " & strFileName & " does not exist.")
    End If
End Sub


Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 11/03/2018 20:51:17
Perdonad, lo que quiero es insertar un bloque con ese boton, no abrirlo.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por omar (166 intervenciones) el 11/03/2018 21:31:06
saludos usa
el metodo process

investiga y con eso podras abrri cual quier archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 11/03/2018 21:49:49
Quizás no me he explicado bien, ya que estoy aprendiendo a programar.
Lo que quiero hacer es lo siguiente.
Tengo un codigo como el que he puesto para abrir un bloque. Cuando pongo en la linea de comando "abredibujo" se abre el dibujo que yo le he dicho.
Bueno pues eso mismo, lo quiero hacer haciendo clip en un button que he creado.
Que tendria que poner en button para que ese comando "abredibujo" se ejecute.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por omar (166 intervenciones) el 11/03/2018 22:06:57
lo que te dije sibre process
ejecuta un archivo y lo abre segun el programa

investiga sobre process

podras abrrir cualquir archivo que le indiques
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kingk
Val: 173
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

boton para ejecutar comando creado en VB.NET

Publicado por kingk (77 intervenciones) el 12/03/2018 15:14:21
Hola, si te refieres a asignar el procedimiento para su evento clic de un botón creado desde código, seria así:
AddHandler botón.Click, Address Of OpenDrawing()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 12/03/2018 16:44:24
Hola Kingk,

Esa línea donde la tendría que poner?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kingk
Val: 173
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

boton para ejecutar comando creado en VB.NET

Publicado por kingk (77 intervenciones) el 12/03/2018 20:01:17
Una vez creado el botón debes colocar el código. Si el código donde creas el botón es en evento load del formulario, lo colocas en el evento load.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 13/03/2018 08:10:43
Hola Kingk de nuevo,
Agradecerte tu interés por mi duda.

Mira este es el código que tengo en el evento Class1.vb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Public Class Class1
    <CommandMethod("Insertabloque")>
    Public Sub InsertingABlock()
        ' Get the current database and start a transaction
        Dim acCurDb As Autodesk.AutoCAD.DatabaseServices.Database
        acCurDb = Application.DocumentManager.MdiActiveDocument.Database
 
        Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
            ' Open the Block table for read
            Dim acBlkTbl As BlockTable
            acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
 
            Dim blkRecId As ObjectId = ObjectId.Null
 
            If Not acBlkTbl.Has("CircleBlock") Then
                Using acBlkTblRec As New BlockTableRecord
                    acBlkTblRec.Name = "CircleBlock"
 
                    ' Set the insertion point for the block
                    acBlkTblRec.Origin = New Point3d(0, 0, 0)
 
                    ' Add a circle to the block
                    Using acCirc As New Circle
                        acCirc.Center = New Point3d(0, 0, 0)
                        acCirc.Radius = 2
 
                        acBlkTblRec.AppendEntity(acCirc)
 
                        acBlkTbl.UpgradeOpen()
                        acBlkTbl.Add(acBlkTblRec)
                        acTrans.AddNewlyCreatedDBObject(acBlkTblRec, True)
                    End Using
 
                    blkRecId = acBlkTblRec.Id
                End Using
            Else
                blkRecId = acBlkTbl("CircleBlock")
            End If
 
            ' Insert the block into the current space
            If blkRecId <> ObjectId.Null Then
                Using acBlkRef As New BlockReference(New Point3d(0, 0, 0), blkRecId)
 
                    Dim acCurSpaceBlkTblRec As BlockTableRecord
                    acCurSpaceBlkTblRec = acTrans.GetObject(acCurDb.CurrentSpaceId, OpenMode.ForWrite)
 
                    acCurSpaceBlkTblRec.AppendEntity(acBlkRef)
                    acTrans.AddNewlyCreatedDBObject(acBlkRef, True)
                End Using
            End If
 
            ' Save the new object to the database
            acTrans.Commit()
 
            ' Dispose of the transaction
        End Using
    End Sub
End Class


Este código es un comando para insertar un bloque.

Bueno pues he puesto en el evento form1.vb lo que me has dicho y me señala debajo de "InsertingABlock()" como error.

1
2
3
4
5
6
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        AddHandler Button1.Click, AddressOf InsertingABlock()
 
    End Sub
End Class

No se que puede pasar.

A ver si me pudieras ayudar.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kingk
Val: 173
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

boton para ejecutar comando creado en VB.NET

Publicado por kingk (77 intervenciones) el 14/03/2018 20:54:38
Hola, tal como veo tu código, lo que quieres es ejecutar el procedimiento que esta en otra clase. Lo que tienes que hacer es crear una instancia de esa clase, y así podrás usar el procedimiento. Por ejemplo:
Dim clase1 As New Class1
clase1.InsertingABlock()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 15/03/2018 08:05:13
Buenos dias Kingk,

He puesto lo que me has dicho y sigo sin conseguirlo.

1
2
3
4
5
6
7
8
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
        Dim clase1 As New Class1
        clase1.InsertingABlock()
 
    End Sub
End class

A ver si me puedes decir algo por favor.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton para ejecutar comando creado en VB.NET

Publicado por Jesus (7 intervenciones) el 18/03/2018 12:03:20
Hola Kingk,

Lo he conseguido!!!, solo me faltaba cerrar el formulario con Me.Close().

Muchisimas gracias.
Eres un crack.
Espero que me sigas ayudando en futuras dudas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar