NX二次开发-使用NXOPEN C#向导模板做开发以及如何查看C#帮助文档写代码

今天是情人节,单身狗晚上闲着无聊,研究了一下NXOPEN C#开发,

我发现有UFUN C和NXOPEN C++的基础在转做NXOPEN C#开发,上手还是蛮快的,开发套路原理都是一样的。

在补充点C#的语法知识,基本上就可以去做项目了(当然了,我连C++都还没学明白,这里也只是兴趣爱好,现学现卖,写了写博客,有不对的地方,还请各位留言纠正)。

NX11+VS2013

1.使用NXOPEN C#向导模板

 

如果我们想要使用C#封装的C UFUN函数,就勾选这里。

 

 

2.查看NXOPEN C#帮助

 下载两个帮助文档

 打开net_ref_uf.chm那个文档

 进入UF的命名空间,使用封装的UF函数,以创建块为例,学会如何查找函数。

根据以前使用UFUN C的经验,知道创建块是在modl头文件里的。

找到创建块的函数

 

 使用介绍

 代码

1 FeatureSigns sign = FeatureSigns.Nullsign;//定义布尔
2 double[] cornet_pt = { 100.0, 0.0, 0.0 };//定义原点
3 string[] edge_len = { "100.0", "100.0", "100.0" };//定义长宽高
4 Tag blk_obj_id = Tag.Null;
5 theUfSession.Modl.CreateBlock1(sign, cornet_pt, edge_len, out blk_obj_id);
6 
7 Caesar卢尚宇
8 2020年2月14日

 3.使用NXOPEN C#方式创建块

一般使用NXOPEN创建特征的时候,不会去查看帮助。直接用录制功能去录代码,改代码来实现。

录C#创建块的代码

 将不需要的代码删掉,只保留需要的代码。(不知道哪个是保留的,就一行一行试)

 代码

 1 //获取当前工作部件
 2 NXOpen.Part workPart = theSession.Parts.Work;
 3 
 4 //面向对象编程,先声明一个类的对象,然后在使用类里面的方法去定义参数
 5 //定义blockFeatureBuilder类
 6 NXOpen.Features.Feature nullNXOpen_Features_Feature = null;
 7 NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;
 8 //在工作部件创建块
 9 blockFeatureBuilder1 = workPart.Features.CreateBlockFeatureBuilder(nullNXOpen_Features_Feature);
10 //定义原点坐标点,长宽高
11 NXOpen.Point3d originPoint1 = new NXOpen.Point3d(10.0, 10.0, 10.0);
12 blockFeatureBuilder1.SetOriginAndLengths(originPoint1, "100", "50", "100");
13 //生成特征
14 NXOpen.Features.Feature feature1;
15 feature1 = blockFeatureBuilder1.CommitFeature();
16 //销毁
17 blockFeatureBuilder1.Destroy();
18 
19 Caesar卢尚宇
20 2020年2月14日

4.如何查找NXOPEN C#(NXOPEN方法写的代码)帮助

打开上面下载的net_ref.chm那个文档

 通过上面录制的代码,我们知道块特征是在NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;这里

我们去帮助里找到对应的命名空间

 点进去之后,在找到对应的类

 点进去之后,我们可以看到类里面的很多方法(返回值获得块特征的长宽高原点等等)

 举个例子,例如使用获得块的原点这个方法

点击进去这个方法,查看返回值,是Point3d类型

 代码

 1 //获取当前工作部件
 2 NXOpen.Part workPart = theSession.Parts.Work;
 3 
 4 //面向对象编程,先声明一个类的对象,然后在使用类里面的方法去定义参数
 5 //定义blockFeatureBuilder类
 6 NXOpen.Features.Feature nullNXOpen_Features_Feature = null;
 7 NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;
 8 //在工作部件创建块
 9 blockFeatureBuilder1 = workPart.Features.CreateBlockFeatureBuilder(nullNXOpen_Features_Feature);
10 //定义原点坐标点,长宽高
11 NXOpen.Point3d originPoint1 = new NXOpen.Point3d(10.0, 10.0, 10.0);
12 blockFeatureBuilder1.SetOriginAndLengths(originPoint1, "100", "50", "100");
13 //生成特征
14 NXOpen.Features.Feature feature1;
15 feature1 = blockFeatureBuilder1.CommitFeature();
16 
17 //获得块的原点xyz坐标
18 Point3d ori = blockFeatureBuilder1.Origin;
19 
20 //销毁
21 blockFeatureBuilder1.Destroy();
22 
23 //转换(double转string)
24 string oriX = Convert.ToString(ori.X);
25 string oriY = Convert.ToString(ori.Y);
26 string oriZ = Convert.ToString(ori.Z);
27 //字符串拼接
28 string str = oriX + "," + oriY + "," + oriZ;
29 //打印
30 theUI.NXMessageBox.Show("1", NXMessageBox.DialogType.Error, str);
31 
32 Caesar卢尚宇
33 202年2月14日

 以上就是对NXOPEN C#帮助的使用方法

Caesar卢尚宇

2020年2月14日

(今天是2月14日情人节,没女朋友也蛮好的,可以有更多时间写写博客,做做自己开心的事~)

(花开花落年年有,可人过青春不再来。)

2020年4月20日

补充说明

C#的两个帮助文件下载方式:

1.安装本地版NX11帮助和NX11 API帮助

2.按照博客去操作

不要在问我去哪下载了,也别直接留言找我要了。

原文地址:https://www.cnblogs.com/nxopen2018/p/12310032.html