| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX | | |  | Solid Edge 2025 First Look Online-Event 14.11.2025, eine Pressemitteilung
|
Autor
|
Thema: NXOpen Trimmen von Flächen / Konvertierung Feature zu Body (1357 mal gelesen)
|
SunOnTheRun Mitglied Ingenieur

 Beiträge: 14 Registriert: 22.04.2014
|
erstellt am: 22. Apr. 2014 10:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich bin neu hier im Forum und auch ganz frisch in der NXOpen Programmierung und arbeite gerade an einem kleinen Programm, bei dem ich ein wenig Hilfe gebrauchen könnte. Ich habe leider nix passendes bis jetzt im Forum gefunden. Ich arbeite mit NX 8.5, VB und der Journal Funktion um mir mein Programm zu schreiben. Ich habe bis jetzt einige Geometrie erzeugen können und hänge jetzt an dem Punkt an dem ich 2 Revolve Flächen aneinander trimmen möchte. Über die Journal Aufnahme hat das ganz gut geklappt, da ich das ganze jedoch assoziativ benötige musste ich den Code ja ein wenig umschreiben. Mein Problem ist jetzt das ich das Feature der Revolvefunktion an die Trimmed Sheet Funktion übergeben muss und das funktioniert hier nicht da er ein Feature in ein Body umwandeln muss und mir dafür einen Fehler ausgibt. Ich habe es schon mit verschiedenen Wegen probiert, aber alles erfolglos. hier ist mal der Codeschnipsel. Dim nullFeatures_Trim As Features.Feature = Nothing Dim trimSheetBuilderT1 As Features.TrimSheetBuilder trimSheetBuilderT1 = workPart.Features.CreateTrimsheetBuilder(nullFeatures_Trim)
trimSheetBuilderT1.Tolerance = 0.001 Dim bodyT1help As Features.Feature = CType(revfeatureH1, Features.Feature) Dim bodyT1 As Body = bodyT1help.GetEntities(0) Dim addedT1 As Boolean addedT1 = trimSheetBuilderT1.TargetBodies.Add(bodyT1) (revfeatureH1 ist der Name des im Revolve enstandenen Features)
Ich habe es hier mit .GetEntities(0) probiert, was bei der Konvertierung einer assoziativen linie zu einer normalen Linie gut funktioniert hatte. Jetzt gibt er mir hierfür folgenden Fehler aus: "System.IndexOutOfRangeException: Index was outside the bounds of the array" und diesen Fehler verstehe ich nicht, da ich ja speziell kein Array definiert habe, bzw. auch nicht weiß an welcher Stelle ich das definieren müsste. Ich hoffe ihr könnt mir weiterhelfen! Danke schonmal! LG SunOnTheRun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
      
 Beiträge: 2723 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 22. Apr. 2014 14:21 <-- editieren / zitieren --> Unities abgeben:          Nur für SunOnTheRun
Hallo SunOnTheRun, ich hoffe mal, die Sonne rennt uns jetzt nicht weg, sondern scheint noch ein paar Jährchen auf unsere Kugel Zitat: ... da er ein Feature in ein Body umwandeln muss ...
Das wird so nicht funktionieren, da wird kein Ctype, DirectCast etc. mitspielen. Was Du brauchst, ist der Body, den das Feature erzeugt, keine Umwandlung. Das hört sich jetzt vielleicht nach Haarspalterei an, aber bei NX und speziell bei NXOpen ist genau diese Unterscheidung zwischen Feature und Body bzw. anderen Objekten wie Linien immer wieder ein gern genommener Stolperstein. Aber zum Glück hast Du ja das Forum gefunden und mit dem RevolveFeature auch ein sog. BodyFeature. Das bietet die Methode Getbodies() an. Falls der Revolve die Methode nicht direkt enthält, ist jetzt die Umwandlung von Feature in BodyFeature möglich, anschliessend BodyFeature.Getbodies(). Das liefert ein Array mit den, vom Feature erzeugten Bodies ab. I.d.R. ist es nur einer, dann ist Index 0 i.O. Aber Vorsicht, es muss nicht immer so sein. Mit dem Body kannst du dann mal den TrimsheetBuilder füttern. Die nächste Hürde könnte dann der Unterschied zwischen SolidBody und SheetBody sein. Also mal nachschauen, was der Revolve liefert und evtl. auf SheetBody umstellen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
SunOnTheRun Mitglied Ingenieur

 Beiträge: 14 Registriert: 22.04.2014
|
erstellt am: 23. Apr. 2014 10:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo Michael, Vielen dank für die schnelle Hilfe, hab es ebend ausprobiert und jetzt funktioniert alles 1A . Und ich hoffe auch das die Sonne noch eine bisschen da bleibt und nicht wegrennt
Ich werd hier bestimmt noch ein paar Beiträge schreiben, da mein kleines Programm jetzt doch größere Ausmaße annehmen soll, also macht euch schonmal drauf gefasst lg Sören Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |