Crear Carpetas desde un archivo Excel en SW
Te enseño como crear carpetas en SolidWorks para un mejor control y organización.
-
Step 1: Descargar la macro
'Copia este código:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim cellValue As Variant
Dim rng As Object
Dim cell As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
' Crea un círculo en un plano
boolstatus = Part.Extension.SelectByID2("Alzado", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch TRUE
Dim skSegment As Object
Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, -0.076247, 0.00858, 0#)
Part.ClearSelection2 TRUE
' Crea la operación de extrusión
Dim myFeature As Object
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
' Definir la hoja de Excel y el rango de celdas a procesar
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = FALSE ' Hacer que Excel no sea visible
Dim excelBook As Object
Set excelBook = excelApp.Workbooks.Open("Tu ruta de acceso")
Dim excelSheet As Object
Set excelSheet = excelBook.Sheets("Sheet1")
Set rng = excelSheet.Range("A1:A30") ' Ajusta el rango según sea necesario
boolstatus = Part.Extension.SelectByID2("Saliente-Extruir1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
For Each cell In rng
cellValue = cell.Value
'Set myFeature = Part.FeatureManager.InsertFeatureTreeFolder2(swFeatureTreeFolderType_e.swFeatureTreeFolder_Containing)
Set myFeature = Part.FeatureManager.InsertFeatureTreeFolder2(swFeatureTreeFolderType_e.swFeatureTreeFolder_EmptyBefore)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, cell.Value)
boolstatus = Part.Extension.SelectByID2(cell.Value, "FTRFOLDER", 0, 0, 0, False, 0, Nothing, 0)
Next cell
' Eliminar la operación creada
boolstatus = Part.Extension.SelectByID2("Saliente-Extruir1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete
' Cerrar Excel y liberar los objetos
excelBook.Close FALSE
excelApp.Quit
Set excelSheet = Nothing
Set excelBook = Nothing
Set excelApp = Nothing
' Limpia la selección y el modo de selección en SolidWorks
Part.SelectionManager.EnableContourSelection = FALSE
Part.SetPickMode
Part.ClearSelection2 TRUE
boolstatus = Part.Extension.SelectByID2("Croquis1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete
boolstatus = Part.EditRebuild3()
End Sub
Activa la casilla de macro:
Click en nueva macro, nómbrala y guárdala donde desees.
A continuación haz click en editar macro y selecciona la que creaste.
Pega el código que copiaste.
-
Step 2: Abrir un archivo Excel
Crea un archivo Excel y escribe el nombre de todas las carpetas que quieres tener en la columna A.
-
Step 3: Modificar la macro y ejecutar
Copia la ruta de acceso del archivo Excel. Selecciona tu archivo y Crt+Shift+C
Pégala en donde dice: "Tu ruta de acceso" en el código
Modifica el rango de columnas deberá ser de "An:An" siendo n el numero de carpetas.
Set rng = excelSheet.Range("A1:A30") ' Ajusta el rango según sea necesario
Guarda la macro y selecciona Ejecutar la macro.
Se va a crear una lista de carpetas con los nombres del archivo de Excel que escribiste.