| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: getObeject(,NX.Application) (1893 mal gelesen)
|
sm1212 Mitglied
Beiträge: 3 Registriert: 18.10.2013 NX7.5, Visual Studio 2010, Win 7
|
erstellt am: 23. Okt. 2013 19:38 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe nach langer Internet- und Forenrecherche leider keine funktionierende Lösung gefunden. Ich möchte das manuelle Aufrufen eines Progamms über Datei->Ausführen->UGOpen eliminieren. Der Befehl: Dim excelObj As Object = GetObject(, "Excel.Application") funktioniert mit NX leider nicht. Diese Codezeile: Dim Session As Session = DirectCast(Activator.GetObject(GetType(Session), "http://localhost:?????/NXOpenSession"), Session) funktionier leider auch nicht bzw. weiß ich nicht welche localhostnummer angegeben werden muss. Vielen Dank für Eure Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Ehrenmitglied V.I.P. h.c. cadadmin
Beiträge: 5397 Registriert: 19.05.2000
|
erstellt am: 23. Okt. 2013 20:31 <-- editieren / zitieren --> Unities abgeben: Nur für sm1212
|
sm1212 Mitglied
Beiträge: 3 Registriert: 18.10.2013 NX7.5, Visual Studio 2010, Win 7
|
erstellt am: 24. Okt. 2013 09:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, Ich muss ein abgeschlossenes Projekt, welches auf CATIA-Basis durchgeführt wurde auf NX umändern. Auf der CATIA-Seite wurde eine Matlab-Excel-CATIA Schnittstelle ausgeführt, welche Punkte einlesen (nach Matlab) und schreiben (nach CATIA) kann (natürlich auch visualisiert) und eine Kollisionsüberprüfung durchführt. Die einzelnen VBA Funktionen werden über Matlab gestartet und automatisch in CATIA ausgeführt (open_file, get_Points, write_Points,…..). Das funktioniert via VBA recht gut (langsam, Code ungeschützt, EXCEL …). Beispielcode: Function open_file(sFilePath As String, Visualization_flag As Integer, CAT_name_file As String) On Error Resume Next Dim CATIA As Object Set CATIA = GetObject(, "CATIA.Application") On Error GoTo 0 If CATIA Is Nothing Then Set CATIA = CreateObject("CATIA.Application") End If If Visualization_flag = 1 Then CATIA.Visible = True Else CATIA.Visible = False End If On Error GoTo ErrHandler_Opening_File CAT_name_file = CAT_name_file CATIA.Windows.Item(CAT_name_file).Activate open_file = CAT_name_file Exit Function ErrHandler_Opening_File: Set iPartDoc = CATIA.Documents.Open(sFilePath) End Function Die Schnittstelle Matlab->NX kann ich beispielsweise über COM Klassen realisieren. Ich bin absoluter Programmierneuling und habe keine andere Vernünftige Lösung gefunden. Nun muss ich aus diesem vb.net Code NX-Starten oder auf eine laufende Session zugreifen. Für CATIA kann man das einfach über den Befehl getobject(,“CATIA.Application“) machen.
Meine Frage: Wie funktioniert das in NX? Ein manueller Aufruf über Datei->Ausführen->NXOpen (strl+U) ist nicht erwünscht Ich hoffe mein Problem halbwegs verständlich formuliert zu haben http://ww3.cad.de/foren/ubb/icons/icon12.gif Vielen Dank 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: 24. Okt. 2013 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für sm1212
Zitat: Original erstellt von sm1212: ... Ich muss ein abgeschlossenes Projekt, welches auf CATIA-Basis durchgeführt wurde auf NX umändern...... Ich bin absoluter Programmierneuling ...
Hallo sm1212, nichts für ungut, aber diese beiden Sätze lassen vermuten, daß da eine erhebliche Kluft besteht. Das Portieren einer vollständigen Anwendung inkl. Remote- Zugriff, Excel etc. ist kein Kinderspiel und m.E. liegt die Latte für einen Programmierneuling viel zu hoch. Bevor Du also hundert Mal mit dem Kopf gegen die Wand rennst: Vergiss zunächst VBA und alles, was zuvor programmiert wurde. Schau' nach einfachen VB.NET/NXOpen - Beipielen, lies' die Doku unter Automation->NXOpen und mach' Dich erst mal mit der Materie vertraut, bevor Du ein solches Projekt angehst. Dazu findest Du hier im Forum genügend Anregungen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sm1212 Mitglied
Beiträge: 3 Registriert: 18.10.2013 NX7.5, Visual Studio 2010, Win 7
|
erstellt am: 24. Okt. 2013 13:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, vielen Dank für deine Antwort. Daraus entnehme ich, dass der einfache Befehl [getobject(,"NX.Application)] nicht implementiert ist. Der externe Aufruf kann also nur über die REMOTE-Funktion bewerkstelligt werden? Den vb.net Code habe ich bereits zum größten Teil fertig gestellt (interaktiver Aufruf). Vielen Dank für deine Hilfe SG Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Ingenieur Elektrotechnik für Transformatoren (w/m/d) | Hitachi Energy hat es sich zum Ziel gesetzt, eine nachhaltige Energiezukunft für alle zu fördern. Wir versorgen Häuser, Schulen, Krankenhäuser und Fabriken mit Strom. Werden Sie Teil unseres Unternehmens und arbeiten Sie mit engagierten Kollegen zusammen. Dabei lernen Sie und entwickeln sich in Projekten weiter, die einen großen Einfluss auf unsere Gemeinschaft und die Gesellschaft haben.... | Anzeige ansehen | Elektrotechnik, Elektronik |
|
wladlaw Mitglied Ingenieur
Beiträge: 72 Registriert: 11.01.2012
|
erstellt am: 25. Okt. 2013 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für sm1212
Hallo Markus, schau mal Thread http://ww3.cad.de/foren/ubb/Forum442/HTML/000849.shtml#000003. Vielleicht findest Du dort etwas nützliches... Auf GTAC-Seite könnte man ein Beispiel zum Thema "Remote Zugriff" finden. Wenn Du den Pfad %UGII_BASE_DIR%\UGOPEN\SampleNXOpenApplications\.NET anschaust, findest Du dort ein Beispiel zu diesem Thema im Ordner 'RemotingExample". ------------------ Gruß Wladimir [Diese Nachricht wurde von wladlaw am 25. Okt. 2013 editiert.] [Diese Nachricht wurde von wladlaw am 04. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|