| |
![](https://ww3.cad.de/php/image.php?resolution=width:20050) | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Aufruf von DLL aus Journal (2856 mal gelesen)
|
phimUoB Mitglied Ingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für phimUoB](/foren/ubb/pmimages/gbu.gif) 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: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
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
![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif) ![](/foren/ubb/Admin4.gif) ![](/foren/ubb/Admin5.gif) ![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif)
![Schreiben Sie einen Gästebucheintrag für mseufert](/foren/ubb/pmimages/gbu.gif) Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 11. Jun. 2008 10:06 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) 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
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für phimUoB](/foren/ubb/pmimages/gbu.gif) 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: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
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
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für phimUoB](/foren/ubb/pmimages/gbu.gif) 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: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
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
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für met](/foren/ubb/pmimages/gbu.gif) Beiträge: 137 Registriert: 23.07.2004
|
erstellt am: 04. Nov. 2008 12:13 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für phimUoB
|
![](https://ww4.cad.de/Ads/adview.php?what=zone:16178&n=aee1ae73)
| Fachmann für technische Gebäudeausrüstung (TGA) (m/w/d) | Wir sind ein leistungsstarkes und kundenorientiertes, kommunal verbundenes Immobilienunternehmen mit rund 12.800 Wohnungen. Zu unseren Kerngebieten gehören neben der Vermietung und Verwaltung von Wohnungen umfangreiche Neubau- und Modernisierungsmaßnahmen mit energetischen Innovationen sowie Bauträgermaßnahmen. Wir haben Pläne und Visionen. Das treibt uns täglich aufs Neue an, weiter Erfolgsgeschichte zu schreiben.... | Anzeige ansehen | Feste Anstellung |
|
phimUoB Mitglied Ingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für phimUoB](/foren/ubb/pmimages/gbu.gif) 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: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
|