SolidWorks API -Grabar y ejecutar macros con SOLIDWORKS

api y macros en solidworks

SolidWorks API -Grabar y ejecutar macros con SOLIDWORKS

Solidworks macros - Api SolidWorks

¿Sabías que puedes automatizar tareas en Solidworks usando macros? 

Una macro es una secuencia de comandos que le permiten realizar operaciones de forma automática en el software. Existen dos maneras de crear una macro: programándola fuera de Solidworks o grabando una macro que capture una secuencia de acciones y comandos mientras las realizas en el software. Una vez creada, puedes ejecutar la macro desde la barra de herramientas Macro o el menú Herramientas.

Visual Basic for Applications (VBA) es el motor que permite grabar, ejecutar y editar macros en Solidworks. Las macros grabadas se guardan como archivos de proyecto VBA con la extensión .swp.

Puedes leer y editar archivos .swb y .swp con el editor de VBA. Al editar un archivo .swb existente, este se convertirá automáticamente en un archivo .swp. Además, puedes exportar un módulo a un archivo que luego puedes utilizar en otros proyectos VB.

VBA también te permite crear formularios y proporcionar más interacción con el usuario a través de tus macros grabadas. Si necesitas más información sobre cómo utilizar VBA, consulta la sección de ayuda del editor VBA

Existen dos maneras de crear macros en Solidworks: creando una nueva macro o grabando una macro.

Nueva macro en SolidWorks

 

Para crear una nueva macro, puedes hacer clic en «Nueva macro» en la barra de herramientas Macro o en el menú Herramientas, luego asignarle un nombre de archivo y hacer clic en «Guardar». 

Esto abrirá tu aplicación de edición de macros, donde podrás programar la macro directamente.

Por otro lado, si eliges grabar una macro, esta se creará desde dentro de Solidworks. Para hacerlo, puedes seguir los mismos pasos que para crear una nueva macro, pero en lugar de programarla directamente, debes realizar una secuencia de acciones y comandos en Solidworks y grabarlos. La macro se grabará automáticamente y podrás ejecutarla posteriormente.

Ejecutar macro en SolidWorks

Una vez que hayas creado o grabado una macro en Solidworks, puedes ejecutarla fácilmente haciendo clic en «Ejecutar macro» en la barra de herramientas Macro o en el menú Herramientas.

En el cuadro de diálogo que aparece, selecciona el archivo de macro que deseas ejecutar (.swp o .swb) y haz clic en «Abrir».

Si la macro contiene más de una función o subrutina, se ejecutará la última subrutina sin argumentos del módulo recientemente creado en el proyecto VBA.

Editar macro SolidWorks

Si necesitas hacer cambios en una macro que hayas grabado previamente en Solidworks, puedes editarla fácilmente haciendo clic en «Editar macro» en la barra de herramientas Macro o en el menú Herramientas.

Selecciona el archivo de macro que deseas editar (.swp) y haz clic en «Abrir».

Luego, puedes realizar los cambios que desees en la macro. Si necesitas más detalles sobre cómo editar una macro, puedes consultar la ayuda del editor de macros

Primera macro con SolidWorks usando Vb.Net

A continuación os dejo un enlace a un video tutorial en el que os enseño como programar una primera macro para Solidworks usando Visual Studio .NET

Os dejo el código del formulario en VB.NET para programar la macro de SolidWorks explicada en el video, no os olvidéis de agregar dos botones al formulario, el primero («b_iniciar») para iniciar Solidworks cuando se pulsa sobre él y el segundo botón («b_obtener_info»), para saber que tipo de documento de SolidWorks está activo en ese momento , así como de su ruta y extensión.
				
					Imports SolidWorks
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swdocumentmgr

Public Class Form1


    Dim swapp As SldWorks
    Dim fullname As String
    Dim filenamewithext As String
    Dim filelocation As String
    Dim Filename As String
    Dim Extension As String

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub B_iniciar_Click(sender As Object, e As EventArgs) Handles B_iniciar.Click
        Try
            If swapp Is Nothing Then
                swapp = CreateObject("sldworks.application.29")

            Else
                swapp = GetObject("sldworks.application.29")

            End If
        Catch ex As Exception

        End Try

        swapp.Visible = True


    End Sub

    Private Sub B_obtener_info_Click(sender As Object, e As EventArgs) Handles B_obtener_info.Click

        Dim swmodel As ModelDoc2


        swmodel = swapp.ActiveDoc

        fullname = swmodel.GetPathName


        If fullname <> "" Then
            filelocation = System.IO.Path.GetDirectoryName(fullname)
            Debug.Print("Carpeta Documento: " & filelocation)
            filenamewithext = System.IO.Path.GetFileName(fullname)
            Debug.Print("filenamewithext: " & filenamewithext)
            Filename = System.IO.Path.GetFileNameWithoutExtension(fullname)
            Debug.Print("Filename: " & Filename)
            Extension = System.IO.Path.GetExtension(fullname)
            Debug.Print("Extension: " & Extension)
        End If

        Dim tipo_doc As Integer

        Select Case LCase(Extension)
            Case ".sldprt"
                tipo_doc = 1
            Case ".sldasm"
                tipo_doc = 2
            Case ".slddrw"
                tipo_doc = 3
        End Select



        MsgBox("este documento es de tipo: " & tipo_doc)



    End Sub
End Class
				
			

Descarga librerías .dll Solidworks 2022 usadas en el proyecto de macro

Enlace de descarga del código usado en el video.

Share this post