使用.NET(C#或VB.NET)开发NX外部程序

1.如何不用将exe程序拷贝到UGII目录下运行?

答:在调用NX Open命令函数前,将当前目录移动到NX安装目录\UGII\,NX安装目录必须和环境变量UGII_BASE_DIR的值一致,否则报错。可以使用如下代码:

Dim instalDir As String = Environment.GetEnvironmentVariable("UGII_BASE_DIR")
System.IO.Directory.SetCurrentDirectory(instalDir)

2.我的外部程序很小,不想打包NX的.NET库文件一起发布,而是使用用户的库文件,要怎样做呢?

答:第一步,显示项目所有文件,展开Application.myapp文件,再打开Application.Designer.vb文件,为MyApplication添加Startup事件回调函数,在里面添加如下代码:

Dim ufdir As String = Environment.GetEnvironmentVariable("UGII_BASE_DIR")
 Reflection.Assembly.LoadFrom(IO.Path.Combine(ufdir, "\UGII\managed\NXOpen.dll"))
Reflection.Assembly.LoadFrom(IO.Path.Combine(ufdir, "\UGII\managed\NXOpen.UF.dll"))
Reflection.Assembly.LoadFrom(IO.Path.Combine(ufdir, "\UGII\managed\NXOpen.Utilities.dll"))

第二步,修改程序运行配置文件:你的exe程序文件名.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="NXOpen"  culture="neutral" publicKeyToken="null"/>
                <codeBase version="8.0.2.2" href="FILE://D:\Program Files\Siemens\NX 8.0\UGII\managed\NXOpen.dll"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="NXOpen.UF"  culture="neutral" publicKeyToken="null"/>
                <codeBase version="8.0.2.2" href="FILE://D:\Program Files\Siemens\NX 8.0\UGII\managed\NXOpen.UF.dll"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="NXOpen.Utilities"  culture="neutral" publicKeyToken="null"/>
                <codeBase version="4.0.0.0" href="FILE://D:\Program Files\Siemens\NX 8.0\UGII\managed\NXOpen.Utilities.dll"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>
时间: 2024-10-25 05:58:42

使用.NET(C#或VB.NET)开发NX外部程序的相关文章

VB.NET开发PDA环境搭建

我开发的是应用,没有涉及到底层啊,烧板子啊之类的,之前我也从没有接触过PDA和VB.NET,一切现学现卖.OK,开卖. 1.预备 我的系统是WIN7,32位. a)如果你有个PDA,再简单不过,插上电脑,自动搜索驱动,会自动安装一个Windows Mobile设备中心的软件,显示你的PDA已经连上了电脑. b)如果你没有PDA,更简单,运行的时候选择合适的模拟器就OK了. 2.VS2008中文版 要做PDA的应用,只能用VS2008或者以前的版本,VS2010之后已经不支持. 我这里用的是VB.

VB.NET开发中遇到的一点小问题

在用vb.net开发的security support时,遇到一个问题,在trainingCourses.aspx页面上增加了一个HyperLink控件 <asp:HyperLink runat="server" ID="hlUSOnline" Text="Show Online Training Course" NavigateUrl="/secure/trainingCourses.aspx?c=en-US&o=Tru

NX二次开发-NX+VS写代码设断点调试技巧

在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对.2.VS设断点-添加进程调试,来看输入输出值对不对3.UF_CALL也就是UF_get_fail_message这个函数,来看函数自己用的对不对.4.查看NX-Help-LogFile(日志),拖到最后看提示了哪些错误. 我一般用的比较多的是设断点调试,这里先说设断点调试.其他方法改天再写. 写举一

VB.NET开发中遇到的一个小问题

在修改公司用vb.net的写的代码时,遇到一个小问题 页面上有一个button, ID是btnNext, 在属性页中,它的click事件对应的是cmdNext, 我像在c#中一样,在属性页中双击cmdNext,自动进入.vb后台代码,产生事件 Protected Sub cmdNext(sender As Object, e As System.EventArgs) Handles btnNext.Click //一些处理代码 End Sub 运行debug调试时,发现这个代码会执行两次,怎么都

【程序开发小记】VB.NET音乐播放器

写在前面的话: 为了营造一个很好的交流学习的环境,也是为了迎合学校毕业设计的需求,开通了博客园.在下学期伊始,会每星期更新毕业设计的进度.博客业已开通,为了交流学习,要只是更新毕业设计的进度显得有些做作.博主并不是好看书时写些小评的主儿,遂不知有和内容好献于此,只得将之前课程中或是实习时开发的程序在此做个简述. 因这些项目也是博主心血,也是怕某些学弟学妹直接搬用引发事端,不便将源码原封不动摆在这里,在此只做简要说明. 若有意愿交流学习,可以在评论或是私信留下联系方式. 话不多说,接下来直奔主题.

演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)

概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引了更多开发人员的关注. Xamarin.Forms用起来比较方便,因为用这种方式编写一次就能到处运行.但是不知道为什么,Xamarin目前只完整支持C#.他们宣称支持的F#实际上只是比C#多了一些文档和不常用的工具上的支持,缺少Xaml后代码生成器等重要功能支持. 而VB就更受冷落了.用户建议Xam

天天用的开发环境,你真的了解吗?

无论你从事的是Donet,还是Java:无论你是架构师,还是编码的开发人员.可以这么说,几乎每个程序员,都或多或少的有自己的编程习惯.不管是VS,还是Eclipse.MyEclipse.NetBeans,亦或是其他的开发工具,大家都会根据自己的性格与习惯,个性化的设置自己的开发工具. 我们使用这些工具,可以快速的进行软件开发,但是我想问的是:对于这些工具是怎么样工作的,你都了解吗?我想未必. VB 之前,我做过一年Virtual Basic的开发.VB很简单,语法检查不严格,尽管写的代码非常不规

AutoCAD二次开发&mdash;&mdash;AutoCAD.NET API开发环境搭建

AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(COM),1997年VBA,1998年Visual Lisp,2006年.net API(DLL). 趋势和方向:AutoCAD.net API(AutoCAD20

.NET AutoCAD二次开发之路(一、基础篇)

学习AutoCAD二次开发已经有一段时间了,磕磕碰碰,十分的艰辛枯燥.但回想一下还是会有些小激动,嘿嘿!最近这段时间一直都有这么个想法,就是将我学习CAD二次开发的过程用文字的方式记录下来,形成系列,并定期更新.主要内容就是记录自己每天学习过程中所碰见的问题和感悟,并总结今天所学到的内容.目的一是激励自己坚持下去,看着自己一步一步的提高,多有成就感.还有就是和大家积极沟通,希望能够指正我的错误,减少我的弯路.再者就是望能给后面学习的人一点点借鉴经验,好吧其实还有点装B的心里.废话不多说就进入今天