Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  SolidWorks
  Solidworks API - Dateien im PDM

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
7 Tipps für die Konstruktion von Kunststoffteilen und Spritzgussformen, ein Webinar am 27.06.2025
Autor Thema:  Solidworks API - Dateien im PDM (1147 / mal gelesen)
g-konstruktion
Mitglied
Konstrukteur


Sehen Sie sich das Profil von g-konstruktion an!   Senden Sie eine Private Message an g-konstruktion  Schreiben Sie einen Gästebucheintrag für g-konstruktion

Beiträge: 481
Registriert: 05.11.2001

Athlon II X4 645
PNY Quadro K2200
32GB RAM
--
Solidworks 2021
--
Mod Prosteel-Forum

erstellt am: 13. Apr. 2023 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

ich habe ein kleines VBA-Makro geschrieben, dass pdf-Dateien zu Teilen/Baugruppen öffnet. Funktioniert auch schon gut.

Wir haben im Solidworks PDM ein globales pdf-Verzeichnis, sowie lokale Unterordner. Außerdem können pdfs im gleichen Ordner, wie das Modell liegen.

Deswegen ermittle ich aus dem vorhandenen Modell (bzw. der ausgewählten Komponente im Featurebaum) die möglichen Pfade und frage diese ab.

Syntax:
globalPathExists =  dir(globalPath)

Anhand der Variable erkenne ich dann, ob das Teil lokal, global... gefunden wird und öffne es mit dem pdf-Reader.

Nun ist es so, dass die pdf per Task erzeugt werden und u.U. noch nicht im lokalen Vault aktualisiert sind, da die Verzeichnisse nicht automatisch aktualisiert werden beim Start des PDM. Ich habe bemerkt, dass diese Dateien dann auch nicht vom Makro gefunden werden und die globalPathExists leer bleibt. Suche ich per Explorer, werden die Dateien logischerweise im Vault gefunden und können geöffnet werden.

Kann ich diese Datei auf neue Versionen prüfen oder gibt es bessere Wege, die Dateien zu suchen?

2. Frage: Wenn er nichts findet, starte ich den Explorer im pdf-Verzeichnis, so dass eine manuelle Suche gestartet werden kann. Kann ich hier direkt eine PDM-weite Suche im Explorer starten, den Dateinamen in ein Suchfeld voreintragen o.ä.?
Mit der PDM-Programmierung habe ich mich noch gar nicht befasst, bei Solidworks api stehe ich noch relativ am Anfang.

Danke Euch! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

riesi
Mitglied
CAD-Admin


Sehen Sie sich das Profil von riesi an!   Senden Sie eine Private Message an riesi  Schreiben Sie einen Gästebucheintrag für riesi

Beiträge: 1100
Registriert: 06.05.2002

SWX Premium 2023-Sp5

erstellt am: 13. Apr. 2023 12:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für g-konstruktion 10 Unities + Antwort hilfreich

Es gibt zwei Möglichkeiten:
1) Ausgehend vom Pfad der Zeichnungs-Ableitung kann geprüft werden, ob die Zeichnung eine Verwendung hat. Dazu muss im Task unter Ausgabedatei-Details der Haken "Referenz von Zieldatei zu Quelldatei erstellen" angekreuzt sein. Dann kannst Du via API den Verwendungsnachweis der Zeichnung auflösen und bekommst den vollständigen Pfad zur PDF-Datei. Bei uns haben wir ein Addin fürs PDM geschrieben, um ausgehend vom Explorer die Zeichnung als PDF anzeigen zu lassen.
2) Ausgehend vom Dateinamen im PDM nach der PDF-Datei suchen. Geht auch, dauert etwas länger.

In beiden Fall muss im Erfolgsfall die Datei in den Cache geholt werden, damit sie der Viewer anzeigen kann. Auch das geht via API.

[Diese Nachricht wurde von riesi am 13. Apr. 2023 editiert.]

[Diese Nachricht wurde von riesi am 13. Apr. 2023 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

g-konstruktion
Mitglied
Konstrukteur


Sehen Sie sich das Profil von g-konstruktion an!   Senden Sie eine Private Message an g-konstruktion  Schreiben Sie einen Gästebucheintrag für g-konstruktion

Beiträge: 481
Registriert: 05.11.2001

Athlon II X4 645
PNY Quadro K2200
32GB RAM
--
Solidworks 2021
--
Mod Prosteel-Forum

erstellt am: 24. Apr. 2023 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo danke für deine Antwort, ich war leider einige Zeit außer Gefecht.

Ich weiß nicht, ob ich dich falsch verstehe, aber ich glaube, das beschriebene löst nicht mein Problem.

Mein Makro findet die Zeichnung und öffnet sie (eigentlich), wenn sie im PDM liegt.
Nun gibt es aber pdf, die angelegt sind, aber nicht in den lokalen Tresor geholt wurden. Ich muss auch noch testen, wie es sich verhält, falls die Version im Tresor höher ist als im lokalen Cache.

Beim Öffnen über den Explorer holt er, falls notwendig, die letzte Version und öffnet diese dann.
Beim Öffnen übers Makro liefert mir das Dir-Kommando einen leeren String, obwohl die Datei im PDM gefunden wird. Dann öffnet er sie auch nicht, weil er denkt, diese existiert nicht.

Deshalb meine Frage zu deinem Punkt "in den Cache holen". Kannst du mir hierzu einen Tipp geben?

Danke!

Gruß,
Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

riesi
Mitglied
CAD-Admin


Sehen Sie sich das Profil von riesi an!   Senden Sie eine Private Message an riesi  Schreiben Sie einen Gästebucheintrag für riesi

Beiträge: 1100
Registriert: 06.05.2002

SWX Premium 2023-Sp5

erstellt am: 24. Apr. 2023 09:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für g-konstruktion 10 Unities + Antwort hilfreich

Wenn eine Datei nicht im Cache ist, wird diese z.B. von der File-System-Object-Klasse "nicht gesehen/gefunden". Gilt auch für alle anderen Befehle in VBA, welche irgendwas mit Dateien machen. Deswegen muss die Datei tatsächlich auf der Festplatte sein. Um den Sprachgebrauch des PDMs zu nutzen: In den Cache holen.

Wenn Du das File- und Folder-Object hast, kannst Du mit Hilfe der beiden IDs und eine kleinen Unterroutine, alles in den "Cache" holen.

Code:

Sub HoleNeusteVersion(myVault As IEdmVault21, FileId As Long, FolderId As Long)
  Dim lFile             As IEdmBatchGet
  Dim pdmSelItems(1)    As EdmSelItem
  pdmSelItems(1).mlDocID = FileId
  pdmSelItems(1).mlProjID = FolderId
  Set lFile = myVault.CreateUtility(EdmUtil_BatchGet)
  lFile.AddSelection myVault, pdmSelItems
  lFile.CreateTree 0, EdmLib.EdmGetCmdFlags.Egcf_ForViewer
  lFile.GetFiles 0
  Set lFile = Nothing
End Sub



[Diese Nachricht wurde von riesi am 24. Apr. 2023 editiert.]

[Diese Nachricht wurde von riesi am 24. Apr. 2023 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

g-konstruktion
Mitglied
Konstrukteur


Sehen Sie sich das Profil von g-konstruktion an!   Senden Sie eine Private Message an g-konstruktion  Schreiben Sie einen Gästebucheintrag für g-konstruktion

Beiträge: 481
Registriert: 05.11.2001

Athlon II X4 645
PNY Quadro K2200
32GB RAM
--
Solidworks 2021
--
Mod Prosteel-Forum

erstellt am: 24. Apr. 2023 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank, das schau ich mir genauer an.

Auf meinem Stand brauch ich ab und zu einen kleinen Schubs in die richtige Richtung ;-)

Üs für deine Mühen gehen raus

Gruß,
Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz