| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Zugriff auf das Objekt NXOpen.CAM.Tool (.NET) (2240 mal gelesen)
|
AdMal Mitglied
Beiträge: 6 Registriert: 29.09.2009
|
erstellt am: 02. Nov. 2009 13:52 <-- editieren / zitieren --> Unities abgeben:
Hallo! Wie kann man auf Attribute des Objektes NXOpen.CAM.Tool zugreifen? Mir ist klar, dass man dafür erst eine Builder-Klasse erstellen muss. Beispiel für ein vorhandenes Tool t: NXOpen.CAM.MillToolBuilder millToolBuilder1; millToolBuilder1 = WorkPart.CAMSetup.CAMGroupCollection.CreateMillToolBuilder(t);
Mit dem millToolBuilder1 kann ich jetzt die Parameter des Werkzeuges auslesen. ABER: woher soll man wissen, WELCHEN Builder man nehmen muss? Dazu müsste man doch wissen welches Werkzeug hinter dem Tool-Objekt versteckt ist. Alle Tool-Objekte in meinem Programm haben den gleichen Type und SubType (Type=109, Subtype=0), obwohl es unterschiedliche Werkzeugtypen sind , d.h. diese Form der Werkzeugtyp-Erkennung ist unbrauchbar. Es wird auch keine Exception geworfen wenn man statt CreateMillToolBuilder zum Beispiel CreateDrillBoreToolBuilder nimmt. Danke im Voraus für die Antwort
Beste Grüße
[Diese Nachricht wurde von AdMal am 02. Nov. 2009 editiert.] 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: 03. Nov. 2009 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für AdMal
Hallo AdMal, bei anderen Buildern, den CreateMillToolBuilder kenn' ich grad nicht, ist es so, daß zum Initialisieren ein vorhandenes Objekt, in diesem Fall also ein Tool, übergeben wird. Von welchem Typ ist denn der Parameter t, den der Builder kriegt ? Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AdMal Mitglied
Beiträge: 6 Registriert: 29.09.2009
|
erstellt am: 06. Nov. 2009 09:07 <-- editieren / zitieren --> Unities abgeben:
Hallo mseufert! Das Objekt t ist vom Typ Tool. Es scheint so zu sein, dass es für alle Werkzeuge nur diesen einen Typ gibt. D.h. Tool enthält alle Attribute für alle möglichen Werkzeuge. Falls ein Werkzeug bestimmte Attribute nicht nutzt, werden sie auf 0 bzw. null gesetzt. Daher klappt die Anwendung eines beliebigen ToolBuilders. Die Frage ist: welcher Werkzeugtyp versteckt sich GERADE hinter dem Tool-Objekt? Die Antwort auf diese Frage würde dann zum richtigen ToolBuilder führen. So könnte man die Werkzeugparameter auslesen. Grüße 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: 09. Nov. 2009 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für AdMal
Hallo AdMal, Wenn t den Typ (die Klasse) Tool darstellt, ist's m.E. nur noch die Frage, ob es auch ein Objekt (eine Instanz) diesen Typs gibt. Das wäre dann das gesuchte Werkzeug. Vermutlich hast Du von t noch keine sog. Instanz erstellt. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AdMal Mitglied
Beiträge: 6 Registriert: 29.09.2009
|
erstellt am: 09. Nov. 2009 10:17 <-- editieren / zitieren --> Unities abgeben:
Hallo mseufert! Die Instanz des Objekts Tool ist da. Die Werkzeuge werden aus der Werkzeugliste eines CAM-Projektes ausgelesen. Alle Werkzeuge sind vom Typ Tool. "Type type = t.GetType();" liefert für alle Werkzeuge den Typ Tool, obwohl sie unterschiedlich sind. Grüße
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005 NX 7.5 - NX 2007 SolidWorks 2006 - 2021 Win 10
|
erstellt am: 09. Nov. 2009 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für AdMal
Hallo AdMal, Ohne mit der CAM API mal etwas gemacht zu haben: Nach Doku hat Tool keine abgeleiteten Klassen. Wenn Du also mit GetType() ein Tool-Objekt nach dem System-Typ fragst bekommst Du immer 'Tool'. Die Information um was für ein Werkzeug es sich tatsächlich handelt, muss also im Tool-Objekt gespeichert sein oder auf irgendeinem Weg über die Builder kommen. Wie weiss ich leider auch nicht. Bei einem kurzen Blick in die Doku hab' ich jedenfalls nichts passendes gefunden. Frag doch mal Siemens. Vielleich fehlt hier irgendwas in der .NET API (wäre ja nicht das erste Mal). Gruß Jan ------------------ Ingenieurbüro Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Ausbildung zum:zur Technischen Systemplaner:in (m/w/d) | Als Teil der weltweit tätigen STRABAG SE und Nummer eins im deutschen Hoch- und Ingenieurbau bauen wir bei ZÜBLIN laufend am Fortschritt. Einzigartigkeit und individuelle Stärken kennzeichnen dabei unsere Projekte und jede:n Einzelne:n von uns. Ob im Hoch- und Ingenieurbau, Spezialtiefbau, Tunnel-, Stahl- und Holzbau oder in der Bauwerkserhaltung ? wir denken Bauen weiter, um der innovativste und nachhaltigste Bautechnologiekonzern Europas zu werden.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
AdMal Mitglied
Beiträge: 6 Registriert: 29.09.2009
|
erstellt am: 09. Nov. 2009 11:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Jan! Danke. Das Tool-Objekt enthält leider keine Hinweise auf den Typ des Werkzeuges. Daher weiß ich nicht, welchen Builder ich nehmen soll. Ich werde wohl Siemens fragen müssen. Grüße AdMal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |