Autor
|
Thema: Gewicht eines Bodies im Produkt (1244 mal gelesen)
|
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 07. Jan. 2014 08:28 <-- editieren / zitieren --> Unities abgeben:
Hallo gestern habe ich dieses Forum durchstöbert um folgender Frage nachzugehen: Wie kann ich aus einer Selection im Produkt, die alle Bodies mit Materialien sucht und findet, das Gewicht entlocken. D.h. in der Selection steckt das gefundene Part/Body/Material als Ergebnis. Wie kann ich aus dieser Selection den Body ansprechen um an sein Gewicht/Mass zu kommen? ------------------ mfg Erich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jan. 2014 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus Schau mal hier findest du was ähnliches (Body in einem Part Messen). Vielleicht kannst du den Code anpassen, das du nur den entsprechenden Body aus der Selektion übergeben musst. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 07. Jan. 2014 09:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Danke für diesen Hinweis, den kannte ich bereits. Allerdings geht dieses Beispiel immer von einem iPart aus. Ich hingegen gehe vom Produkt mit einer Selection los. Gerne weitere Vorschläge. Danke. ------------------ mfg Erich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jan. 2014 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus Dann musst du den Code eben entsprechend anpassen, dass nur der Körper übergeben werden muss. Anbei ein Beispiel (nur grob getestet): Code: Sub Test()Dim productDocument1 As ProductDocument Dim objInertia As Inertia Dim selection1 As Object Dim objBody As Body Set productDocument1 = CATIA.ActiveDocument Set selection1 = productDocument1.Selection selection1.Search "CATGmoSearch.BodyFeature,all" Set objBody = selection1.Item2(1).Value Set objInertia = GetBodyInertiaInAProduct(objBody) If Not (objInertia Is Nothing) Then 'Retrieve the mass just to show it worked MsgBox objInertia.Mass Else MsgBox "The Inertia could not be retrieved!" End If End Sub Function GetBodyInertiaInAProduct(ByRef iBody As Body) As Inertia 'If successful, this function will return an inertia object Dim objSPAWorkbench As Workbench Dim objInertia As Inertia Dim iPartDocument As PartDocument 'On Error Resume Next Set objSPAWorkbench = iBody.Parent.Parent.Parent.GetWorkbench("SPAWorkbench") Set objInertia = objSPAWorkbench.Inertias.Add(iBody) If Err.Number = 0 Then Set GetBodyInertiaInAProduct = objInertia Else Set GetBodyInertiaInAProduct = Nothing End If End Function
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 07. Jan. 2014 10:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd vielen Dank für den schnellen Hinweis. Leider wußte ich nicht, oder bin bisher noch nicht darauf hingewiesen worden, dass es auch ein Item2() gibt. Gibt es hier noch weitere? Ggfs. kleiner Hinweis für Suchende! D.h. nach kleiner Anpassung komme ich weiter. Danke ------------------ mfg Erich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 07. Jan. 2014 13:54 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Schau mal in die V5Automation.chm, da steht das Selection.Item2() drin und soll auch verwendet werden. :-) Selbiges gilt für Count2() der Selection. Mehr Nummern gibt es nicht. Eigentlich hätte bereits in R18 Item2() wieder zu Item() werden müssen und Item2() mit R20 abgeschafft werden müssen, aber Dassault hat es scheinbar belassen wie es ist. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |