Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Script für Boolsche Operationen

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:  Script für Boolsche Operationen (387 / mal gelesen)
JZühlke
Mitglied
Data Science Consultant


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

Beiträge: 13
Registriert: 28.04.2022

erstellt am: 28. Apr. 2022 14:12    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,

Zum ersten Mal überhaupt habe ich kein Thema zu einer Frage gefunden, die mich bei der CATIA-Programmierung aufgehalten hat. Ich bin mir aber sicher, dass es kein ungewöhnliches Problem ist, sondern dass ich nur den Thread nicht gefunden habe. Hier also mein Problem:

Wir wollen von allen Bauteilen bzw. deren 3D-Modellen das Volumen bestimmen. Wegen unterschiedlicher Datenqualität (historisch gewachsen, Zulieferer mit anderen Methoden,...) gibt es keine eindeutige Struktur in den .CATParts, wieviele Bodies vorliegen und wo diese im Strukturbaum stehen.

Mein Plan sah eigentlich vor, dass ich über eine Suchfunktion alle sichtbaren Bodies in eine Liste schreibe und dann alle über boolsche Operationen zu einem Body zusammenfasse. Den einzelnen Body kann ich dann problemlos auswerten. Leider wird über den Makrorekorder nicht die gesamte Funktion für Assemble bzw. Add aufgezeichnet.

Könnt Ihr mir weiterhelfen?

Viele Grüße,
Jörn

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: 28. Apr. 2022 14:52    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 JZühlke 10 Unities + Antwort hilfreich

Servus Jörn

Willkommen im Forum.
Die Methoden die du suchst sind AddNewAssemble bzw AddNewAdd.
Hier ein Beisiel (aus eine Makroaufzeichnung entstanden):

Code:
Sub CATMain()

Dim oPartDocument As Document
Set oPartDocument = CATIA.ActiveDocument

Dim oPart As Part
Set oPart = oPartDocument.Part

Dim oBodies As Bodies
Set oBodies = oPart.Bodies

Dim oMainBody As Body
Set oMainBody = oPart.MainBody

oPart.InWorkObject = oMainBody

Dim oShapeFactory As Factory
Set oShapeFactory = oPart.ShapeFactory

Dim oBody As Body
Set oBody = oBodies.Item("Körper.2")

Dim add1 As Add
Set add1 = oShapeFactory.AddNewAdd(oBody)

oPart.Update

End Sub


Für dich ist bestimmt noch die Eigenschaft InBooleanOperation eine Körpers interessant.

Gruß
Bernd

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

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

WMA HSU
Mitglied
WMA


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

Beiträge: 22
Registriert: 31.03.2020

erstellt am: 29. Apr. 2022 09:32    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 JZühlke 10 Unities + Antwort hilfreich

Moin Bernd,

Vielen Dank für den Quelltext 

Er hat wunderbar funktioniert.

Falls jemand den Quelltext für dieses Problem braucht:

Code:

CATIA = CreateObject("CATIA.Application")

Dim tempSel As Selection = CATIA.ActiveDocument.Selection
tempSel.Search("(((((FreeStyle.Body + 'Part Design'.Body) + 'Generative Shape Design'.Body) + 'Functional Molded Part'.Body) + 'Functional Molded Part'.Body) & Visibility=Visible);all")

Dim BodyList As New List(Of Body)
For i = 1 To tempSel.Count
    BodyList.Add(tempSel.Item(i).Value)
Next

Dim oPartDocument As Document
oPartDocument = CATIA.ActiveDocument

Dim oPart As Part
oPart = oPartDocument.Part

Dim oMainBody As Body
oMainBody = oPart.MainBody
BodyList.Remove(oMainBody)

oPart.InWorkObject = oMainBody

For Each TempBody As Body In BodyList
    Dim oShapeFactory As Factory
    oShapeFactory = oPart.ShapeFactory
    Dim oBody As Body
    oBody = TempBody

    Dim add1 As Add
    add1 = oShapeFactory.AddNewAdd(oBody)

    oPart.Update()
Next


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

JZühlke
Mitglied
Data Science Consultant


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

Beiträge: 13
Registriert: 28.04.2022

erstellt am: 29. Apr. 2022 09:35    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

Da hat mein altes Profil doch tatsächlich dazwischengefunkt 

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