Macro opslaan als PDF alleen de eerste pagina van mijn tekening

Hoi allemaal

Ik heb een macro gemaakt waarmee ik een PDF van mijn tekeningen kan maken met een voorvoegsel en een tweede PDF met een voorvoegsel gevolgd door "ADV",

Mijn probleem is het volgende, op de tweede PDF, ik zou graag willen dat het alleen de eerste pagina van mijn lay-out is, want bij het opslaan kun je de gewenste pagina's zien of niet, maar in VBA weet ik niet hoe ik het moet doen.

Momenteel gebruik ik Acrobat dat ik open vanuit mijn macro om de laatste twee te verwijderen

Hieronder is mijn macro:

*****************************************************************************

Sub hoofd()

Dim SwApp als object
    Deel dimmen als object
    Dim SelMgr als object
    Dim selObj Als Object
    Dim AcroApp als Acrobat.AcroApp
    Stel SwApp = CreateObject("SldWorks.Application") in

Deel instellen = SwApp.ActiveDoc
Dim Clue als snaar
index = Invoervak("index?")
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
Doel dimmen als Scripting.filesystemobject
Dim waarde As Scripting.file
Doelset = CreateObject("scripting.filesystemobject")
Waarde instellen = target.getfile(Part.GetPathName)
longstatus = Part.SaveAs3("U:\PDF om te serveren\" & doel. GetBaseName(value) & "-" & index & ".pdf", 0, 0)
Als MsgBox("ADV", vbYesNo, "Heb ik een PDF nodig voor ADV?") = vbYes Dan
longstatus = Part.SaveAs3("U:\PDF om te serveren\" & doel. GetBaseName(value) & "-" & index & "-ADV" & ".pdf", 0, 0)
Shell ("C:\Program Files (x86)\Adobe\Acrobat 7.0\Acrobat\Acrobat.exe U:\PDF te distribueren\" & doel. GetBaseName(value) & "-" & index & "-ADV" & ".pdf"), vbMaximizedFocus

Einde als

  MsgBox ("Voltooien")

Einde Sub

*****************************************************************************

Bij voorbaat dank voor uw antwoorden

Julian.

 

 

Hallo

 

Persoonlijk kan ik je niet helpen, maar mensen zoals .PL of Joss.G en er moeten anderen zijn, zullen je zeker kunnen helpen.

 

Mathieu

1 like

Hallo

Kun je een macro maken bij het leren van de opnamefunctie met alleen de 1e pagina om te zien hoe ze het vertalen naar VBA?

 

S.B

Ik heb al geprobeerd om de Macro recorder te gebruiken om het te krijgen om me de regel van de code te geven, maar het werkt niet

Julian.

 

Hallo

In dit geval denk ik niet dat je de Shell kunt gebruiken je moet de SolidWorks-functie gebruiken om de PDF's te maken, zie  :

http://help.solidworks.com/2014/English/api/sldworksapi/Save_File_as_PDF_Example_VB.htm

 

Voorbeeld:

Stel swExportPDFData in = swApp.GetExportFileData(swExportDataFileType_e.swExportPDFData)

Kies hier uw blad

varSheetName = strSheetName

boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, varSheetName)

   

boolstatus = swModelDocExt.SaveAs(bestandsnaam, 0, 0, swExportPDFData, lErrors, lWarnings)

 

 

Bron: https://forum.solidworks.com/thread/66559

1 like

Het is leuk om Mathieu ANGER te citeren, maar ik ken macro's niet goed, ik geef toe dat ik er van tijd tot tijd wat tijd aan heb besteed, maar van daaruit om te helpen bij het schrijven van coderegels... ^^

Ik heb kant-en-klare macro's gevonden voor degenen die ernaar op zoek zijn, maar ik ben niet zo goed als .PL. (Ik denk dat Jmsavoyat ook heel wat over het onderwerp weet).

Cdt

Joss

1 like

Bedankt voor je oplossing .PL ^^ het werkt geweldig;) Ik moest het een beetje aanpassen maar ik ben blij met het resultaat,

Nogmaals bedankt en een fijne dag verder,

 

Julian.

1 like

Geen dank^^

Als u de code kunt posten zodat we de exacte syntaxis hebben (vooral om alleen het eerste blad te kiezen), kan het nuttig zijn voor anderen!

Fijne dag voor jou.

Hier is de volledige macro waarmee u ten eerste een PDF met alle pagina's en een "subscript" voorvoegsel in de naam kunt hebben en ten tweede alleen de eerste pagina met het voorvoegsel "indice" en andere vooraf gedefinieerde "ADV" 

Het is aan jou om het naar eigen inzicht aan te passen

Fijne dag allemaal 

Julian.

 

************************************************************************************************************************

Sub hoofd()

Dim SwApp als object
    Deel dimmen als object
    Dim SelMgr als object
    Dim selObj Als Object
    Dim swExportPDFData As SldWorks.ExportPdfData
    Dim boolstatus als Booleaanse
    Dim lErrors zo lang
    Dim lWaarschuwingen zo lang mogelijk
    Dim strSheetName(3) als tekenreeks
    Dim varSheetName als variant
    Dim bestandsnaam als tekenreeks
    Dim swModelDocExt als SldWorks.ModelDocExtension

           
    Stel SwApp = CreateObject("SldWorks.Application") in

Deel instellen = SwApp.ActiveDoc
Als een deel niets is, dan
        MsgBox "Geen actueel document", vbCritical
        Einde
Einde als
Dim Clue als snaar
index = Invoervak("index?")
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
Doel dimmen als Scripting.filesystemobject
Dim waarde As Scripting.file
Doelset = CreateObject("scripting.filesystemobject")
Waarde instellen = target.getfile(Part.GetPathName)
longstatus = Part.SaveAs3("C:\path to PDF destination" & target. GetBaseName(value) & "-" & index & ".pdf", 0, 0)
Als MsgBox("ADV", vbYesNo, "Heb ik een PDF nodig voor ADV?") = vbYes Dan

filename = "C:\pad naar PDF-bestemming" & doel. GetBaseName(value) & "-" & index & "-ADV" & ".pdf"

Set swModelDocExt = Deel.Uitbreiding
Stel swExportPDFData = SwApp.GetExportFileData(1) in

strSheetName(0) = "BOM"

varSheetName = strSheetName


boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, varSheetName)
    
boolstatus = swModelDocExt.SaveAs(bestandsnaam, 0, 0, swExportPDFData, lErrors, lWarnings)

   
Einde als
   MsgBox ("Voltooien")
Einde Sub

*************************************************************************************************************************