Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  selektierte parts/models auf Dateiebene in ein anderes Verzeichnis verschieben

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
Autor Thema:  selektierte parts/models auf Dateiebene in ein anderes Verzeichnis verschieben (2084 mal gelesen)
chris-cv5
Mitglied


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

Beiträge: 4
Registriert: 31.07.2009

erstellt am: 31. Jul. 2009 22:06    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 zusammen,

ich bin neu hier und durch Zufall auf dieses Forum gestossen...
ich habe schon einige Beiträge gelesen aber noch nichts passendes gefunden. Vielleicht könnt Ihr mir weiterhelfen. Nun zur meiner Frage ...
Ich habe in einem Verzeichnis ca. 4903 Datensätze die aus Catia V4 (ca. 80%) und Catia V5 (20%) bestehen. Aus den kryptischen Dateinamen ist leider nicht zu erkennen um welche Art von Teilen es sich handelt. Um diese riesige Datenmenge sortieren zu können muß ich also jeden Datensatz einladen und dadurch sichten.
Dies mache ich dadurch das ich ca. 100 Teile immer einlade, aktiviere (Terminal-Mode aktivät)und dann entsprechende Sets zuweise.

Nun möchte ich gerne automatisch die selektierten Teile von der Festplatte in ein selbst definiertes Verzeichnis auf der Festplatte verschieben.

Der Wunsch Ablauf wäre dann z.B. ...

1. z.B. 15 Teile werden im Catia V5 selektiert.
2. das Makro wird gestartet und es wird nach einem Verzeichnisnamen gefragt (schön wäre Ordner auswahl analog Explorer).
3. die selektierten Dateien werden aus dem Ursprungsverzeichnis in das angewählte verschoben.

Ich erhoffe mir dadurch diese Riesige Datenmenge bewältigen zu können und würde mich freuen wenn mir jemand hierzu weiterhelfen könnte.

Wenn die Dateien dann alle in die entsprechenden Verzeichnisse vorsortiert sind wollte ich diese mit einer Software aus dem Internet einfach automatisch umbenennen z.B. wie Rohbau_001.model, Rohbau_002.model, u.s.w. ...

Viele Grüße

Chris 

------------------
gemeinsam sind wir stark ;-)

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

DanielFr.
Moderator
Manager


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

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: 01. Aug. 2009 13:37    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 chris-cv5 10 Unities + Antwort hilfreich

Hallo Chris,

erst einmal herzlich willkommen hier im Forum. Dein Problem ist zwar nicht sonderlich schwer (und sicherlich einfach zu implementieren) ABER es bedeutet doch einen gewissen Programmieraufwand. Die Frage ist jetzt wie fit bist du in VB bzw. VB.NET? Könntest du dir selber so einen Code zusammenbauen und nur bei Problemen fragen oder wünschst du dir einen vollständig implementierten, funktionierenden, getesteten Code 

Dein Beitrag ist zwar schon ziemlich ausführlich und verständlich geschrieben, dennoch bleiben eine paar Fragen offen.

1. Wie sieht deine Systeminformation aus (bitte in deinem Profil ausfüllen)
2. Soll das Makro nur auf Windows laufen oder wird es auch auf UNIX ausgeführt
3. Sollen die Dateien kopiert werden (dann hättest du zur Not noch eine Sicherung falls irgendetwas schief geht) oder willst du sie gleich verschieben
4. Wie meinst du das mit dem selektieren. Hast du 15 geöffnete unabhängige Modells in eigenen Fenstern (also 15 unabhängige Dateien), oder hast du ein riesen Produkt in dem die ganzen Modell´s eingefügt worden.

Anmerkungen zu den Fragen:

zu 1: Das ist immer wichtig damit andere User die dir helfen, wissen mit welchen Systemm du arbeitest (Release, SP, Hardware, etc.) Bei Fehlern spielt das oft eine übergeordnete Rolle

zu 2: Wenn es nur auf Windows läuft würde ich dir entweder ein VB.NET bzw. VB6 Programm ans Herz legen (hier könntest du auch einen FolderSelectionDialog (also so wie im Explorer) einfügen. Diese Möglichkeit existiert weder in CATScript noch in CATVbs und CATVba)

zu 3: Ein Beispiel wäre das eine Datei nicht kopiert werden kann weil sie z.B. schreibgeschützt ist oder du nicht die entsprechenden Rechte besitzt. Dies führt zu Fehlern die unbedingt abgefangen werden müssten (darum auch ein hoher Programmieraufwand)

zu 4: Bevor du die Dateien kopierst bzw. verschreibst müssen Sie in CATIA geschlossen werden (sonst kann Windows aufgrund seiner Architektur diese Dateien nicht verschieben). D.h. hättest du ein Produkt und keine Einzeldateien wird das Makro komplexer.

Jetzt zu meinen Ideen:

Man erstellt sich das Teil auf jeden Fall in VB.NET (sieht auch deutlich professioneller aus). Sind es einzelne Dateien die geöffnet werden (bzw. geht auch mit einem Produkt) erstellt man sich eine UserForm mit einer ListBox. Hier werden alle geöffneten Dateien angezeigt. Des weiteren kann man hier den Zielpfad (entweder für jede einzelne Datei oder per Multiselektion) eingeben. Klickt man auf einen Eintrag in der ListBox erhält die Datei in CATIA den Fokus und wird angezeigt. Wenn man es ganz professionel machen will erstellt man sich Screenshots von jeder Datei und macht sich eine Art Thumbnail wenn man einen Eintrag anklickt.

Wird dann der Finish-Button gedrückt werden alle Dateien in CATIA geschlossen und die Dateien in die Verzeichnisse verschoben (bzw. kopiert). Das ganze würde ich dann per *.bat machen. Eine *.bat schafft es nämlich eine geöffnete Datei zu verschieben (das geht mit den Windowsboardmittel nicht -> Fehlermeldung). CATIA hat nämlich die Eigenschaft die Items nicht aus der Document-Collection zu löschen wenn sie geschlossen wurden (kommt zumindestens häufiger vor). D.h. für Windows ist die Datei noch in Bearbeitung

Sobald alle Dateien verschoben sind wird ein Log-File (von mir aus Excel oder sogar *.txt) angezeigt.

Das sollte es dann gewesen sein. Leider habe ich nicht die Zeit es dir zu programmieren (zumindestens im Moment nicht). 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

chris-cv5
Mitglied


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

Beiträge: 4
Registriert: 31.07.2009

erstellt am: 01. Aug. 2009 20:21    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 Daniel,

danke für deine Antwort. Hier erst einmal die Beantwortung deiner Fragen ...

wie fit ... ich selber habe bisher nur VB-Code für Excel verfasst. Das letzte mal ist jetzt ca. 3 Jahre her. Dies waren meisten immer kleine Programme um sich die Arbeit zu erleichtern -> also Profi bin ich leider nicht. Ein vollständiges Programm wäre natürlich zu schön um wahr zu sein ! Aber Code fragmente um bestimmte Operationen Variablen zuzuweisen würden mir auch schon helfen z.B. wie übertrage ich seletierte Modellenamen bzw. partnamen an eine variable, u.s.w.

1. Die Systemumgebung werde ich noch nachpflegen aber hier schon mal vorab .. PC -> dual Core - 4 GB Speicher - Catia V5 R19.
2. Ja das Makro soll auf Windows laufen und muß nicht auf Unix lauffähig sein.
3. schön wäre natürlich die Dateien zu verschieben - dann sieht man besser was noch übrig ist. Alle 4903 Dateien auch ohne Aktivierung schafft der Rechner auch nicht -> daher portionsweise ca. 100 STK pro Durchlauf.
4. Ja es handelt sich jeweils um z.B. 15 unabhängige Dateinen unter einem neu angelegten Product.

Wegen der Empfehlung - Leider habe ich kein VB6 installiert so das ich warscheinlich keine andere Wahl habe als den Code entweder direkt im Catia V5 oder Excel ablaufen zu lassen - oder ?

Vielleicht könntest du mich hierbei unterstützen sofern es deine Zeit zuläßt ?

Viele Grüße

Chris 

------------------
gemeinsam sind wir stark ;-)

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

DanielFr.
Moderator
Manager


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

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: 02. Aug. 2009 16: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 Nur für chris-cv5 10 Unities + Antwort hilfreich

Hallo Chris,

gut damit ich dich jetzt richtig verstehe.

Du hast einen Ordner mir 4000 Dateien. Du erstellst dir ein neues Produkt fügst die 15 Dateien zu dem Produkt per Hand hinzu und willst diese dann in einen neuen Ordner verschieben?

ODER

Du öffnest 15 Dateien (die in unterschiedlichen Produkten liegen können) und willst diese per Auswahl in unterschiedlich Ordnber verschieben). Du erhalst ca. 270 neue Ordner mit jeweils ca. 15 Dateien. Zum Schluss willst du alle Dateien eines Ordners zu einem Produkt hinzufügen und dieses in den jeweiligen Ordner speichern?

VB6 ist ja kostenpflichtig von dem her war es nur ein Vorschlag. Aber die könntest dir VB Express 2008 installieren (das ist ein freies SDK). Hiermit kannst du dir dann eine *.exe kompilieren

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

chris-cv5
Mitglied


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

Beiträge: 4
Registriert: 31.07.2009

erstellt am: 03. Aug. 2009 11: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

der Ablauf ist folgender. In einem Ordner befinden sich 4903 Datein (models & parts). In Catia lege ich ein Product an z.B. ZSB-Umfang. Darunter -> Insert New Component -> darunter lade ich dann ca. 100 Modelle per insert existing Component ein ...
ZSB-Umfang
|-> u1
  |-> 1.model, 2.model, 3.part, ... 100.part
|-> u2
  |-> 101.model, 102.model, 103.part, ... 200.part
Nun aktiviere ich durch aktivät Terminannode (u1 zuerst)  alle 100 Modelle darunter und schaue Sie mir an.

Mit der Funktion Edit Selektion Set Edition erstelle ich Sets wie z.B. Umfang1, Umfang2, u.s.w.  Nun selektiere ich aus den 100 Modellen die entsprechenden und weise Sie den Set's zu.

So habe ich nach dem Durchgehen aller Modelle eine vorsortierung -> nur in Catia. Diese möchte ich aber auf die Dateiebene mit entsprechender Umbenennung der Einzelteile umsetzen.

Viele Grüße

Christian 

------------------
gemeinsam sind wir stark ;-)

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

DanielFr.
Moderator
Manager


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

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: 03. Aug. 2009 12:33    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 chris-cv5 10 Unities + Antwort hilfreich

Hallo Christian,

wenn du die Selection Set so und so per Hand anlegst dann ist es nicht mal so komplex wie gedacht. Ich würde alle Sets durchlaufen, innerhalb der Set hast du ja eine Selektion.

Dann jeweils den Dateipfad auslesen, Usereingabe machen lassen (wo das hinkopiert werden soll), Teilenummern und Dateinamen umbenennen, und mit dem FileSystem Objekt die Dateien verschieben.

Hört sich jetzt vielleicht ein bisschen zu einfach an (die Dateien sind ja in Bearbeitung was ein IOExeption hervorrufen würde) aber im Prinzip kann man auch dies umgehen.
Werd mich daheim mal an Werk machen 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 03. Aug. 2009 15:49    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 chris-cv5 10 Unities + Antwort hilfreich

Hallo,

da bin ich jetzt aber auch mal gespannt. Ich hatte auch schonmal versucht SelectionSets per Automation anzusprechen, bin aber leider bislang gescheitert.

Hier mein kläglicher Versuch:
Sub CATMain()

Dim MyDoc As Document
Set MyDoc = CATIA.ActiveDocument
Dim MySets ' As SelectionSets
Set MySets = MyDoc.GetItem("SelectionSets")

MyDoc.SelectionSets.RenameSelectionSet "Set1", "TEST"

End Sub

Wie gesagt, bin gepannt auf das Ergebnis,- Viel Erfolg und lass uns bitte dran teilhaben.

------------------
MfG
Randle

! It's not a bug, it's a feature !

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

chris-cv5
Mitglied


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

Beiträge: 4
Registriert: 31.07.2009

erstellt am: 21. Aug. 2009 19:51    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 Daniel,

hast du schon etwas zusammen bekommen ? Könnte das Makro nun gebrauchen da die Sets nur fertig erstellt sind.

Wäre nett wenn du dich hierzu noch einmal melden könntest.

Danke !

Gruß

Chris

------------------
gemeinsam sind wir stark ;-)

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

DanielFr.
Moderator
Manager


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

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: 22. Aug. 2009 10:24    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 chris-cv5 10 Unities + Antwort hilfreich

Hallo,

puh mir ist erst gerade klar geworden das ich da noch was machen wollte *schäm*. Hab mal geschaut es gibt eine Methode GetListOfSelectionSet die die Liste aller SelectionSets eines Dokuments abbilden kann. Leider weiß ich nicht wie man sie einsetzt und dokumentiert ist sie auch kaum. Ich werde aber dran bleiben und sobald ich rausgefunden habe wie man die SelektionSet´s anspricht würde ich das Makro fertig machen.

Man könnte das ganze aber auch noch anders machen. Wenn ich (bzw. wir) nicht rausfinden sollte wie man diese Methode einsetzt kann man auch vom Anwender erst die SelektionSet selektieren lassen und anschließend das Makro ausführen. Das ist zwar nicht so komfortabel aber mit VB.NET auch gut lösbar.

Makro wird gestartet und läuft asynchron neben CATIA. Anwender selektiert Items (Namen werden in eine ListBox übergeben) und klickt dann auf einen Button zum verschieben. Makro killt die Selektion...usw.

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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



Ingenieur (m/w/d) Maschinenbau
Technologischer Fortschritt gelingt nur, wenn Visionen zur Realität werden. Dazu bringen wir bei FERCHAU als eine der führenden europäischen Plattformen für Technologie-Dienstleistungen die smartesten und innovativsten Köpfe mit Unternehmen verschiedenster Branchen zusammen. Wir suchen dich: als ambitionierte:n Ingenieur:in im Maschinenbau, der:die wie wir Technologien auf die nächste Stufe bringen möchte....
Anzeige ansehenMaschinenbau
Dieter7
Mitglied
Konstrukteur und CAD-Admin


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

Beiträge: 94
Registriert: 12.10.2007

erstellt am: 31. Aug. 2009 20:18    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 chris-cv5 10 Unities + Antwort hilfreich

Das geht doch auch ohne Programmierung nicht allzu schwer:

- Du erstellst für jede Gruppe (Selection Set) ein Unterprodukt
- die Parts/Modelle jedes Selection Sets werden mit Copy/Paste (oder besser Cut/paste) in das entsprechende Unterprodukt verschoben, bis alle Parts/Modelle aus dem Haupt-Produkt entfernt sind
- Alles speichern (ruhig im allgemeinen Datenverzeichnis in dem alle Parts und modelle stehen).
- Jetzt im Desk (Schreibtisch) ein Unterprodukt selektieren (LMB)
- Menüauswahl File/Send to/Directory: Dort sind nur die Parts und Modelle des selektierten Unterprodukts aufgelistet, sie werden mit >> komplett in den unteren Fensterbereich versetzt, es wird ein (neues) Zielverzeichnis (Target) ausgewählt, und mit OK werden die Parts gemeinsam mit dem CATProduct in das neue Verzeichnis kopiert. Send to Directory funktioniert auch mit model-Files (im Gegensatz zu Save-Management..)
- Mit allen Unterprodukten so verfahren, bis die Modelle auf entsprechende Verzeichnisse verteilt (kopiert) sind.
- Mit einer entsprechenden Methodik/Reihenfolge musst du noch sicherstellen, dass du alle Modelle/Parts bearbeitest, und jedes nur 1x, was aber machbar sein sollte.

Gruß
Dieter

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)2023 CAD.de | Impressum | Datenschutz