Makro zum Öffnen einer Ebene, die nur einen Teil des 3D-Dateinamens enthält

Hallo

Ich möchte ein Makro erstellen, das es mir ermöglicht, den Plan des Raums zu öffnen, in dem ich das Makro starte. Der Name des MEP ist jedoch nur ein Teil des 3D-Dateinamens.

Meine 3D-Dateien heißen "3D0000M000-1 Dateiname. Sldprt" und meine Pläne heißen nur "3D0000M000-1".

Sie befinden sich im selben Ordner.

Ich kann eine Suche nicht nur mit diesen ersten 12 Zeichen starten.

Wenn jemand eine Idee hat, die mich interessiert, bin ich sicher, dass es nicht kompliziert ist, aber ich blockiere!

Vielen Dank im Voraus!

Hallo

Normalerweise benötigen Sie nur zwei Klicks, um Ihr MEP zu öffnen, STRG-D + eingegeben  oder den Buchstaben zu sehen, der betroffen ist ( Datei == > erstellen Sie einen Plan und daneben befindet sich die Verknüpfung)


ctrl-d.jpg
1 „Gefällt mir“

Hallo

Ein bisschen Arbeit an vba strings, siehe HIER.

Herzliche Grüße

 

2 „Gefällt mir“

Hallo meine Herren,

Vielen Dank für Ihr Feedback!

AC Cobra 427 : Da das Teil nicht genau wie das Flugzeug heißt, öffnet es sich nicht.

D.Roger: Ich habe versucht, die Left-Funktion zu integrieren, aber ich bekomme einen Fehler 91, wenn ich sie ausführe. Ich denke, es ist die swModel-Variable, die das Problem ist, aber ich habe es mit swModel.GetPathName versucht und es ändert nichts.

Hier ist mein Code:


code_ouverture_plan.jpg

Hallo

Dateiname = Links(swModel.GetTitle, 12)

Herzliche Grüße

Danke d.roger!

Ich habe keine Kompilierungsfehler mehr, aber leider funktioniert das Prinzip nicht. Das Makro sendet mir die Meldung, dass es einen Plan nicht finden kann, wenn sich einer im selben Ordner befindet.

Irgendeine Idee, was ich falsch gemacht haben könnte?

Hallo

Sie müssen den Pfad des Ordners abrufen, den Dateinamen bearbeiten und dann die gewünschte Erweiterung hinzufügen:

Dateiname als Zeichenfolge dimmen
Dateiname = Links(swModel.GetTitle, 12)
Debug.Print Dateiname
Dim swPath als Zeichenfolge
swPath = Links(swModel.GetPathName, InStrRev(swModel.GetPathName, "\", , 0))
Debug.Print swPfad
Dim DateinamePlan als Zeichenfolge
DateinamePlan=swPfad & Dateiname & ".slddrw"
Debug.Print DateinamePlan

Herzliche Grüße

Klein wie ein "Biest"; Warum sollte man den Namen des Europaabgeordneten ändern???

Hallo 

Das Makro gibt die Meldung zurück, dass keine Zeichnung vorhanden ist, da Sie *.slddrw   eingegeben haben, sodass nach 3D0000M000-1*.slddrw gesucht wird.

Hallo

Danke für Ihre Hilfe!

Ich habe mein Problem endlich gelöst, aber ich hatte mir nicht die Zeit genommen, es Ihnen zu sagen!

Hier ist der Code, den ich verwendet habe:

Option Explizit

Dim swApp als SldWorks.SldWorks
Dim swModel As ModelDoc2

Dim DocName als Zeichenfolge
Dim DrwName als Zeichenfolge

Dim swLoadErrors so lange
Dim swLoadWarnings so lange

Sub main()

Legen Sie swApp = Application.SldWorks fest

Festlegen von swModel = swApp.ActiveDoc

DocName = swModel.GetTitle

DrwName = Links$(Dokumentname, 12) & ".slddrw"

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

Wenn dir$(DrwName) <> "" dann

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

Ende, wenn

Ende Sub