Hallo zusammen,
dies ist mein erster Beitrag. Ich habe nach einer Lösung gegoogelt, aber bisher nicht viel gefunden zu meinem Problem.
Aber ich bin oft hier gelandet und da dachte ich mir, meldest du dich mal an.
Ich bin erst seit 2-3 Wochen in diesem Themengebiet (NX, NX Open), also bitte habt Gnade =)
Mein Ziel ist es ein Programm zu schreiben, welches automatisch eine Baugruppe erstellt aus einer CSV-Datei.
In dieser stehen die Namen aller Baukomponenten und deren Koordinatensystemnamen (Bauteil-/Gegenbauteil-KS).
Das Laden der Bauteile in eine neu erstellte Baugruppe funktioniert bereits.
Ich programmiere in VS 2012 und nutze C#. Mithilfe von selbst aufgezeichneten Journals bin ich schon ein Stück weiter gekommen,
jedoch stehe ich noch vor folgendem Problem:
Ich habe alle geladenen Komponenten in die Baugruppe geladen und
müsste diese nun an bestimmte Stellen verschieben/ausrichten, um die Baugruppe anschließend abzuspeichern.
Das Ausrichten möchte ich von CSYS auf CSYS durchführen.
Per Hand funktioniert das verschieben. Ich mache das so:
- Wahl eines aktiven Bauteils im Baugruppen-Navigator, an das ich ein zweites Bauteil "anheften" möchte
- Setzen des WCS auf eines der Bezugskoordinatensysteme im Teile-Navigator
- Wahl des anzuheftenden Bauteils als aktives Bauteil
- Klick auf die Verschieben-Funktion im Teile-Navigator meines Wunsch-BKS
- Verschieben-Dialog "Von CSYS auf CSYS" taucht auf
- Wähle das zu verschiebende Objekt + dessen BKSe
- Klick auf "von CSYS"
- Wahl des Wunsch-BKS
- Klick auf "auf CSYS"
- Wahl des WCS
... und das Bauteil erhält seine korrekte Position.
Nun würde ich das gerne automatisieren, mithilfe von C#-Code.
Ich habe noch das Problem, dass ich keine Zugriffsmöglichkeit auf die BKSe finde.
Im Journalcode passiert dies mit:
NXOpen.Features.DatumCsys datumCsys1 = (NXOpen.Features.DatumCsys)workPart.Features.FindObject("DATUM_CSYS(2)");
Nur leider kann ich die FindObject-Methode nicht verwenden, da sie nur für Journals gedacht ist (Methode
erwartet einen JournalIdentifier).
Ich habe es probiert. Das Programm wirft die Exception, dass er nichts findet mit dem übergebenen Parameter.
Zugriff auf WorkParts ist ja durch WP.CoordinateSystems gegeben, aber Bauteile/Komponenten?
Hat jemand von Euch eine Ahnung wie ich sonst auf die BKSe der Bauteile zugreifen kann?
Danke fürs Lesen und ggf. Antworten.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP