| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
| KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: Hauptkörper ändern (562 / mal gelesen)
|
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, habe folgendes Problem: es gibt ein Modell, das den Hauptkörper (leer) und einen Körper ("Körper.1) mit den Geometrien hat. Während der Makroausführung setze ich den Körper.1 als MainBody mithilfe dieses Satzes fest: CATIA.ActiveDocument.Part.MainBody = CATIA.ActiveDocument.Part.Bodies.Item(i) um die gewissen Parameter aus dem Körper auszulesen. Es funktioniert einwandfrei. Danach soll der ursprüngliche Körper ("Hauptkörper") wieder zum MainBody gemacht werden. Und das funktioniert nicht. Probiere es so (da der "Hauptkörper" immer auf der erste Position im Strukturbaum steht (s. Bild): CATIA.ActiveDocument.Part.MainBody=aktives_Modell.Bodies.Item(1) Bin für jede Hilfe dankbar! dddt1
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jan. 2024 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für dddt1
Servus dddt1 Bei mir funktioniert es wie du es beschrieben hast, aber das Icon im Baum aktualisiert sich nicht richtig. (bei mir aktualisiert sich erst wenn ich den Körper in Bearbeitung setze oder doppelklick) Warum must du den Hauptkörper temporär ändern? (ich vermute dass du dies gar nicht benötigst) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 11:35 <-- editieren / zitieren --> Unities abgeben:
Danke für eine schnelle Antwort Bernd! Hatte gerade ausprobiert: der Doppelklick oder das "Körper in Bearbeitung setzen" bringen bei mir nichts. Der Körper.1 bleibt als MainBody :-( Ich ändere den MainBody, um die Dichte des dem Körper zugewiesenen Materials mit dieser Methode auszulesen : CATIA.ActiveDocument.Part.Density Wenn ich einfach vom "normalen" Körper die Dichte auslese, dann bekomme ich eine glatte 1 und nicht die tatsächliche Dichte des Körpers. BG dddt1 [Diese Nachricht wurde von dddt1 am 26. Jan. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 744 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 26. Jan. 2024 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für dddt1
Hallo, eine alternative wäre evtl. die den Körper.1 mittels boolescher Operation dem Hauptkörper hinzuzufügen und abschließend diese Operation wieder zu löschen. Gruß Randle ------------------ Planung ersetzt Fehler durch Irrtum! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jan. 2024 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für dddt1
Servus Alternative Lösungsideen (nicht getestet):
- mit GetMaterialOnBody das Material auslesen (da sollt auch die Dichte irgendwo drin sein)
- über die Liste aller Parameter (ggf auch Sublist vom Körper) die einzelnen Dichten/Material auslesen
- über eine Messung (Inertia) die Dichte des Körper bestimmen
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 12:12 <-- editieren / zitieren --> Unities abgeben:
|
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 12:59 <-- editieren / zitieren --> Unities abgeben:
Die erste Variante mit dem GetMaterialOnBody funktioniert ! Vielen vielen Dank, Bernd! Leider benötige ich paar andere Parameter... Die meisten auszulesen habe ich hinbekommen. Jetzt stolpere ich beim Volumen des Körpers..wieder eine ähnliche Geschichte..wenn der Körper zum Hauptkörpier nominiert ist, dann wird Volumen ermittelt..sonst ist der Volumen=0. BG dddt1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jan. 2024 13:01 <-- editieren / zitieren --> Unities abgeben: Nur für dddt1
Servus Was willst du denn alles von den einzelnen Körpern ermitteln? (um ggf nur einen Weg zu nutzen und nicht 10 verschiedene) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 13:03 <-- editieren / zitieren --> Unities abgeben:
Hier ist die Lösung für Dichte_ermittlung, falls jemand änliche Frage hätte: Dim Mat_1 as Material Set Param = CATIA.ActiveDocument.Part.GetItem("CATMatManagerVBExt") Param.GetMaterialOnBody CATIA.ActiveDocument.Part.Bodies.Item(i), Mat_1 Density = Mat_1.AnalysisMaterial.GetValue("SAMDensity") dddt1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 13:06 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 12014 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jan. 2024 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für dddt1
Servus Du benötigst nur drei dieser Werte (Volumen, Dichte oder Masse lassen sich wenn die beiden anderen bekannt sind berechne). Das Volumen und die Oberfläche solltest du über einer Messung (Measurable) bestimmen können. Dann wäre nur noch Dichte (über Inertia oder Material) oder Masse (über Inertia) offen. Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur
Beiträge: 21 Registriert: 27.04.2021
|
erstellt am: 26. Jan. 2024 14:33 <-- editieren / zitieren --> Unities abgeben:
Das Volumen wird jetzt auch berechnet: Set Vol = CATIA.ActiveDocument.Part.CreateReferenceFromObject(CATIA.ActiveDocument.Part.Bodies.Item(i)) Set SPAWorkbench1 = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench") Set Volumen_Messung = SPAWorkbench1.GetMeasurable(Vol) Koerper_Volumen = Round(Volumen_Messung.Volume * 1000000, 3) Herzlichen Dank für Deine kompetente und schnelle Hilfe, Bernd! Schönes WE! BG dddt1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |