| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
|
Autor
|
Thema: Bohrungen und deren Kinder löschen (3115 mal gelesen)
|
richter2 Mitglied

 Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 26. Nov. 2010 10:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe ein Script, was alle Bohrungen eines Parts entfernt. Probleme gibt es dann, wenn die Bohrungen Kinder besitzen (Kreismuster, Rechteckmuster etc). Beim expliziten löschen in CATIA V5 kann das Löschen von Kindern aktiviert oder deaktiviert werden. Beim aktivieren erfolgt genau das, was ich will. Der Befehl selection.Delete (selektiert wurden alle Bohrungen), macht nun genau das Gegenteil. Das heißt, Kinder werden nicht mit gelöscht wodurch völliger Blödsinn entsteht und teils sogar der Update Befehl fehlschlägt. Wie teile ich Catia mit alle Kinder zu löschen? Danke für eure Hilfe und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied

 Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 29. Nov. 2010 09:56 <-- editieren / zitieren --> Unities abgeben:         
|
tomtom1972 Mitglied dipl ing maschinenbau
  
 Beiträge: 608 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 29. Nov. 2010 12:08 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Hallo, ???? die Frage beantwortet sich doch von selbst: du schaust in dem Script nach, ob an den Bohrungen Kinder (Muster etc.) dranhängen und löschst erst diese und dann die Bohrungen selbst. Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied

 Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 29. Nov. 2010 12:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo, nun auf die Idee bin ich auch schon gekommen aber wie kann ich Kinder einer Komponente per Script erkennen? Hierzu bin ich bisher auch nicht fündig geworden. Wäre super wenn du mir diesbzgl. auch noch einmal helfen könntest. Danke und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
  
 Beiträge: 608 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 30. Nov. 2010 07:21 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
|
tberger Mitglied Application Manager CATIA V5 / V6
   
 Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 30. Nov. 2010 07:51 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Hallo Klaus, du könntest über ItemToCopy auf das Kind einer Komponente kommen: suche alle Muster, gehe diese der Reihe nach durch und hole dir das ItemtoCopy. Set Sel_Muster = Alle_Muster.Item(i).Value Set ElternFeature = Sel_Muster.ItemToCopy
Dann kannst du über einen Abgleich von ElternFeature.Name herausfinden, ob das Muster das gesuchte Feature enthält und damit ein Kind darstellt.
------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... www.tobeplus.de tberger@tobeplus.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied

 Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 30. Nov. 2010 09:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo ihr Zwei, zunächst ersteinmal danke für eure Mühe. Das Problem ist: Nicht alle Muster gehören zu einer zu löschenden Bohrung (daher wäre es unter Umständen fatal alle Muster mit in die zu löschende Selektion zu nehmen) und nicht nur Muster können Kinder einer Bohrung sein. So sind in einen Beispiel auch Punkte als Kinder einer Bohrung angelegt. Weitere Komponenten habe ich als Kinder noch nicht vorgefunden, aber theoretisch könnten auch Spiegelung, Symmetrie etc. als Kind vorkommen. Daher ist der Weg, erst Kinder suchen und dann die Eltern prüfen unter Umständen dennoch unvollständig und insbesondere zeitaufwändig. Werde dies trotzdem mal probieren. Es gibt wohl aber keine Möglichkeit alle Kinder einer Komponente (in diesem Falle Bohrung) zu ermitteln? Beim Aufzeichnen des Makros werden die Kinder mit in die Selektion aufgenommen. Aber wie CATIA auf diese Information kommt, geht aus dem aufgezeichneten Script leider nicht hervor. Vielleicht hat trotzdem noch jemand eine Idee? Vielen Dank und viele Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied

 Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 25. Jan. 2016 15:49 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Hallo zusammen, kennt jemand mittlerweile eventuell einen Befehl, mit dem man die Kinder mit löschen kann? Ich würde gerne selektierte Parts in einem Produkt mit den Kindern (in diesem Fall Bedingungen) löschen. Mit freundlichen Grüßen Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Jan. 2016 16:11 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Servus IMHO  gibt es da immer noch nichts. In deinem Beispeiel könntest du die Parts aus der Baugruppe löschen und danach über eine Schleife alle Constrains prüfen (zB Status <> "catCstStatusOK") und ggf löschen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied

 Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 11. Feb. 2016 10:19 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Hallo Bernd, danke das ist eine gute Idee. Habe mal ein bischen probiert, ich weiß jedoch nicht richtig wie ich den Status prüfen kann, bzw wie ich das "catCstStatusOK" hier einbauen kann:
Code: selection1.search "CATAsmSearch.MfConstraint,all"
Habt ihr da eine Idee? Gruß Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 11. Feb. 2016 18:33 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Servus Ich würde über eine Schleife die selektierten Constrains abarbeitet (ungetestet): Code: selection1.search "CATAsmSearch.MfConstraint,all" for i = selection1.count2 to 1 Step -1 Set myConstrain = selection1.item(i).value if myConstrain Status = "catCstStatusOK then selection1.remove2(i) end if end for selection1.delete
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied

 Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 11. Feb. 2016 22:59 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Hallo, die Schleife selber funktioniert wunderbar, jedoch wird das "catCstStatusOK" scheinbar nicht erkannt, d.h. es wird pro Schleifendurchlauf eine selektierte Bedingung weniger, egal wie der Status der Bedingung ist. Es wird also nicht erkannt ob der Status der Bedingung ok oder nicht ok ist. Gruß Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
 
 Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 12. Feb. 2016 06:28 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
Morgen, ändere mal den Code von Bernd so ab, dann soll es funktionieren: Code:
selection1.search "CATAsmSearch.MfConstraint,all" for i = selection1.count2 to 1 Step -1 Set myConstrain = selection1.item(i).value if myConstrain.Status = catCstStatusOK then selection1.remove2(i) end if end for selection1.delete
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied

 Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 12. Feb. 2016 08:33 <-- editieren / zitieren --> Unities abgeben:          Nur für richter2
|