• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

Macro per SolidWorks2014

Ecosis

Utente poco attivo
Professione: tecnico
Software: solidworks
Regione: friuli
#1
Ciao a tutti, faccio una domanda, magari qualcuno sa rispondermi, ho già letto alcuni post ma non ho trovato quello che cercavo.:
ho la necessità di fare una macro che deve salvare in pdf solo il foglio attivo (quello che ho a video) di un drawing e posizionare il pdf nella stessa cartella dove si trova il drawing e con lo stesso filename. Ne ho registrata una però non sono capace di modificarla come serve a me:

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Part.ViewZoomtofit2
longstatus = Part.SaveAs3("D:\Archivio SolidWorks\drawing.PDF", 0, 0)
End Sub


Grazie
 

Ecosis

Utente poco attivo
Professione: tecnico
Software: solidworks
Regione: friuli
#3
Grazie per info e macro :) però per me è importante poter selezionare solo il primo foglio
 

czar

Utente Junior
Professione: tecnico
Software: SWX 2016 SP. 5.0
Regione: Emilia Romagna
#4
E' un po' il problema che ho anche io e cioè che non è possibile registrare alcune operazioni come per esempio la selezione di un campo in una finestra di dialogo.
Sono una pippa con le macro "complesse" e non ne ho mai create e non so programmare in VB.
Rimango in ascolto pure io per capire se è possibile inserire valori fissi (tipo la dimensione in uno schizzo) o registrare appunto selezioni da finestra di dialogo.
 

luca1669

Utente Standard
Professione: progettista
Software: solidworks,solid edge, pro/e 2000i-wf4
Regione: emilia romagna
#5
Prova con questa:

' ******************************************************************************
' MACRO PER ESPORTAZIONE PDF FOGLIO CORRENTE SU STESSA CARTELLA
' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim swExportPDFData As SldWorks.ExportPdfData
Dim swSheet As SldWorks.Sheet
Dim swModelDocExt As SldWorks.ModelDocExtension


Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

Set swExportPDFData = swApp.GetExportFileData(1)

Set swSheet = Part.GetCurrentSheet

Set swModelDocExt = Part.Extension

sPathName = Part.GetPathName

directory = Left(sPathName, InStrRev(sPathName, "."))

fileuscita = directory + "PDF"

nomefoglio = swSheet.GetName

boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, nomefoglio)

boolstatus = swModelDocExt.SaveAs(fileuscita, 0, 0, swExportPDFData, 0, 0)

End Sub
 

Ecosis

Utente poco attivo
Professione: tecnico
Software: solidworks
Regione: friuli
#6
Grazie, però non mi funziona, mi da un errore di sintassi in questa riga:

boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpeci fiedSheets, nomefoglio)
 

luca1669

Utente Standard
Professione: progettista
Software: solidworks,solid edge, pro/e 2000i-wf4
Regione: emilia romagna
#7
Scusa mi è scappato uno spazio di troppo
boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, nomefoglio)
spero così vada
 

luca1669

Utente Standard
Professione: progettista
Software: solidworks,solid edge, pro/e 2000i-wf4
Regione: emilia romagna
#8
Non so per quale motivo quando mando il messaggio mi aggiunge in automatico uno spazio fra ExportSpeci e fiedSheets occorre che elimini manualente lo spazio nella tua macro. Oppure usa la macro allegata
 

Allegati