本实例主要实现了通过ufun创建圆柱和简单孔,主要使用了一下几个ufun函数:

theUFSession.Modl.CreateCyl1  创建圆柱

theUFSession.Modl.AskFeatFaces  获取面列表

theUFSession.Modl.CreateSimpleHole  创建简单孔

最终实现效果图如下:

一、主程序

先看实现简单孔的主程序如下:

using System;
using NXOpen;
using NXOpen.UF;
using NxLibrary;public class Program
{private static Session theSession;private static UFSession theUFSession;public static Program theProgram;private static UI theUI = null;public static int Main(string[] args){theUI = UI.GetUI();int retValue = 0;try{#region 简单孔double[] origin = new double[3] { 0.0, 0.0, 0.0 };double[] direction = new double[3] { 0.0, 0.0, 1.0 };string height = "10";string diam = "50";Tag cylTag = ModlHelper.CreateCylinder(origin, height, diam, direction);double[] location = new double[3]{0, 0, 20};double[] direction1 = new double[3] { 0.0, 0.0, -1.0 };diam = "20";string depth = "100";string angle = "0";theUFSession = UFSession.GetUFSession();Tag[] face_list;int count;theUFSession.Modl.AskFeatFaces(cylTag, out face_list);theUFSession.Modl.AskListCount(face_list, out count);for (int i = 0; i < count; i++){Tag faceTag;theUFSession.Modl.AskListItem(face_list, i ,out faceTag);theUFSession.Obj.SetName(faceTag,"face"+i);}Tag placement_face, thru_face;theUFSession.Modl.AskListItem(face_list, 0, out placement_face);theUFSession.Modl.AskListItem(face_list, 2, out thru_face);ModlHelper.CreateSimpleHole(location, direction1, diam, depth, angle, placement_face, thru_face);#endregion}catch (NXOpen.NXException ex){theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());}return retValue;}
}

根据主程序的思路,简单孔的实现分一下几步:

1、先创建一个圆柱

2、获取圆柱的上、下两个面,用来打孔

这里获取圆柱的上下面有一个技巧,使用了theUFSession.Obj.SetName给圆柱的每一个面做了name标记,所以才把face_list编号0和2的面赋值给placement_face、thru_face。 如果这两个面弄错了是无法正常打孔的。

3、初始化打孔需要的参数:孔位置、方向向量、直径、孔深、尖角角度、孔开始面、孔结束面

二、创建圆柱方法

/// <summary>
/// 创建圆柱体
/// </summary>
/// <param name="origin">原点</param>
/// <param name="height">高度</param>
/// <param name="diam">直径</param>
/// <param name="direction">方向向量</param>
/// <returns></returns>
public static Tag CreateCylinder(double[] origin, string height, string diam, double[] direction)
{theUFSession = UFSession.GetUFSession();FeatureSigns signs = FeatureSigns.Nullsign;Tag cylTag;theUFSession.Modl.CreateCyl1(signs, origin, height, diam, direction, out cylTag);return cylTag;
}

创建圆柱使用了ufun函数:theUFSession.Modl.CreateCyl1

有原点、圆柱的高度、直径、方向向量即可创建

三、创建简单孔的方法

/// <summary>
/// 创建简单孔
/// </summary>
/// <param name="location">孔位置</param>
/// <param name="direction">方向向量</param>
/// <param name="diame">直径</param>
/// <param name="depth">孔深</param>
/// <param name="angle">尖角角度</param>
/// <param name="face_li">孔开始面(尾)</param>
/// <param name="face_t1">孔结束面(头)</param>
/// <returns></returns>
public static Tag CreateSimpleHole(double[] location, double[] direction, string diame, string depth, string angle, Tag face_li, Tag face_t1)
{theUFSession = UFSession.GetUFSession();Tag holeTag;theUFSession.Modl.CreateSimpleHole(location, direction, diame, depth, angle, face_li, face_t1, out holeTag);return holeTag;
}

创建简单孔使用了ufun函数:theUFSession.Modl.CreateSimpleHole

主要使用参数有:孔位置、方向向量、直径、孔深、尖角角度、孔开始面、孔结束面

UG二次开发 创建圆柱和简单孔UF_MODL_create_simple_hole相关推荐

  1. NX/UG二次开发创建曲面偏置体

    NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...

  2. UG二次开发 创建圆弧 UF_CURVE_create_arc

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG二次开发 创建圆弧 UF_CURVE_create_arc 代码: //圆心 d ...

  3. UG\NX二次开发 创建并报告所有装配部件的文本UDO

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 创建并报告所有装配部件的文本UDO 效果: 代码: #inclu ...

  4. UG\NX二次开发 创建等参数曲线 UF_MODL_create_isocurve

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 创建等参数曲线 UF_MODL_create_isocurve. ...

  5. 深度解析UG二次开发装配的部件事件、部件原型和部件实例

    做UG二次开发快一年了,每次遇到装配的问题涉及到部件事件.部件原型和部件实例还是一头雾水,什么是实例,什么是原型这些专业术语等等. 针对这个问题,今天专门写了一篇特辑,结合装配实例深度剖析装配过程中的 ...

  6. 使软件可二次开发_基于C++的?UG二次开发

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计.C++擅长面向对象程序设计的同时,还可以 ...

  7. UG二次开发技术的研究

    摘 要:UG软件是美国EDS公司开发的一套集CAD/CAM/CAE一体的高端软件.UG是一个通用软件,用户必须在此基础上进行二次开发,才能满足专门模具设计的需要,提高设计效率.本文探讨UG二次开发技术 ...

  8. 【UG二次开发环境建立教程】

    UG二次开发环境建立教程 关于UG二次开发环境的两种建立方法 方法一:导入UG二次开发向导模板 1.分别安装UG软件和Visual Studio软件,保证软件可以正常打开使用. 2.打开UG安装目录, ...

  9. ug二次开发(一)添加标题栏及加入功能

    文章目录 1 概念 2 开发vb界面的二次开发(extra) 3ug ui界面上列表栏的产生 3.1 men文件 3.1 tbr文件 1 概念 将如图所示文件加入vs的目录中,与目录中文件合并一下,此 ...

最新文章

  1. 为什么越来越多硕博人消失在朋友圈?
  2. 部署企业私有镜像仓库Harbor
  3. SAP CRM Collection wrapper的publish_current用法
  4. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
  5. [vue插件]基于vue2.x的电商图片放大镜插件
  6. php判断url参数为空,PHP检查url链接是否已经有参数的简单示例
  7. 七段式svpwm和5段式的区别_SVPWM实现概述
  8. C#编写上位机驱动运动控制板卡
  9. 【蓝桥杯练习-PWM脉宽调制】
  10. python修改像素
  11. 你可能不知道的21个PS技巧
  12. 最早采用二进制的计算机,计算机 | 中国古代人最早提出的二进制思想?
  13. 机器学习中【回归算法】详解
  14. 面向对象软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)
  15. 数据格式:大端模式(Big-endian)和小端模式(Little-endian)
  16. MySQL数据库,emp,dept等表
  17. 【Mac 教程系列第 18 篇】如何修改 iTerm2 的背景图片
  18. 生物信息学 | 富集分析
  19. 3D游戏编程学习笔记(七):模型与动画
  20. 今天收到朋友一张很有创意的圣诞贺卡:)

热门文章

  1. 深读 | 《人人都是产品经理2.0》中篇
  2. Java的进程内缓存框架:EhCache (转)
  3. IOS图像2之jpg、png图片保存、互转、设置有损压缩因子
  4. html5标签figure、figcaption
  5. 大数据运维实战第一课 大话 Hadoop 生态圈
  6. 破解word只读文档 word文档保护后的破解办法
  7. IntelliJ IDEA必会的几个常用设置
  8. 在函数中引用外部数组元素
  9. 口语语汇单词篇(7)
  10. 100个RPA经典应用场景解析