| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
| Solid Edge: Erste Schritte, ein Webinar am 24.01.2025
|
Autor
|
Thema: Attributenwert in einer Baugruppe auslesen (4618 mal gelesen)
|
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 27. Mai. 2009 17:25 <-- editieren / zitieren --> Unities abgeben:
Hallo ich möchte die Attributte der einzelnen Komponenten in einer Baugruppe auslesen. Den Titel bekomme ich mit: Component rootComp = theSession.Parts.Display.ComponentAssembly.RootComponent; Component[] childComps = rootComp.GetChildren(); foreach (NXOpen.Assemblies.Component comps in rootComp.GetChildren()) { NXObject.AttributeInformation[] attributeInformations = comps.GetAttributeTitlesByType(NXObject.AttributeType.String); jetzt möchte ich aber noch den Wert, der zu dem Titel gehört rausbekommen. Beispiel: Titel: Material;Value: E335 Titel habe ich, wie komme ich an Value ran? Danke Gruß Lukas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 27. Mai. 2009 17:59 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Servus, mit comp.GetStringAttribute(ai.Title)
Code: public static void asdf(Part p) { Component rootComp = Session.GetSession().Parts.Display.ComponentAssembly.RootComponent; Component[] childComps = rootComp.GetChildren(); foreach (Component c in childComps) { NXObject.AttributeInformation[] attributeInformations = comps.GetAttributeTitlesByType(NXObject.AttributeType.String); foreach (NXObject.AttributeInformation ai in attributeInformations) { c.GetStringAttribute(ai.Title); } } }
------------------ Hopfen und Mals Gott erhalts Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 27. Mai. 2009 18:12 <-- editieren / zitieren --> Unities abgeben:
|
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 28. Mai. 2009 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe leider ein nächstes Problem: Es geht um die Constraints. Ich bekomme den Typ und gegebenfalls die Parameter aber ich kann nicht die betreffenden Bauteile rauslesen. Beispiel: Distance = 4 das habe ich. Fläche Kolben - Fläche Pleuel das brauche ich. ich habe versucht mit: foreach (NXOpen.Assemblies.Component comps in rootComp.GetChildren()) foreach (NXOpen.Positioning.ComponentConstraint con in comps.GetConstraints()) { foreach (NXOpen.Positioning.ConstraintReference refenz in con.GetReferences()) aber ohne erfolg:-( Und da noch eine Frage: Gibt es irgendwo eine vernünftige Beschreibung von den Klassen und Methoden in NX Open. Ich habe bis jetzt nur das NXOpen.Net API Reference aber das ist nicht mehr als eine Auflistung von allen Klassen ohne Beschreibung und Beziehungen. Danke für die Hilfe Gruß Lukas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 28. Mai. 2009 17:26 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Servus, Zitat: Es geht um die Constraints. Ich bekomme den Typ und gegebenfalls die Parameter aber ich kann nicht die betreffenden Bauteile rauslesen.
ja, da sehe ich auch nichts anderes. Vielleicht weiss da Seifert mehr. Ansonsten musst du mit UF arbeiten. Schaue dir mal "NXOpen.UF.UFAssem.Constraint" an. Dort kannst du die Informationen auslesen. Zitat: Und da noch eine Frage: Gibt es irgendwo eine vernünftige Beschreibung von den Klassen und Methoden in NX Open. Ich habe bis jetzt nur das NXOpen.Net API Reference aber das ist nicht mehr als eine Auflistung von allen Klassen ohne Beschreibung und Beziehungen.
Nicht das ich wüsste. Da würde Siemens den Konkurenten Informationen geben. Das möchte man lieber selber machen und viel Geld kassieren Gruß Thomas ------------------ Hopfen und Mals Gott erhalts Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2704 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 28. Mai. 2009 19:52 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Zitat: Original erstellt von Lukas1983: Ich habe bis jetzt nur das NXOpen.Net API Reference aber das ist nicht mehr als eine Auflistung von allen Klassen ohne Beschreibung und Beziehungen.
Hallo Lukas, ob die Methode "GetGeometry", sh. Anhang, das liefert, was Du brauchst, kannst Du ja mal versuchen. Ansonsten einfach weitersuchen, lesen und ausprobieren, was in der .NET API Reference drinsteht. Darin findest Du zwar nicht die mundgerechte Antwort, dafür ist diese Doku sicher nicht gemacht. Aber jedenfalls deutlich mehr als eine Auflistung ohne Beschreibung... Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 02. Jun. 2009 13:45 <-- editieren / zitieren --> Unities abgeben:
Hallo noch mal, ich habe wieder ein neues Problem(das mit den Referenzen habe ich erstmal auf die Seite geschoben): Ich durchsuche einen Part nach Features und bekomme eine liste mit: Code:
foreach (NXOpen.Features.Feature feature in p.Features.GetFeatures())
ich suche dann mit feature.FeatureType nach einer Bohrung.Bei dem Versuch den Durchmesser und den PMI Eintrag, der mit dieser Bohrung verknüpft ist, auszulesen scheitere ich. Könnt Ihr mit da noch ein mal helfen? DANKE Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tömme Mitglied Teamcenter Administrator
Beiträge: 195 Registriert: 19.12.2007 TC 11.5.0 mit NX12
|
erstellt am: 03. Jun. 2009 12:56 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
du scheinst sehr viele fragen zu haben. versuch dich doch mal mehr mit der API doku vertraut zu machen, wenn man erstmal ein gespür dafür entwickelt hat, wo was steht, die ist echt hilfreich. zusätzlich solltest du dir mal die samples im NX5 ordner angucken und bei UGSAnswer in der kategorie open samples suchen (suchbegriff visual basic net blablabla). dort habe ich glaubeich schonmal etwas über pmi usw. gefunden. die beispiele dort sind echt gold wert ------------------ hab doch garnix gemacht .. außer den server neugestartet .. war das etwa falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 03. Jun. 2009 19:57 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Zitat: die beispiele dort sind echt gold wert
Frage: Hast du die benötigte Lizenz? Gruß, Thomas ------------------ Hopfen und Mals Gott erhalts Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 04. Jun. 2009 12:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mir die Beispiele angeschaut aber es hat mich nicht wirklich weiter gebracht Das Problem ist, dass ich Maschinenbauer bin und habe nur wenig Ahnung von Programmierung. ( Schreibe gerade eine Diplomarbeit und da muss ich eine kleine Anwendung schreiben, die ein Paar Informationen aus dem CAD Modell auslesen kann) Könntet ihr mir vielleicht bischen präziser helfen? Vielen Dank Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lukas1983 Mitglied
Beiträge: 30 Registriert: 04.05.2009
|
erstellt am: 04. Jun. 2009 16:01 <-- editieren / zitieren --> Unities abgeben:
Hallo noch mal. ich habe ein Beispiel auf den UGS Support Seite gefunden(siehe unten), das die von mir benötigte Klasse enthält. Leider an der Stelle:
Code: Hole hole = (Hole)feat;
stürzt das Programm mit der Fehler (Obwohl es ja ein Orginalbeispiel von http://uganswer.ugs.com ist) :"Unable to cast object of type 'NXOpen.Features.BodyFeature' to type 'NXOpen.Features.Hole'"ab.Hat jemand schon so ein Problem? Wie kann ich es umgehen?
Code: using System; using NXOpen; using NXOpen.Features; using NXOpen.UF; static class edit_color_of_all_simple_hole_faces { public static void Main() { Session theSession = Session.GetSession(); Part workPart = theSession.Parts.Work; int nFaces = 0; int ii = 0; ListingWindow lw = theSession.ListingWindow; lw.Open(); // Get faces of all SIMPLE HOLE features FeatureCollection featColl = workPart.Features; foreach (Feature feat in featColl) { if (feat.FeatureType == "SIMPLE HOLE") { Hole hole = (Hole)feat; Face[] faces = hole.GetFaces(); nFaces = nFaces + faces.Length; // Now copy Face array to DisplayableObject array DisplayableObject[] objects = new DisplayableObject[faces.Length]; for (ii = 0; ii <= faces.Length - 1; ii++) { objects[ii] = faces[ii]; } // Finally apply the color to that faces DisplayModification displayModification1 = default(DisplayModification); displayModification1 = theSession.DisplayManager.NewDisplayModification(); displayModification1.ApplyToAllFaces = false; displayModification1.NewColor = 173; displayModification1.Apply(objects); displayModification1.Dispose(); } } lw.WriteLine("Changed color of " + nFaces + " faces."); } }
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 04. Jun. 2009 23:55 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Servus Lukas, kannst du Programmieren oder spielst du nur damit? Wer die Sprache nicht kann, solls am besten gleich lassen. Mit "is" kannst du Überprüfen, ob sich ein Typ in XYZ wandeln lässt. Ein Cast mit "as" wirft keine Fehlermeldung. Falls es nicht möglich ist, bekommst du ein null geliefert. Code: Hole hole = feat as Hole; if(hole == null) // Fehler// Was weiß ich
Gruß, Thomas ------------------ Hopfen und Mals Gott erhalts Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 07. Jun. 2009 00:20 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Das finde ich nicht fair! Ob ein Programmierer fragt oder ein Anfänger, ist doch doch nicht wichtig. Im Forum werden Antworten gesucht, keine Kommentare über den Inhalt der Frage oder das können! Finde ich nicht gut! Gruß Mario ------------------ Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Supermario Mitglied
Beiträge: 305 Registriert: 27.02.2004 UG NX10 TCUA
|
erstellt am: 07. Jun. 2009 00:22 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
Zitat: Original erstellt von Supermario: Das finde ich nicht fair! Ob ein Programmierer fragt oder ein Anfänger, ist doch doch nicht wichtig. Im Forum werden Antworten gesucht, keine Kommentare über den Inhalt der Frage oder das Wissen!Finde ich nicht gut! Gruß Mario
------------------ Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur Elektrotechnik Schienenfahrzeuge (m/w/d) | Als Tochter der DB Engineering & Consulting sind wir Teil von einem der größten Ingenieurdienstleister Deutschlands. Unsere Erfolgsfaktoren sind Teamgeist und Weiterbildung! Gemeinsam realisieren wir so Projekte als Know-how Partner unserer Kunden. Dabei stellen wir z.B. Safety & Security Anforderungen bei der Systementwicklung sicher oder übernehmen Aufgaben von der klassischen Software-Entwicklung, ... | Anzeige ansehen | Konstruktion, Visualisierung |
|
Siassei Mitglied MB - Student
Beiträge: 490 Registriert: 08.07.2007 SWX NX 3 und höher ;) Windows and UNIX<P>C, C++, Java, Phyton,...</P>
|
erstellt am: 07. Jun. 2009 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für Lukas1983
|