Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Item aus Document Collection entfernen

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:  Item aus Document Collection entfernen (2298 mal gelesen)
Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

Intel Xeon, 3,2GHz; 16GB RAM
NVIDIA Quadro 2000
Win XP Pro X64 SP2
CATIA V5 R19 SP9

erstellt am: 02. Dez. 2008 12:04    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


struktur.JPG


collection.JPG


Quellcode.txt

 
Hallo,

Ich beschäftige mich seit einigen Monaten mit dem Programmieren von VBA-Makros in CATIA V5 R16.

Nun bin ich auf ein Problem gestoßen und hoffe, dass mir jemand weiterhelfen kann. Es geht darum, dass ich ein CATPart vollständig löschen möchte. Teilweise bekomme ich das auch hin, zum Einen wird das Part (z.B. Part1) aus der Produktstruktur (siehe Bild: Stuktur) gelöscht und zum Anderen wird die Datei des Parts von der Festplatte entfernt. Was allerdings zurückbleibt ist das Item des gelöschten Parts in der Document Collection, in diesem Fall "documents1" (siehe Bild: Collection). Dieses Item soll ebenfalls  gelöscht werden. Mit documents1.item(XYZ).close() funktioniert dies nicht.

In einem anderen Beitrag habe ich gelesen, dass das Item erst dann gelöscht wird, wenn das entsprechende Part nicht mehr über die Undo-Funktion zurückgeholt werden kann, d.h. wenn zu viele Schritte nach dem Löschen des Parts interaktiv ausgeführt wurden.
Leider habe ich bisher nicht geschafft, dies durch ein Makro zu realisieren. Ich dachte dabei ganz konkret an eine Schleife, die durch bestimmte Schritte das Undo auffüllt, nachdem das Part gelöscht wurde. Dies scheint jedoch nicht zu funktionieren, da ein Makro in CATIA scheinbar als 1 Schritt angesehen wird (nach einem Klick auf "Undo" ist das gelöschte Part wieder da).

Weiß jemand, ob es möglich ist, mehrere Schritte in nur einem Makrodurchlauf zu "simulieren"? Ich bin für jede Hilfestellung und jeden Hinweis dankbar, da ich schon eine ganze Weile versuche, das Problem zu lösen. Vielleicht gibt es ja einen anderen Lösungsansatz statt einer Schleife!?

Danke schonmal im Voraus für eure Antworten!

------------------
Gruß,
Stefan.

------------------
-------------------
Gruß,
Stefan.

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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. Dez. 2008 12: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 Nur für Stefan83 10 Unities + Antwort hilfreich


Document_Items.zip

 
Hallo Stefan,

das Item in den Documents kann man IMHOIn my humble oppinion (Meiner Meinung nach) überhaupt nicht löschen. Selbst wenn der Stack null ist, geht das Item nicht weg.
Damit du das mal sehen kannst hab ich dein Script mal angepasst. Nach der Beendigung des Scripts steht das gelöschte Item immer noch in den Documents. Das bleibt so bis du das geladen Produkt schließt und wieder öffnest.
Dieser Vorgang ist auch logisch. Das gelöschte Dokument ist immer noch in CATIA geladen und entladen kann man CATIA nicht.

Ich sehe aber auch das Problem nicht. Du kannst doch die Items expliziet auf irgendwas abfragenb (mit Schleifen) da ist es doch wurscht wieviel Items sich innerhalb der Documents befinden.

Habe in deinem Script auch mal die selektion der Parts verbessert. So kann der User im Baum auswählen welches Part aus löschen will.

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

Die KATJA ist halt doch nur ne zickige Französin

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

Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

erstellt am: 02. Dez. 2008 13: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 Daniel,

Zunächst mal: Danke für deine Antwort und deine Code-Verbesserungen. Genau dieses "Entladen von CATIA" hatte ich gemeint.

Zum Hintergrund meiner Frage muss ich vielleicht etwas erklären: Ich programmiere mehrere Makros und in einem davon, ich nenne es mal "Erzeugen-Makro", das vor dem "Löschen-Makro" ausgeführt wird, erzeuge ich neue CATParts im Produkt, benenne diese sinngemäß um und speichere sie in einem bestimmten Ordner ab. Beim ersten Ausführen klappt das alles wunderbar.

Nach dem Löschen des Parts soll in der gleichen CATIA-Sitzung (ohne Neustart o.ä.) das Erzeugen-Makro wiederholt ausgeführt werden, d.h. dass ein Part mit der selben Benennung und dem selben Dateinamen ein zweites Mal erzeugt wird. Hier bricht das Makro dann mit einer Fehlermeldung ab, da das Part bereits in der Document Collection (mit der gleichen Bezeichnung) vorhanden ist. Wäre das Item vorher entfernt worden, hätte ich dieses Problem nicht.

-----------------
Gruß,
Stefan.

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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. Dez. 2008 13:30    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 Stefan83 10 Unities + Antwort hilfreich


Documents_Item.jpg

 
Hallo,

hab das gerade mal versucht, bei mir mekkert er aber nicht. Ich bekomme keine Fehlermeldung. Hab jetzt ein Item(3) mit PartNumber "Part1" und ein Item(4) auch mit PartNumber "Part1"

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

Die KATJA ist halt doch nur ne zickige Französin

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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 02. Dez. 2008 13: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 Nur für Stefan83 10 Unities + Antwort hilfreich

Hallo,

versuch doch mal nach dem Löschen des Parts aus der Produktstruktur, ein Update zu machen und das Product zu speichern (Optional: Product schliessen und wieder öffnen). Danach sollte es doch möglich sein, die Dateien zu löschen.

grüße Dominik

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

Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

erstellt am: 02. Dez. 2008 13:57    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


fehlermeldung.JPG

 
Hallo Daniel,

In meinem "Erzeugen-Makro" werden nach dem Erstellen des neuen Parts auch einige Elemente hinein kopiert (Geometrische Sets, Punkte, Flächen,...) diese sind beim zweiten Ausführen schon in dem neu erzeugten Element enthalten und werden doppelt angelegt, z.B.:

erstes Ausführen des Makros:
- neues Part wird erzeugt
- Geometrisches Set "GeoSet1" wird im neuen Part erzeugt, darin werden Punkte und Ebenen abgelegt
- Makro endet einwandfrei

Dann wird das neue Part manuell bzw. durch das "Löschen-Makro" gelöscht.

zweites Ausführen des Makros:
- neues Part wird erzeugt
- Geometrisches Set "GeoSet1" wird im neuen Part nochmal erzeugt. Das ist aber schon im Part enthalten, durch das erste Ausführen des Makros, das GeoSet1 ist im Hintergrund-Speicher von CATIA irgendwie noch vorhanden)
- Makro bricht beim Ausführen von "...GeoSet1.hybridshapes.item(XYZ)" ab, da es nicht eindeutig ist, auf welches Geometrische Set CATIA zugreifen soll.

Anbei mal die Fehlermeldung, die bei mir erscheint.

------------------
Gruß,
Stefan.

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

Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

Intel Xeon, 3,2GHz; 16GB RAM
NVIDIA Quadro 2000
Win XP Pro X64 SP2
CATIA V5 R19 SP9

erstellt am: 02. Dez. 2008 14: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

Zitat:
Original erstellt von V5Playaz:
Hallo,

versuch doch mal nach dem Löschen des Parts aus der Produktstruktur, ein Update zu machen und das Product zu speichern (Optional: Product schliessen und wieder öffnen).
grüße Dominik


Hallo V5Playaz,

Danke für deinen Tipp. nach dem updaten und speichern läuft das Makro auch nicht mehrmals durch. Irgendwo im CATIA-Hintergrund bleibt alles gespeichert, was man zuvor gelöscht hat.

Nach dem Schließen und anschließendem Öffnen funktioniert das Makro wieder, allerdings handelt es sich in meinem Fall um ein sehr komplexes Produkt (das Bild "struktur" dient als vereinfachtes Beispiel), was den Ladevorgang sehr lang werden lässt. Dies möchte ich dem Anwender nicht zumuten.

---------------
Gruß,
Stefan.

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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. Dez. 2008 14:04    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 Stefan83 10 Unities + Antwort hilfreich

Hallo,

kannst du das "öffnen" Makro auch mal reinstellen, das ich seh was du meinst? Ich steig gerade nicht mehr durch 

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

Die KATJA ist halt doch nur ne zickige Französin

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

Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

erstellt am: 02. Dez. 2008 14:40    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


ErzeugePart.txt

 
Hallo,

Ich stelle mal ein vereinfachtes "Erzeugen-Makro" rein. Aus Geheimhaltungsgründen kann ich das echte Makro nicht verwenden. Aber auch in meinem Beispielmakro sieht man nach dem mehrmaligen Ausführen (zwischendurch immer das erzeugte Part manuell aus der Produktstruktur löschen) sehr gut, dass bei jedem neuen Erzeugen das GeoSet1 in dem neuen Part mehrmals vorhanden ist (genau das führt zu dem Fehler). Zu einer Fehlermeldung kommt es in dem Beispielmakro jedoch nicht.

Ich müsste das Part irgendwie bereinigen können, wenn es mehrmals ausgeführt wird.

-------------
Gruß,
Stefan.

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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. Dez. 2008 16:38    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 Stefan83 10 Unities + Antwort hilfreich

Hallo,

ok jetzt hab ich das Problem verstanden. Das ist aber logisch, da das löschen des Parts aus dem Produktkontext und sogar von der Festplatte nicht bewirkt, das CATIA seine geladen Dokumente mit deiner Produktstruktur synchronisiert.
Ev. würden Dateien mit Zeitstempel im Dateinamen helfen?

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

Die KATJA ist halt doch nur ne zickige Französin

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

Stefan83
Mitglied
Konstrukteur

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

Beiträge: 9
Registriert: 02.12.2008

erstellt am: 02. Dez. 2008 16:54    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,

Das Verwenden eines Zeitstempels wäre ein möglicher Lösungsansatz.
Momentan bin ich dabei, einen eigenen Lösungsansatz zu verfolgen. Und zwar lösche ich unmittelbar vor dem Erzeugen eines Geometrischen Set in dem erstellten Part alle vorhandenen Geometrischen Sets (aus den Makroausführung vorher). Im "Erzeugen-Makro" ist also der folgende Code eingebaut:

If part1.hybridbodies.count > 0 then
    For k = 1 to part1.hybridbodies.count
        selektion.add part1.hybridbodies.item(k)
    next k
    selektion.delete
end if

So ist garantiert, dass das neue Part leer ist. Das Makro läuft jetzt ohne Probleme mehrfach durch, ob es tatsächlich funktioniert zeigt aber erst ein Praxistest.

Sollte es nicht klappen, dann wende ich die Methode mit dem Zeitstempel im Dateinamen an. Vielen Dank nochmal für deine Hilfe.

--------------
Gruß,
Stefan.

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