| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| | |
 | Anwender CAD mit Siemens NX-Basis , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: Aufruf von DLL aus Journal (3117 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: 2736 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
|

| | Abrechner (m/w/d) Hochbau | Auf uns bauen ? mit uns wachsen Wir könnten dir nun erzählen, dass wir dynamisch, innovativ und international sind. Sind wir auch. Unterscheidet uns das von anderen Unternehmen? Nein, nicht wirklich. Was uns einzigartig macht? Die Menschen. Gemeinsam mit unseren Mitarbeiterinnen und Mitarbeitern möchten wir Erfolge feiern und die Kompetenzen jedes und jeder Einzelnen individuell fördern.... | | Anzeige ansehen | Handwerk, Dienstleistung und Fertigung |
|
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:         
|