| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | Simcenter FLOEFD: Effizientes Thermomanagement elektronischer Baugruppen, ein Webinar am 23.09.2025
|
Autor
|
Thema: Aufruf von DLL aus Journal (3053 mal gelesen)
|
phimUoB Mitglied Ingenieur
 
 Beiträge: 107 Registriert: 08.08.2003 UG NX 4 CATIA/Smarteam V5R16 Linux, Oracle, VMWare
|
erstellt am: 11. Jun. 2008 08:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Hatte diese Frage auch schon im NX-Forum gestellt. Ist hier aber wohl besser aufgehoben. Kann ich mit dem DllImport aus dem Journal auch anderen beliebigen Code aufrufen? Wir möchten Stücklistendaten aus NX in einem Excel-Sheet ablegen. Ein Journal-Skript habe ich schon hingekrieg und auch eine DLL mit dem Excel-Code. Nur kriege ich den Aufruff nicht hin. Was sind die Anforderungen an die DLL? Momentan habe ich mit C# etwas gebastelt. Irgendwie scheinnt aber VBScript Probleme mit dem daraus resultierenden "Managed"-Code Probleme zu haben. Geht das aus dem Journal überhaupt? Oder geht das nur mit der dotnet-author Lizenz? Code:
Public Class TestDLL <DllImport("D:\SharpDevelop Projects\test\bin\Debug\test.dll")> _ Shared Function TestSub () End Function End Class
Code:
namespace test { public class MyClass { public static void TestSub() { System.Windows.Forms.MessageBox.Show("Hello DLL!"); } } }
------------------ Beitrag im Dassault Contact mag: Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
      
 Beiträge: 2731 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 11. Jun. 2008 10:06 <-- editieren / zitieren --> Unities abgeben:          Nur für phimUoB
Der Zugriff auf externe Programme (.exe) geht aus einem Journal heraus über die Process- Klasse. Ob das auch mit Libraries (.dll) funktioniert, kann ich nicht sagen. Falls extern auf die NX API zugegriffen wird, ist mit einiger Sicherheit ein Author- Lizenz erforderlich. 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: 11. Jun. 2008 10:28 <-- editieren / zitieren --> Unities abgeben:         
Nach einigem probieren habe ich es nun geschaft. Dynamic Binding war das richtige Stichwort: Code:
Imports System Imports System.ReflectionPublic Class TestDLL Shared Sub TestSub Dim a As [Assembly] = [Assembly].LoadFrom("D:\SharpDevelop Projects\test\bin\Debug\test.dll") Dim t As Type = a.GetType("MyTestDLL.MyClass") Dim p() As Object = {"Hello DLL"} t.GetMethod("TestSub").Invoke(Nothing, p) End Sub End Class
Ob nun in der DLL auch Methoden aus der NXopen.dll verwendet werden kann weis ich noch nicht. Ist ja aber für meine Anwendung auch nicht notwendig. ------------------ Beitrag im Dassault Contact mag: 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: 11. Jun. 2008 16:15 <-- editieren / zitieren --> Unities abgeben:         
Zumindest unter NX4 ist weder eine Author noch eine Runtime Lizenz notwendid und die DLL kann trotzdem alles: Code: Option Strict offImports System Imports System.Reflection Imports NXOpen Module NXEXample Public Class TestDLL Shared Sub TestSub(session As Session) Dim a As [Assembly] = [Assembly].LoadFrom("D:\SharpDevelop Projects\test\bin\Debug\test.dll") Dim t As Type = a.GetType("MyTestDLL.MyClass") Dim p() As Object = {session} t.GetMethod("TestSub").Invoke(Nothing, p) End Sub End Class
Sub Main Dim theSession as Session
theSession = Session.GetSession() TestDLL.TestSub(theSession) End Sub End Module
------------------ Beitrag im Dassault Contact mag: Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
met Mitglied CAD-Admin / Konstrukteur
 
 Beiträge: 142 Registriert: 23.07.2004
|
erstellt am: 04. Nov. 2008 12:13 <-- editieren / zitieren --> Unities abgeben:          Nur für phimUoB
|

| Fachplaner/in (m/w/d) ? Straßen- und Tiefbau | Wir sind NSI Nolting + Schwandt, ein etabliertes Ingenieurbüro mit über 25 Jahren Erfahrung ? familiär, modern, auf Augenhöhe. Unsere Projekte im Straßen- und Tiefbau sind so vielfältig wie unsere Kolleg:innen ? und jetzt fehlst nur noch du. Du willst nicht nur planen, sondern mitgestalten? Dann komm zu uns ? in ein Team, das dich nicht als Nummer sieht, sondern als Menschen. ... | Anzeige ansehen | Feste Anstellung |
|
phimUoB Mitglied Ingenieur
 
 Beiträge: 107 Registriert: 08.08.2003 UG NX 4 CATIA/Smarteam V5R16 Linux, Oracle, VMWare
|
erstellt am: 04. Nov. 2008 12:42 <-- editieren / zitieren --> Unities abgeben:         
|