SolidWorks API -Grabar y ejecutar macros con SOLIDWORKS
antonio2023-01-14T08:54:37+00:00Índice
ToggleSolidworks 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
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