| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung
|
Autor
|
Thema: Part über Teilenummer suchen und öffnen (1909 mal gelesen)
|
Dadidldi Mitglied

 Beiträge: 22 Registriert: 18.03.2009 CATIA R19 CatScript
|
erstellt am: 28. Jul. 2009 12:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, da ich zu meinem Problem nichts über die Suche gefunden habe, versuch ichs über ein neues Thema. Folgendes Problem: Ich möchte ein Part in ein Produkt einfügen. Der Name des Parts sei mal "Teilenummer_Name.CATPart". Aber mein Makro kennt von dem Teil nur die Teilenummer. Nicht den gesamten Namen. Würde ich es manuel öffnen, gebe ich im Öffnen-Dialog halt "Teilenummer_*" ein, dann bleibt nur ein Part übrig und das öffne ich. Aber per Makro geht das nicht. (korrigiert mich wenn ich falsch liege) Meine Idee war nun, vom CATIA Makro aus im Windows Explorer im entsprechenden Verzeichnis nach der Nummer zu suchen. Es wird dann ein Part gefunden. Von dem lese ich den kompletten Namen aus und benutze ihn zum Öffnen der Datei im CATIA. Wie kann ich jetzt auf den Explorer und in diesem auf die Suchen-Funktion zugreifen? Oder weiß jemand vielleicht sogar eine bessere Lösung für mein Problem? Grüße Dadi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 28. Jul. 2009 13:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Dadidldi
Hallo Dadi, warum willst du den Windows Explorer nutzen wenn es auch in CATIA eine eigene FileSystem Klasse gibt die das füe dich erledigen kann. Ich denke das Verzeichnis ist fest oder soll es vom Anwender während der Laufzeit ausgewählt werden. Für den ersten Fall kannst du im FileSystem den Ordner holen, dort in einer Schleife alle Files auslesen. Die Abfrage gestalltest du mit einem Split (den Dateinamen kannst du ja vor dem "_" splitten dann bekommst du ein Array mit 2 Einträgen. Mit dem ersten machst du deine Abfrage (= Teilenummer) und der zweite ist nicht wichtig. Hat das Array nicht die Dimension 2 gibt es keinen Unterstrich und die Datei wird nicht berücksichtigt Schau dir mal das CATScript an. Hier werden die Dateien aus einem konstanten Verzeichnis ausgelesen. Hat eine Datei die im Script eingetragene Teilenummer (das Format des Dateinamens entspricht deiner Konvention), wird sie geöffnet (du musst sie halt zu deinem Product hinzufügen). Code:
Sub CATMain() Dim oDoc As Document Dim oFile As File Dim oFiles As Files Dim oFolder As Folder Dim oFileSys As FileSystem Dim i As Integer Dim myAktiFileName As String Const Teilenummer = "1234" Dim mySplit Set oFileSys = CATIA.FileSystem Set oFolder = oFileSys.GetFolder("D:\Workfolder\Catia Files\CAD.de\FahrradketteFEM\Fahrradkette FEM") Set oFiles = oFolder.Files For i = 1 To oFiles.Count Set oFile = oFiles.Item(i) myAktiFileName = oFile.Name mySplit = Split(myAktiFileName, "_") If UBound(mySplit) = 1 Then If mySplit(0) = Teilenummer Then CATIA.Documents.Open (oFile.Path) Exit For End If End If Next End Sub
Für den zweiten Fall (Anwender muss Verzeichnis selektieren) würde ich einfach eine FileSelectionBox öffnen. Dort kann dann der Anwender auch mit Teilenummer* arbeiten um die Datei auszuwählen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danielsc Mitglied

 Beiträge: 45 Registriert: 18.06.2009
|
erstellt am: 29. Jul. 2009 15:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Dadidldi
du müßtest es vermutlich nicht einmal splitten sondern einfach mit der InStr-Funktion abfragen ob die Teilenummer im Namen vorkommt. Also hier nur mal ganz kurz: Code: abfrage = InStr(Partname, Teilenummer) if abfrage <> 0 then 'wenn die abfrage ungleich null ist kommt die teilenummer im namen vor end if
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dadidldi Mitglied

 Beiträge: 22 Registriert: 18.03.2009 CATIA R19 CatScript
|
erstellt am: 29. Jul. 2009 15:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das mit dem Durchgehen aller Files im Ordner ist ne super Idee. Wär ich nie drauf gekommen (wohl weil ich gar nicht wusste, dass das geht). Ich habs grad eben implementiert und es funktioniert. DANKE. @danielsc: leider zu spät, habs mit splitten ausprobiert und bin schon fertig. So werd ichs auch lassen, weil wie wir ja alle wissen: NEVER CHANGE A RUNNIG SYSTEM. Trotzdem danke. Auch diesen Funktion kannte ich noch nicht. Werde bestimmt mal nen Fall haben in dem ich sowas brauchen kann! Adiós Dadi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |