| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Open Part File - Dialog in NX Open .net (6382 mal gelesen)
|
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 10:01 <-- 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: 10. Jun. 2014 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für NXESPRESS
|
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 11:55 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von mseufert: In UF_UI könnte was dabei sein.Gruß, Michael
Hallo Michael, genau da habe ich auch als erstes geschaut und auch etwas äußerst vielversprechendes gefunden: UF_UI_ask_open_part_filename() "Displays the File-->Open File Selection Dialog." Leider wirft mir NX einen Fehler bei der Ausführung: "UF_UI[...] ist nicht deklariert. Auf das Objekt kann aufgrund der Schutzstufe nicht zugegriffen werden".
Habe aber alles Public... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 10. Jun. 2014 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für NXESPRESS
probier mal: Code: Option Strict Off Imports NXOpen Imports NXOpen.UF Imports NXOpen.UFUIModule har_PrintAllDrawings Dim theSession As Session = Session.GetSession() Dim theUFSession As UFSession = UFSession.GetUFSession() Dim defaultPrinterName As String = "" Sub Main() Dim workPart As Part = theSession.Parts.Work Dim lw As ListingWindow = theSession.ListingWindow Dim intResponse As Integer theUFSession.Ui.AskOpenPartFilename("hallo", False, intResponse) MsgBox(intResponse) End Sub End Module
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 12:45 <-- editieren / zitieren --> Unities abgeben:
Hallo jo.sch, leider wirft die Zeile theUFSession.Ui.AskOpenPartFilename("hallo", False, intResponse) folgenden Fehler: NXOpen.NXException: Internal error bei NXOpen.UF.UFUi.AskOpenPartFilename(String& file_name, Boolean& unused, Int32& response) bei har_PrintAllDrawings.Main() in C:\temp\tcua\NXJournals3020\journal.vb:Zeile 18.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 10. Jun. 2014 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für NXESPRESS
|
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 12:59 <-- editieren / zitieren --> Unities abgeben:
|
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 13:02 <-- editieren / zitieren --> Unities abgeben:
|
jo.sch Mitglied
Beiträge: 66 Registriert: 29.01.2013 NX7.5.5.4 MP2 NX8.5.3.3 SAP PLM mit Ectr
|
erstellt am: 10. Jun. 2014 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für NXESPRESS
|
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 10. Jun. 2014 13:19 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von jo.sch: schau mal in der API nach "UFUgmgr" und / oder "NXOpen.PDM" Was passiert denn, wenn du ein journal davon aufzeichnest?
Das Journal bietet leider wenig Aufschluss, das habe ich als allererstes versucht: Code: Dim theSession As Session = Session.GetSession() ' ---------------------------------------------- ' Menu: File->Open... ' ---------------------------------------------- Dim markId1 As Session.UndoMarkId markId1 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Start") theSession.SetUndoMarkName(markId1, "Open Part File Dialog") theSession.UndoToMark(markId1, Nothing) theSession.DeleteUndoMark(markId1, Nothing) theSession.DeleteUndoMark(markId1, Nothing)' ---------------------------------------------- ' Menu: Tools->Journal->Stop Recording ' ----------------------------------------------
Da fehlt doch was... oder habe ich hier einen Knick in der Optik? In der NXOpen.PDM kann ich leider nichts gutes finden, jedoch scheint die UFUgmgr nicht ganz verkehrt zu sein. Es gibt hier einige Wrapper-Methoden für die ask... Methoden, jetzt darfst du 3 mal raten, welche nicht dabei ist. Richtig: Ask_open_part [...] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NXESPRESS Mitglied Ingenieur
Beiträge: 20 Registriert: 04.06.2014 NX 8.5
|
erstellt am: 11. Jun. 2014 08:36 <-- editieren / zitieren --> Unities abgeben:
So, habe nun fast die komplette Referenz durchforstet, kann nichts finden. Die Journal-Erstellung macht es sich auch extrem einfach, der File-Dialog wird gekonnt ignoriert, stattdessen wird einfach der eingetragene Wert übergeben: Code: theSession.Parts.SetNonmasterSeedPartData("@DB/[...]") Dim basePart1 As BasePart Dim partLoadStatus1 As PartLoadStatus basePart1 = theSession.Parts.OpenBaseDisplay("@DB/[...]", partLoadStatus1) Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display partLoadStatus1.Dispose()
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Auftragsbearbeiter in der Kundenbetreuung (m/w/d) | Die Christian Koenen Group ist ein weltweit führender Anbieter von High-Tech-Präzisionswerkzeugen für den technischen Druck. Diese finden beispielsweise Anwendung in der Elektronik- und Halbleiterindustrie, im Bereich erneuerbare Energien und in der Medizintechnik. Wir sind ein mittelständisches Wachstumsunternehmen mit Hauptsitz in Ottobrunn bei München. Sowohl von unserem Hauptsitz als auch den Standorten Sangerhausen bei Halle und Gy?r in Ungarn bedienen wir Kunden weltweit.... | Anzeige ansehen | Kundenservice |
|
RobertM Mitglied
Beiträge: 223 Registriert: 03.12.2008 noch NX 8.5 + TC Teamcenter 9.1.2.2 64-Bit
|
erstellt am: 11. Sep. 2014 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für NXESPRESS
Hallo, bei funzt es mit TC 9.
Code: int _response = 0; string _filename = string.Empty; bool _unused = false; theUFSession.Ui.AskOpenPartFilename(ref _filename, ref _unused, out _response); MessageBox.Show(_filename);
Wichtig ist in C# ref und out bzw. VB ByRef ------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |