Hoe een pdf-bestand een naam te geven met de configuratienaam van het solidworks-onderdeel

Hallo

Ik heb een macro gemaakt waarmee ik een stapbestand kan opslaan met de naam van de configuratie van het op te slaan onderdeel. Het werkt heel goed, maar ik wil hetzelfde doen met een plan dat in pdf is opgeslagen, maar het werkt niet.

Kan iemand mij helpen?

Bedankt

PS: Hier is de macro om op te slaan in stapformaat
Bestand opslaan als STEP.swp (41 KB)

Hallo @lucas.bc.41

Blij je te zien op het forum en je te verwelkomen.
Ik hoop dat we je kunnen helpen bij het oplossen van een aantal problemen, maar ook dat we kunnen profiteren van je kennis en ervaring.

Gezien de feestdagen kan het zijn dat u nog even moet wachten op het volledige antwoord op uw verzoek :slightly_smiling_face:

Vriendelijke groeten

1 like

Hallo
Heb je, terwijl je wacht tot de macro-experts verschijnen, de database (zoekbalk bovenaan) doorzocht? Er zijn tientallen onderwerpen met betrekking tot uw behoeften. Dat zou je vraag kunnen beantwoorden.

1 like

Bovenal is er een gebrek aan informatie: hoe wordt de tekening gemaakt? Eén vel per configuratie?
Een enkele tekening en u wilt de configuratie van de configuratie van het tekeningmodel wijzigen door configuratie en de MEP exporteren met de naam van de configuratie?
Voor een Europarlementariër is het niet zo eenvoudig als het exporteren van een 3D-model.
U zult dus uw wens duidelijker moeten toelichten, of een dossier ter keuring moeten voorstellen.

1 like

Ik heb een enkele tekening gemaakt die verandert volgens de geselecteerde configuratie, ik denk dat het ingewikkeld is om een lus te maken om een pdf-bestand voor elk van de configuraties op te slaan, dus eerst wil ik gewoon de actieve configuratie opslaan. Na als iemand het weet
Hoe je een lus zou maken zou geweldig zijn!

Een tekening exporteren naar pdf: (Sla de SOLIDWORKS-tekening op in een PDF-macro om het proces te automatiseren)

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As String
Dim status As Boolean
Dim errors As Long, warnings As Long

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

'Save
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, errors, warnings)

'Export to PDF if it is a drawing
If (swModel.GetType = swDocDRAWING) Then

'Ici la variable strFilename à modifier pour récupérer le nom de la configuration active de la MEP
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & "pdf"
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0

End If

End Sub

Om de actieve configuratie van een MEP op te halen:
https://help.solidworks.com/2016/English/api/sldworksapi/Get_Configurations_Referenced_in_View_Example_VB.htm

Dan blijft het om op elke configuratie en lus op elke weergave van de MEP te lussen en de configuratiereferentie bij elke weergave te wijzigen voor de nieuwe gewenste configuratie.

5 likes

@sbadenis

Je bent te sterk! Eenvoudigweg :star_struck:

Vriendelijke groeten

Dank je wel sbadenis!

Ik heb de twee macro's die je me hebt gegeven gecombineerd, maar ik kan niet het gewenste resultaat krijgen. Mijn macro debugt de regel "Set swDraw = swModel" en vertelt me dat Swdraw = Niets.
Ik begrijp niet waarom? Hier is mijn aangepaste macro.

Sub hoofd()

Dim swApp als SldWorks.SldWorks
Dim swModel als SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename als tekenreeks
Dim status Als Booleaans
Dim fouten zo lang, waarschuwingen zo lang
Dim swDraw als SldWorks.DrawingDoc
Dim swView als SldWorks.Bekijk
Dim bRet als Booleaanse
Dim swconfig als snaar

Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
Stel swDraw = swModel in

Debug.Print "Bestand = " & swModel.GetPathName

' Eerste tekeningaanzicht is eigenlijk het eerste vel,
' dus sla het ophalen van de modelnaam en configuratie over van
' het blad
Stel swView = swDraw.GetFirstView in
' Krijg de eerste tekeningweergave in het eerste blad
Stel swView in = swView.GetNextView
Doen terwijl het niet swView is niets
Debug.Print " Weergave = " + swView.Name
Debug.Print " Model = " + swView.GetReferencedModelName
Debug.Print " Config = " + swView.ReferencedConfiguration

' Récupérez le nom de la configuration active de la vue en cours de traitement
swconfig = swView.ReferencedConfiguration

Stel swView in = swView.GetNextView
Strik
'Opslaan
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, fouten, waarschuwingen)

'Exporteer naar PDF als het een tekening is
Als (swModel.GetType = swDocDRAWING) Dan
• Genereer de naam van het PDF-bestand met behulp van de naam van de actieve configuratie
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & swconfig & ".pdf"
Stel swExportPDFData = swApp.GetExportFileData(1) in
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0
Einde als

Einde Sub

Als iemand weet waar het probleem zit, zou ik blij zijn!

PS: Ik begin sinds vorige week in Macro, ik heb nog niet alle basis

Hallo

Stomme vraag maar je weet maar nooit, staat er echt een bestand open? En is het echt een tekening?

2 likes

Hallo

Geen probleem met de regel die wordt aangegeven als een tekeningdocument open is, zoals aangegeven door Cyril.f.
Om de macro functioneel te maken, heb ik slechts één wijziging aangebracht:
Wat het opslaan in PDF-formaat betreft, moet u de spaties in de bestandsnaamextensie verwijderen: ".pdf" in plaats van ".pdf"...
Solidworks gebruikt deze extensie om het verwachte formaat te herkennen, hier pdf.

Lijn 43:
strFilename = Left(strFilename, Len(strFilename) - 6) & swconfig & ".pdf"

En pas op voor de aanhalingstekens in de teksteditor van het myCAD-forum, ze worden op een variabele manier geïnterpreteerd, afhankelijk van wat ze omkaderen...

Vriendelijke groeten.

1 like

Inderdaad, alles is in orde! Ik had een kamer en een open plan misschien daarvoor...
Het enige wat ik hoef te doen is de lus maken, maar ik weet niet of het mogelijk is omdat de schaal moet worden aangepast aan de grootte van de kamer

Anders vond ik deze macro die elke tekening van een Europarlementariër maakt:

Dit kan je vooruit helpen, maar voor schalen is het ingewikkelder:

Als het je lukt om dit alles in een macro te combineren, betekent dit dat je goede vooruitgang hebt geboekt in je voortgang.
Aan de andere kant begint het wel heel ingewikkeld.

2 likes

Oh ja, het begint er geweldig uit te zien! Bedankt voor dit alles, ik zal zien wat ik kan doen