PDF bewaar macro in huidige map

Hallo

Ondanks alle vragen die al zijn gesteld over macro's voor een PDF-record op Solidworks (2014 in mijn geval), kan ik niets vinden dat overeenkomt met mijn probleem.

Ik zou graag een macro willen die het plan als pdf opslaat in de huidige map, met de huidige bestandsnaam, maar omdat ik geen kennis heb van VBA-code, is het voor mij onmogelijk om de code te wijzigen op de regel van het pad waar de pdf zal worden opgeslagen, ondanks veel onderzoek op internet.

Ik heb een macro gemaakt door te leren dat er een is, het enige dat overblijft is om deze beroemde regel aan te passen.

In mijn geval zal de macro altijd PDF's met de naam "1841-22" in de map "1841" opslaan, terwijl ik voor een "1836-12"-plan het graag in de map "1836" zou willen hebben, terwijl ik een enkele gemeenschappelijke macro heb voor al mijn mappen, en niet een macro voor elke map.

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
myModelView.FrameState = swWindowState_e.swWindowMaximized
Deel.WeergaveZoomtofit2
Deel.WeergaveZoomtofit2
Deel.WeergaveZoomtofit2
longstatus = Part.SaveAs3("M:\Design Office\Products\1800-49\1841\1841-22.PDF", 0, 0)
Einde Sub

 

Bij voorbaat dank voor uw hulp,

 

Vriendelijke groeten

 

Allan.

 

Hallo

Bekijk hier hoe u de bestandsnaam kunt herstellen:

https://forum.solidworks.com/thread/26814

En deze regel zal moeten worden gewijzigd:

longstatus = Part.SaveAs3("M:\Design Office\Products\1800-49\1841\1841-22.PDF", 0, 0)

We kunnen ook inspiratie putten uit deze macro:

https://forum.solidworks.com/servlet/JiveServlet/download/116587-39393/Save%20Part-Assembly%20as%20Parasolid.zip

Zie ook mijn macro's hier (ik weet niet welke de bestandsnaam bevat):

http://www.lynkoa.com/tutos/macro-ouvrir-la-piece-dans-l-assemblage

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

In feite heb ik de wijziging aangebracht, probeer dit:

Sub hoofd()

Stel swApp = Toepassing.SldWorks in

Deel instellen = swApp.ActiveDoc

Hiermee haalt u het volledige pad van het huidige document op, inclusief de bestandsnaam:
PathName = UCase(PArt.GetPathName)


myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
myModelView.FrameState = swWindowState_e.swWindowMaximized
Deel.WeergaveZoomtofit2
Deel.WeergaveZoomtofit2
Deel.WeergaveZoomtofit2
longstatus = Part.SaveAs3(Vervangen(PathName,"SLDDRW","PDF") , 0, 0)
Einde Sub

2 likes

Bedankt .PL je wijziging werkt perfect, ik heb het op verschillende bestanden geprobeerd en geen souçi, bedankt voor je hulp!

1 like

De heer Macro is weer ongebreideld ^^

1 like

Als je MyCADtools hebt, doet PowerPrint het heel goed.

 

uh gezien het onderwerp, als we hetzelfde pad willen hebben, maar alleen de naam van het bestand dat deze mogelijke zijns verandert? we zullen moeten noteren of de info?? :)

Hallo allemaal

Na enkele maanden van overtuigend testen dankzij de macro van .PL (nogmaals bedankt), kom ik bij je terug voor een klein detail dat me begint te storen.

Wanneer een .PDF plan in de werkplaats wordt geopend voor overleg en ik een wijziging moet aanbrengen. op ditzelfde vliegtuig direct op Solidworks, en ik gebruik deze PDF-macro, crasht Solidworks en sluit het, omdat het het PDF-bestand niet kan overschrijven omdat het al open is.

Wanneer ik het plan echter probeer op te slaan .PDF met behulp van File-Save sous-.PDF, verschijnt het bericht "Dit bestand is alleen-lezen" en zorgt ervoor dat Solidworks niet crasht.

Zou het mogelijk zijn om een regel code in mijn macro op te halen waarmee ik dit bericht kan krijgen als het bestand al open is, en Solidworks niet laat crashen?

Bij voorbaat dank voor uw hulp,

Vriendelijke groeten

Allan.

1 like

@allan.comment : Stel een nieuwe vraag op het forum, niemand komt om de oude te zien.