Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATVBA save speichert nur rootprodukt

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:  CATVBA save speichert nur rootprodukt (1726 mal gelesen)
Stud254
Mitglied


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

Beiträge: 3
Registriert: 02.07.2015

erstellt am: 02. Jul. 2015 09:36    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 arbeite seit kurzem mit VBA und schreibe gerade ein Makro für CATIA. Dieses Makro baut Einzelteile und Produkte zu einer Baugruppe zusammen. Die Produkte werden dabei während der Baugruppenerstellung mit Einzelteilen bestückt und dadurch modifiziert. Anschließend möchte ich das Rootprodukt inklusive der Unterprodukte speichern. Hierfür verwende ich:

Code:
CATIA.ActiveDocument.Activate

CATIA.ActiveDocument.Product.Update

CATIA.ActiveDocument.Save


Dieser Befehl speichert mir jedoch nur das Rootprodukt. Die Unterprodukte werden nicht gespeichert. Im Savemanagement werden diese jedoch als gespeichert angezeigt. Wenn ich das Rootprodukt nun schließe und wieder öffne, dann sind nur die Parts vorhanden, die direkt im Rootprodukt verbaut sind. Die Parts die in den Unterprodukten verbaut sind, werden im Strukturbaum angezeigt, fehlen aber. Das Symbol der Parts im Strukturbaum entspricht jetzt dem einer Componente mit einem Ausrufezeichen.


Wenn ich das Makro vor dem speichern stoppe und im Debugger mit F8 weiterlaufen lasse, werden auch die Unterprodukte richtig gespeichert.

Kann mir jemand einen Tipp geben, warum es im Debugger funktioniert und sonst nicht?

Ich habe es auch schon mit SaveAs versucht, was jedoch zum selben Ergebnis geführt hat.

Im Vorraus schon mal Vielen Dank

lg Daniel

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 02. Jul. 2015 13:13    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 Stud254 10 Unities + Antwort hilfreich

Hallo Daniel,

du musst alle Dokumente durchgehen und mit "saved" und "readonly" abfragen. Entsprechend der Abfrage jedes Dokument speichern!

...oder mit CAITA.StartCommand("Save All") die Save All Methode aufrufen. Bedenke allerdings, dass StartCommand-Befehle sprachabhängig sind. Sprich du musst entsprechend der verwendeten Sprache die Sprache abragen und entsprechend viele Commands in deinem Code vorsehen. Ich finde die andere Variante deutlich besser, denn ein Save All macht auch nichts anderes und ist fehlerträchtig.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Stud254
Mitglied


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

Beiträge: 3
Registriert: 02.07.2015

erstellt am: 02. Jul. 2015 14:31    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 Rick

Danke für deine schnelle Antwort. Ich habe es eben mit Catia.StartCommand ("Save All") versucht, jedoch mit genau dem selben Ergebnis. Daher werde ich jetzt wohl oder übel eine Abfrage schreiben und jedes Teil einzeln speichern.

Gibt es eine einfache Möglichkeit, die verbauten Dokumente nacheinander anzusprechen und dann zu speichern?

Bisher habe ich nämlich nur die Idee, dass ich meinen erzeugten Strukturbaum nochmal durchgehe und jedes Teil mit dem Objektpfad anspreche, prüfe ob es gespeichert ist und dann speichere.

MFG Daniel

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

Stud254
Mitglied


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

Beiträge: 3
Registriert: 02.07.2015

erstellt am: 02. Jul. 2015 15:03    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 ich bin nun ein Stück weiter gekommen.

Und zwar lese ich in meinem Ordner, der die Produkte enthält nacheinander die Dateinamen aus.

Damit prüfe ich dann, ob das Teil gespeichert ist und speichere es, wenn nötig.

Code:
Dim oFSo As Object
Dim oRootFolder As Object
Dim oFile As Object


Set oFSo = CreateObject("Scripting.FileSystemObject")
Set oRootFolder = oFSo.GetFolder(ZSBordner)


For Each oFile In oRootFolder.Files
   
DatName = oFile.Name                                                        'Gibt nacheinander die Dateinamen der Produkte aus
       
       
If Not CATIA.Documents.Item(DatName).Saved Then                            'Prüfen ob Datei gespeichert
   
   
   
  CATIA.Documents.Item(DatName).Save                                        'Datei speichern
       
       
End If

     
Next


Damit werden alle Teile gespeichert. Wenn ich im Anschluss auf Save Management gehe wird beim Rootprodukt "modified by synchronization" angezeigt. Wenn ich das Rootprodukt schließe und wieder öffne, dann ist es nur noch "open" und dennoch vollständig.

Kann mir jemand sagen warum da "modified by synchronization" angezeigt wird?

mfg Daniel

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