| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Material in Journal auslesen (2462 mal gelesen)
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 137 Registriert: 23.07.2004
|
erstellt am: 18. Sep. 2007 09:43 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit folgenden Code gehe ich jede geöffnete Datei durch. Wie kann ich mir anzeigen lassen, ob bereits ein Visualisierungsmaterial zugewiesen wurde? Code:
Option Strict Off Imports System Imports NXOpenModule Journal Sub Main() Dim theSession As Session = Session.GetSession() theSession.ListingWindow.Open() For Each aktPart As Part In theSession.Parts theSession.ListingWindow.WriteLine(aktPart.FullPath) Next End Sub End Module
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: 18. Sep. 2007 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo met, Material wird m.W. einem Body zugewiesen, nicht dem Part. Daher ist es wohl erforderlich, durch die Bodies zu loopen. Versuch' doch erst mal einem Body Material zuzuweisen ( Journal aufzeichnen ), so findest Du evtl. die richtige(n) Klasse(n), um den Wert wieder auszulesen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 137 Registriert: 23.07.2004
|
erstellt am: 18. Sep. 2007 11:03 <-- editieren / zitieren --> Unities abgeben:
|
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: 19. Sep. 2007 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo met, wenn im Journal (auf welcher Version arbeitest Du ?? ) nichts aufgezeichnet wird, hilft evtl. eine Suche in der .NET-Reference. Es gibt leider einige Funktionen, die beim Record nicht erfasst werden, warum auch immer. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 137 Registriert: 23.07.2004
|
erstellt am: 20. Sep. 2007 09:17 <-- editieren / zitieren --> Unities abgeben:
|
Konrad Mitglied
Beiträge: 53 Registriert: 02.05.2001 Version NX 5, NX 6, NX 7
|
erstellt am: 20. Sep. 2007 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo, probiers doch mal damit (findet alle Körper im aktiven Teil, nicht ausgelegt auf Unterkomponenten!): ' =================================================================== ' '******************************************************************** Option Strict Off Imports System Imports NXOpen Imports System.Windows.Forms Module Selection Sub Main() Dim marksRecycled As Boolean Dim undoUnavailable As Boolean Dim undoMark As Session.UndoMarkId Dim length As Int32 Dim theSession As Session = Session.GetSession() ' FILTERING BY TYPE: ' Use in place of the journal code for "Select All" with filter ' type set to "Datums". 'undoMark = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Blank") 'Dim ddo() As DisplayableObject = theSession.Parts.Work.Bodies.ToArray() 'theSession.DisplayManager.BlankObjects(ddo) 'theSession.DisplayManager.MakeUpToDate() 'MessageBox.Show(ddo.Length.ToString() + " Bodies were blanked.") 'theSession.UndoLastNVisibleMarks(1, marksRecycled, undoUnavailable) ' FILTERING BY DETAILED TYPE: ' Use in place of the journal code for "Select All" with detailed filter type ' set to "Bodies". undoMark = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Blank")
length = 0 For Each obj As DisplayableObject In theSession.Parts.Work.Bodies If TypeOf obj Is Body Then obj.Blank() length = length + 1 End If Next theSession.DisplayManager.MakeUpToDate() MessageBox.Show(length.ToString() + " Bodies were blanked.") theSession.UndoLastNVisibleMarks(1, marksRecycled, undoUnavailable) End Sub
End Module ......läuft auf NX4 genauso wie auf NX5 nimm zu Beginn aber erst einmal ein einzelnes Teil zum dargestellten... Hab einfach zur Demo einmal die Funktion Blank und dann wieder Unblank verwendet. mfg Konrad 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: 20. Sep. 2007 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für met
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 137 Registriert: 23.07.2004
|
erstellt am: 21. Sep. 2007 10:04 <-- editieren / zitieren --> Unities abgeben:
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 137 Registriert: 23.07.2004 Solidworks 2017 TCE 9.1.3 NX 5 3ds max 2017/2019 CorelDraw 12
|
erstellt am: 24. Sep. 2007 13:21 <-- editieren / zitieren --> Unities abgeben:
|
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. Sep. 2007 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo met, zuerst wird die UFSession gebraucht, Bsp: Dim ufs As UFSession = UFSession.GetUFSession() Dann auf das Objekt zugreifen mit: ufs.Disp.AskMaterial(body_tag, mat_tag, mat_name) Den body_tag gibst Du vor, in mat_tag und mat_name werden die gesetzten Werte zurückgegeben. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
phimUoB Mitglied Ingenieur
Beiträge: 107 Registriert: 08.08.2003 UG NX 4 CATIA/Smarteam V5R16 Linux, Oracle, VMWare
|
erstellt am: 12. Jun. 2008 16:10 <-- editieren / zitieren --> Unities abgeben: Nur für met
|
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: 13. Jun. 2008 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für met
Zitat: In der NX4 API kann ich ufs.Disp.AskMaterial nicht finden... Gibts das erst ab NX5?
Ja, ab Version 5 der NXOpen.UF Zitat: Welche Möglichkeiten gibt es sonst noch?
m.W. keine, zumindest was VB.NET betrifft. Evtl. mal über GRIP versuchen ? Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
phimUoB Mitglied Ingenieur
Beiträge: 107 Registriert: 08.08.2003 UG NX 4 CATIA/Smarteam V5R16 Linux, Oracle, VMWare
|
erstellt am: 16. Jun. 2008 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für met
Grrr, so was... Es gibt in den Customer Defaults eine Einstellung, mit welcher man sich den Materialnamen in ein Attribut des Objekts oder des Parts schreiben lassen kann. Es gibt dort den Hinweis, dass dieses Feature wieder wegfallen kann. Wendet das jemand bei sich an? ------------------ Beitrag im Dassault Contact mag: Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Trudel Mitglied
Beiträge: 24 Registriert: 03.02.2009
|
erstellt am: 12. Mrz. 2009 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für met
Zitat: Original erstellt von mseufert: Hallo met,zuerst wird die UFSession gebraucht, Bsp: Dim ufs As UFSession = UFSession.GetUFSession() Dann auf das Objekt zugreifen mit: ufs.Disp.AskMaterial(body_tag, mat_tag, mat_name) Den body_tag gibst Du vor, in mat_tag und mat_name werden die gesetzten Werte zurückgegeben. Gruß, Michael
Hallo michael, hm. versteh noch nicht den Teil mit mat_tag und mat_name. was genau muss man da machen. Den teil davor find ich sehr gut. Hab auch festgestellt, dass das Journal nicht aufzeichnet, welches Material einem Körper zugewiesen wurde. Gruß Trudel [Diese Nachricht wurde von Trudel am 12. Mrz. 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: 12. Mrz. 2009 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo Trudel, body_tag ist Input, mat_tag und mat_name sind Output von AskMaterial. Die beiden Variablen legst Du zuvor an, nach Aufruf von AskMaterial stehen dann die ausgelesenen Werte drin. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Trudel Mitglied
Beiträge: 24 Registriert: 03.02.2009
|
erstellt am: 13. Mrz. 2009 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für met
|
| Technischer Zeichner (m/w/d) | Bei JUDO trifft Innovation auf Tradition. Seit über 85 Jahren sind wir Vorreiter auf dem Gebiet der Wasseraufbereitung. Das Erfolgskonzept unseres Familienunternehmens: in die Zukunft investieren, in Bewegung bleiben, nach neuen Wegen suchen ? und dabei unseren schwäbischen Wurzeln treu bleiben. Regelmäßig bringen wir Lösungen auf den internationalen Markt, die die Branche maßgeblich mitbestimmen.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
Overcast Mitglied
Beiträge: 111 Registriert: 21.12.2005 .
|
erstellt am: 13. Mrz. 2009 15:45 <-- editieren / zitieren --> Unities abgeben: Nur für met
|