Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Nach Löschvorgang wird kein Geometrisches Set mehr erzeugt

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:  Nach Löschvorgang wird kein Geometrisches Set mehr erzeugt (694 / mal gelesen)
Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 05. Jun. 2018 12:20    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 CAD-Community,

ich habe mal wieder ein kleines Problem und hoffe, ihr habt einen Rat bzw. Lösung für mich. Es geht dabei um Folgendes:

1. Makro wird gestartet und nach ein paar Code Zeilen geht es in eine For Schleife hier erfolgt Schritt 2
2. Neues Part und neues GeoSet werden erzeugt
3. Schleife wird beendet und die zuvor erzeugten Parts + GeoSets werden gelöscht.

Beim erneuten ausführen des Makros wird mein Part erzeugt jedoch wird diesem nicht wie gewünscht auch wieder ein GeoSet zugeordnet. Woran kann das liegen?

Hier der Code mit dem ich das Part und GeoSet erzeuge

Code:

'Neues Part innerhalb des aktuellen Assembly anlegen
        Dim products1 As Products
        Set products1 = AProduct.Products
           
        Dim product2 As Product
        Set product2 = products1.AddNewComponent("Part", Pnummer)
       
        Dim MeinPart As Part
        Set MeinPart
=AProduct.Products.Item(product2.Name).ReferenceProduct.Parent.Part
        Set MeinPart_ges = AProduct.Products.Item(product2.Name)
     
       
'Neues Geometrisches Set
        Dim documents1 As Documents
        Set documents1 = CATIA.Documents
       
        Dim partDocument1 As PartDocument
        Set partDocument1 = documents1.Item(Pnummer & ".CATPart")
       
        Dim part1 As Part
        Set part1 = partDocument1.Part
           
        Dim hybridBodies1 As HybridBodies
        'Set hybridBodies1 = products1.Item(products1.Count - z).HybridBodies
        Set hybridBodies1 = part1.HybridBodies
           
           
        Dim GeoSetNew As HybridBody
        Set GeoSetNew = hybridBodies1.Add()
           
        GeoSetNew.Name = "GeoSections"
        part1.UpdateObject GeoSetNew
        part1.UpdateObject hybridBody1
        part1.Update

Besten Dank schon mal und ich hoffe mein Problem verständlich erklärt zu haben.

Grüße 

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 05. Jun. 2018 18: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 Aitec 10 Unities + Antwort hilfreich

Servus

Warum verwendest du in deinem weiteren Code nicht MeinPart weiter und greifst stattdessen über den Dokumentnamen erneut darauf zu?
Hat Pnummer beim nächsten Durchlauf einen neuen Wert?
Hast du eventuell die Fehlerbehandlung ausgeschaltet (On Error resume next)?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 06. Jun. 2018 10:17    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 bgrittmann,

also, MeinPart direkt zu verwenden macht natürlich mehr Sinn. Pnummer erhält bei jedem durchlaufen einen neuen Wert. Beim start des Makros wird geprüft ob der Name für Pnummer bereits existiert. Ist das der Fall erhält Pnummer solange eine neue Bezeichnung bis der Name nicht mehr doppelt ist.

Ich habe jetzt aber festgestellt das sobald ich ein z.B. "Part4" erzeugt habe und dieses anschließend Lösche, das dazu führt, dass beim nächsten Makro Start "MeinPart" den Value "Nothing" hat. Anscheinend ist das ein Catia Problem, weil die zuvor verwendete Bezeichnung noch abgespeichert ist ?!
Komischer Weise wird trotzdem ein Part im Baum erzeugt,jedoch ohne das GeoSet.

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Jun. 2018 10: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 Aitec 10 Unities + Antwort hilfreich

Servus

Probier mal:

Code:
Set MeinPart = product2.ReferenceProduct.Parent.Part
Dann bist du unabhängig mit welchen Instanznamen das Teil angelegt wird.
Vermutlich verwendet Catia einen automatischen Namen wenn es den Instanznamen (oder sogar Document-Name?) schon gibt.

EDIT: Warum suchst du vor den neu anlegen des Parts ob es dies noch nicht gibt (zB direkt per Document- oder Instance-Name ansprechen)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 06. Jun. 2018 10: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

Hallo,

also ich konnte den Fehler jetzt umgehen. Und zwar füge ich jetzt das GeoSet einfach in das zuletzt erzeugte Part ein. Nicht so schön aber es funktioniert.

Viele Grüße 

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