找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 30872|回复: 59
打印 上一主题 下一主题

用.net开发UG(exe)版

[复制链接]
跳转到指定楼层
1
发表于 2005-3-20 17:13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 用.net2003建立一个控制台应用程序
2 将目录ugii\managed下除ManagedLoader.dll外的dll文件加入到你的工程里面的References
3 将下面的代码复制到你的Main函数里面
             theSession = Session.GetSession();
              
             theSession.Parts.NewDisplay("d:\\1.prt",NXOpen.Part.Units.Millimeters);
             NXOpen.Features.Feature nullFeatures_Feature = null;
             NXOpen.Part pp=theSession.Parts.Work;
             myblock = pp.Features.CreateBlockFeatureBuilder(nullFeatures_Feature) ;
             Point3d ps = new Point3d(0.0, 0.0, 0.0);
             myblock.SetOriginAndLengths(ps, "100", "100", "100");
             myblock.CommitFeature();
             NXOpen.PartSaveStatus status;
             theSession.Parts.Work.Save(NXOpen.Part.SaveComponents.True,NXOpen.Part.CloseAfterSave.False, out status);
  
4 修改项目的属性,将输出文件定位到ugii目录
5 编译直接运行生成的exe文件(不需要启动UG)
6 在d:\下会生成文件1.prt

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-3-20 18:45:53 | 只看该作者
张兄给的代码不是很全。
试了试,C#不熟。
  
过程如下:
1.建立C#工程。文件 | 新建 |项目,选择vc#项目,生成console台程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3
发表于 2005-3-20 18:53:17 | 只看该作者
2.在解决方案流浏栏里,在"引用"目录处,鼠标右键,选择"添加引用"。在弹出的"添加引用"对话框中,选择"项目"页,从文件"浏览"对话框中找到ugII\managed下除ManagedLoader.dll外的dll文件,把它们加到工程中。
  
看了看书,这里添加的库,在c#的书里叫程序集(Assemblies).
书上还说程序集内的成员就是命名空间,命名空间是程序集中所定义的类的内部结构组织。(我理解水平不高,不明白它说的啥,看看代码,好像是我们定义的类都是在命名空间中的,有C#学的好的兄弟,过来讲讲)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4
发表于 2005-3-20 19:11:35 | 只看该作者
一旦用了相应的程序集,可以使用using指令指名所引用的程序集的命名空间。
对于这个小程序,在代码开始处要加上
using NXOpen;
using NXOpen.UF;
  
然后张兄的程序完整之后如下:
using System;
using NXOpen;
using NXOpen.UF;
  
namespace drawBlock
{
   class Class1
   {
     public static Session theSession;
     public static UFSession theUFSession;
  
     static void Main(string[] args)
     {
       theSession = Session.GetSession();  
       theUFSession = UFSession.GetUFSession();  
       theSession.Parts.NewDisplay("d:\\1.prt",NXOpen.Part.Units.Millimeters);  
  
       NXOpen.Features.Feature nullFeatures_Feature = null;  
       NXOpen.Part pp=theSession.Parts.Work;
   
       NXOpen.Features.BlockFeatureBuilder myblock=pp.Features.CreateBlockFeatureBuilder(nullFeatures_Feature) ;
       Point3d ps = new Point3d(0.0, 0.0, 0.0);  
       myblock.SetOriginAndLengths(ps, "100", "100", "100");  
       myblock.CommitFeature();  
       NXOpen.PartSaveStatus status;  
       theSession.Parts.Work.Save(NXOpen.Part.SaveComponents.True,NXOpen.Part.CloseAfterSave.False, out status);
     }
   }
}
5
发表于 2005-3-20 19:23:27 | 只看该作者
把代码再改改,变成下面这样,仔细与上面的对比一下,起码能知道一点using的用处。
using System;
using NXOpen;
using NXOpen.Features; //加了一条
using NXOpen.UF;
  
namespace drawBlock
{
   class Class1
   {
     public static Session theSession;
     public static UFSession theUFSession;
  
     static void Main(string[] args)
     {
       theSession = Session.GetSession();  
       theUFSession = UFSession.GetUFSession();  
       theSession.Parts.NewDisplay("d:\\1.prt",NXOpen.Part.Units.Millimeters);  
  
       Feature nullFeatures_Feature = null; /注意这里与上面代码的不同之处
       NXOpen.Part pp=theSession.Parts.Work;
   
       BlockFeatureBuilder myblock=pp.Features.CreateBlockFeatureBuilder(nullFeatures_Feature) ;//注意这里与上面代码的不同之处
  
       Point3d ps = new Point3d(0.0, 0.0, 0.0);  
       myblock.SetOriginAndLengths(ps, "100", "100", "100");  
       myblock.CommitFeature();  
       NXOpen.PartSaveStatus status;  
       theSession.Parts.Work.Save(NXOpen.Part.SaveComponents.True,NXOpen.Part.CloseAfterSave.False, out status);
     }
   }
}
6
发表于 2005-3-20 19:27:21 | 只看该作者
修改文件输出路径,从菜单"项目"|属性,打开属性对话框,改改。
也可以不改。
在NX3的菜单"文件"|"执行"|"NX打开",找到你的程序,即可运行。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7
发表于 2005-3-20 19:34:30 | 只看该作者
高手过招讨论,小弟岂能错过,搬个凳子学东西。
顶!
8
发表于 2005-3-20 20:04:03 | 只看该作者
没学会走,先跑了一下。发现好多问题一时还不理解.
也是这两天,改用vc++.net2003,写代码,调试程序觉得比vc6好用多了。
  
想开始学习vc#.net对NX的二次开发,有没有兄弟扎个堆,一块干的?
9
发表于 2005-3-20 20:19:25 | 只看该作者
唉,我觉得自己好懒,想简单了事,就没有贴代码,想不到这么多问题。
谢谢键盘帮我指正。
10
发表于 2005-3-20 20:25:31 | 只看该作者
深夜摔键盘 wrote:
修改文件输出路径,从菜单"项目"|属性,打开属性对话框,改改。  
  也可以不改。  
  在NX3的菜单"文件"|"执行"|"NX打开",找到你的程序,即可运行。

  
修改一下输出路径,你可以直接运行你的exe程序,不需要启动UG
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 16:56 , Processed in 0.030726 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表