Autor
|
Thema: Part komplett entladen (281 mal gelesen)
|
roccat Mitglied Konstrukteur
 
 Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 27. Jan. 2023 12:22 <-- editieren / zitieren --> Unities abgeben:         
Hallo, folgende Situation: Ich habe ein PartA welches geöffnet ist und CCP-Links von einem PartB besitzt, welches nicht geöffnet ist. Nun möchte ich PartB über "open" oder "read" kurz dazu laden, um die Links upzudaten, und dann wieder schließen. Allerdings funktioniert das nur einmal, da dass PartB auch nach einem close im Speicher bleibt. Wie bekomme ich das PartB aus dem Speicher oder gibt es eine andere Möglichkeit die Links im PartA zu aktualisieren? Danke mfG Mario
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
  
 Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Jan. 2023 13:08 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Hallo, was meinst du mit ... Zitat: Allerdings funktioniert das nur einmal
Was passiert denn dann, bzw. was geht dann nicht mehr? Wie sieht denn dein Code bislang aus? Generell ist mir, außer CATIA neu zu starten, keine Möglichkeit bekannt ein einmal in CATIA geladenes Dokument (open/read) wieder aus der Document Collection rauszubekommen. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 27. Jan. 2023 13:44 <-- editieren / zitieren --> Unities abgeben:         
Hallo Randle, danke für deine Antwort. Na dann kommt die Meldung dass das Part bereits geladen ist und aktualisiert dann nicht mehr, weil der alte Stand noch im Speicher ist. (siehe Anhang) Achso, das PartB wird außerhalb der aktuellen CATIA-Sitzung zuvor überschrieben. Daher will ich das immer wieder mal dazu laden und aktualisieren. Der Code ist nicht weiter spektakulär, mir geht es eher um die Verfahrensweise ob es überhaupt eine Möglichkeit gibt das PartB aus dem Speicher zu bekommen. Hier mal die Unterfunktion:
Code:
Function ReplaceCam(i As Integer)Dim MyDocuments As Documents Dim MyDocument As Document Dim MyPart As Part Dim oFSO As Object Dim isTrue As Boolean Dim MyUrl As String 'Ordner Check/Anlegen Set oFSO = CreateObject("Scripting.FileSystemObject") If oFSO.FolderExists(mStart.sCamPath) = False Then oFSO.CreateFolder mStart.sCamPath End If Set oFSO = Nothing 'Download MyUrl = mStart.sLinks(i) isTrue = DownloadFile(MyUrl, mStart.sCamPath & mStart.sCamFile) 'Read and close Set MyDocuments = CATIA.Documents Set MyDocument = MyDocuments.Read(mStart.sCamPath & mStart.sCamFile) MyDocument.Save MyDocument.Close 'Update Set MyDocument = CATIA.ActiveDocument Set MyPart = MyDocument.Part MyPart.Update End Function
Danke mfG Mario
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
  
 Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Jan. 2023 14:32 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Hallo, ok. Also das erneute Laden könntest du verhindern in dem du zuvor prüfst ob das Dokument bereits geladen ist. Das hier:
Code:
'Read and close Set MyDocuments = CATIA.Documents Set MyDocument = MyDocuments.Read(mStart.sCamPath & mStart.sCamFile) MyDocument.Save '<--- ergibt keinen Sinn wenn das Document nur gelesen wird! MyDocument.Close
ergibt keinen Sinn wenn das Document nur gelesen wird (MyDocuments.Read) Wenn das Quellpart aber außerhalb der Sitzung verändert wird, so ist das natürlich ein Problem. Da wäre (aus der Ferne!) die Frage ob das methodisch so ganz "sauber" ist (Wer oder was überschreibt das?). Da fällt mir so auf die Schnelle auch keine Lösung ein. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 27. Jan. 2023 18:06 <-- editieren / zitieren --> Unities abgeben:         
Danke für deine Antwort. Zitat:
MyDocument.Save '<--- ergibt keinen Sinn wenn das Document nur gelesen wird!
Da hast du natürlich Recht. Das war auch nur ein Versuch. Da manchmal Parts alleine durchs laden "modified" werden. Hätte sein können das der Status das saubere entladen verhindert. Daher nur mal ein Test das PartB nochmal auf Status "saved" zu stellen. Zitat:
ok. Also das erneute Laden könntest du verhindern in dem du zuvor prüfst ob das Dokument bereits geladen ist.
Das wäre kein Problem aber das hilft mir nicht. Da ich ja neu laden will, dazu muss aber der alte Stand aus dem Speicher. Zitat:
Da wäre (aus der Ferne!) die Frage ob das methodisch so ganz "sauber" ist (Wer oder was überschreibt das?).
Das kann (darf?) ich schlecht in zwei Sätzen erklären... Funktioniert aber OEM-weit.
zum Thema: Eine Lösung gibt es schon, bisher hatte ich das Entladen wie folgt gemacht: -PartA ist geladen, PartB ist nicht geladen -neues Product im neuen Fenster anlegen -PartB als existing component einfügen -PartA update -PartB über CATIA.Startcommands unloaden -neues Product ohne speichern schließen -PartB ist aus dem Speicher Ich hatte gehofft es gibt eine schönere Lösung. trotzdem Danke mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |