今天是情人节,单身狗晚上闲着无聊,研究了一下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日情人节,没女朋友也蛮好的,可以有更多时间写写博客,做做自己开心的事~)
(花开花落年年有,可人过青春不再来。)