| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Massenträgheitsmoment ermitteln (UFWeight) (1734 mal gelesen)
|
dkpiv Mitglied
Beiträge: 4 Registriert: 22.03.2013 NX 7.5.5.4 MP2
|
erstellt am: 22. Mrz. 2013 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, vielecht kann mir ja jemand behilflich sein? Ich möchte das Masssenträgheitsmoment eines Parts ermitteln Programiersprache ist VB.NET. Ich mache zuerst eine Selektion des Parts und möchte anschließend das Massenträgheitsmoment ermitteln. Ein Auszu inkl der Fehlermeldung Dim massp As UFWeight.UnitsType = UFWeight.UnitsType.UnitsKmm Dim mm As UFWeight.Properties Dim Z = mm.moments_of_inertia Dim bodycoll As NXOpen.BodyCollection = _wP.Bodies For Each body As Body In bodycoll objects1(0) = body 'Dim zuMessenderBody As Body = Objekt measureBodies1 = ufw.AssertPartProps(Objekt.Tag, Z) Next --> Bei Z steht "Der WErt vom Typ 1-dimensionales array von Double kann nicht in NXOpen.UF.UFweight.Properties konvertiert werden" Bei Bedarf werde ich mehr Code Einstellen. Vielen Dank im Voraus und schönes WE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 22. Mrz. 2013 13:25 <-- editieren / zitieren --> Unities abgeben: Nur für dkpiv
Hallo dkpiv, um solche Fehler zu vermeiden, hilft es, jede Variable mit ihrem Typen zu deklarieren, also: Code: Dim var as Type
. Entsprechend der verwendeten Funktion müssen die übergebenen Parameter dem geforderten Typ entsprechen. Welche Typen AssertPartProps erwartet, zeigt entweder die Entwicklerumgebung oder ein Blick in die Dokumentation net_ref.chm. Ich würde mal drauf tippen, daß Code: measureBodies1 = ufw.AssertPartProps(Objekt.Tag, mm)
funktioniert, falls Code: Objekt.Tag
einen vernünftigen Wert hat. Das geht aus dem Schnipsel nicht hervor.Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dkpiv Mitglied
Beiträge: 4 Registriert: 22.03.2013 NX 7.5.5.4 MP2
|
erstellt am: 24. Mrz. 2013 14:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, vielen Dank für deinen Rat, ich habe Ihn versucht zu befolgen (siehe Anhang ganzes Programm). Leider habe ich das Problem, dass ich nicht weiß wie man Das Massentraegheitsmoment richtig ermittelt, wenn ich mein Programm laufen lasse, bekomme ich nur die Meldung "System.Double[]" (Siehe Anhang) was bedeutet, dass ich kein Wert übergeben habe oder bekomme. Kannst du mich vielleicht in die richtige Richtung lenken? Vielen Dank! Grüße Damiano
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dkpiv Mitglied
Beiträge: 4 Registriert: 22.03.2013 NX 7.5.5.4 MP2
|
erstellt am: 24. Mrz. 2013 18:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, ich hab noch mal auf der GTAC Seite nach Beispielen gesucht und bin fündig geworden (siehe Anhang). Das Beispiel liefert mir alle Infos die ich benötige. Falls es noch eine andere Möglichkeit gibt bin ich über jeden Rat dankbar. Bis dahin, Vielen Dank und Grüße Damiano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 25. Mrz. 2013 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für dkpiv
Hallo Damiano, "System.Double[]" heißt, daß es sich bei der Variable um ein Array handelt. Um auf ein einzelnes Element davon zuzugreifen, muss ein Index angegeben werden. Falls Du selbst programmieren willst, wären einige grundlegende VB-Kenntnisse durchaus hilfreich. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Projektingenieur:in Automatisierungstechnik (m/w/d) | Du suchst einen Arbeitgeber, der Dir spannende Herausforderungen und langfristige Perspektiven bietet? An unserem Lausitzer Produktionsstandort in Schwarzheide arbeiten 2000 Kollegen und Kolleginnen gemeinsam daran, dass die Chemie stimmt. Wir setzen auf Innovation und Nachhaltigkeit. Unsere vier Unternehmenswerte kreativ, offen, verantwortungsvoll und unternehmerisch legen fest, wie wir miteinander arbeiten.... | Anzeige ansehen | Projektmanagement |
|
dkpiv Mitglied
Beiträge: 4 Registriert: 22.03.2013 NX 7.5.5.4 MP2
|
erstellt am: 25. Mrz. 2013 10:27 <-- editieren / zitieren --> Unities abgeben:
|