Macro voor het openen van een vlak met slechts een deel van de 3D-bestandsnaam

Hallo

Ik wil graag een macro maken waarmee ik het plan van de kamer waarin ik de macro start, kan openen. De naam van de Europarlementariër is echter slechts een deel van de 3D-bestandsnaam.

Mijn 3D-bestanden heten "3D0000M000-1 bestandsnaam. Sldprt" en mijn plannen heten alleen "3D0000M000-1".

Ze bevinden zich in dezelfde map.

Ik kan geen zoekopdracht starten met alleen deze eerste 12 tekens.

Als iemand een idee heeft waarin ik geïnteresseerd ben, weet ik zeker dat het niet ingewikkeld is, maar ik blokkeer!

Bij voorbaat dank!

Hallo

Normaal gesproken heb je maar twee klikken nodig om je MEP te openen, CTRL-D + ingevoerd  of de letter te zien die wordt beïnvloed (bestand == > maak een plan en ernaast is er de snelkoppeling)


ctrl-d.jpg
1 like

Hallo

Een beetje werk aan vba snaren, zie HIER.

Vriendelijke groeten

 

2 likes

Hallo heren,

Bedankt voor je feedback!

AC Cobra 427 : Omdat het onderdeel niet precies zo wordt genoemd als het vliegtuig, gaat het niet open.

D. Roger: Ik heb geprobeerd de linkerfunctie te integreren, maar ik krijg een foutmelding 91 wanneer ik deze uitvoer. Ik denk dat het de swModel-variabele is die het probleem is, maar ik heb het geprobeerd met swModel.GetPathName en het verandert niets.

Hier is mijn code:


code_ouverture_plan.jpg

Hallo

Bestandsnaam = Links(swModel.GetTitle, 12)

Vriendelijke groeten

Dank je wel d.roger!

Ik heb geen compilatiefouten meer, maar helaas werkt het principe niet. De macro stuurt me de melding dat hij geen plan kan vinden als er een in dezelfde map staat.

Enig idee wat ik verkeerd had kunnen doen?

Hallo

U moet het pad van de map ophalen, aan de bestandsnaam werken en vervolgens de gewenste extensie toevoegen:

Dim bestandsnaam als tekenreeks
Bestandsnaam = Links(swModel.GetTitle, 12)
Debug.Print Bestandsnaam
Dim swPath als snaar
swPath = Links(swModel.GetPathName, InStrRev(swModel.GetPathName, "\", , 0))
Foutopsporing.Print swPath
Dim FilenamePlan als tekenreeks
BestandsnaamPlan=swPath & Bestandsnaam & ".slddrw"
Debug.Print BestandsnaamPlan

Vriendelijke groeten

Klein als "beest"; Waarom de naam van het Europarlementariër veranderen???

Hallo 

Uw macro retourneert het bericht dat er geen tekening is omdat u *.slddrw   hebt ingesteld, zodat deze zoekt naar 3D0000M000-1*.slddrw

Hallo

Bedankt voor je hulp!

Ik heb eindelijk mijn probleem opgelost, maar ik had niet de tijd genomen om het je te vertellen!

Dit is de code die ik heb gebruikt:

Optie Expliciete

Dim swApp als SldWorks.SldWorks
Dim swModel als ModelDoc2

Dim DocName als tekenreeks
Dim DrwName als tekenreeks

Dim swLoadErrors zo lang mogelijk
Dim swLoadWarnings zo lang mogelijk

Sub hoofd()

Stel swApp = Toepassing.SldWorks in

Stel swModel = swApp.ActiveDoc in

DocName = swModel.GetTitle

DrwName = Left$(DocName, 12) & ".slddrw"

DrwName = Vervangen(swModel.GetPathName, DocName, DrwName, 1, , vbTextCompare)

Als Dir$(DrwName) <> "" dan

Stel swModel = swApp.OpenDoc6(DrwName, swDocDRAWING, swOpenDocOptions_Silent, "", swLoadErrors, swLoadWarnings) in

Einde als

Einde Sub