前言
本系列文章主要讲解NXOpen UF API(简称ufun函数)的使用,之前看教学视频大都建议用ufun进行开发,这里西门子官方还专门给了一套系列文章来讲,说明官方也是特别推崇ufun。
本人从事二开也有一段时间了,我的二开启蒙师父就特别喜欢用NXOpen API,用他的话来说“年少不知nxopen好,错把ufun当成宝”,其实就我个人而言,还是喜欢NXOPEN+ufun联合开发。
一、小节概要
本实例实现了矩形凹槽的创建,主要知识点如下:
1、创建圆柱体 theUfSession.Modl.CreateCyl1
2、找到圆柱的柱面 theUfSession.Modl.AskFaceData
3、创建矩形凹槽 theUfSession.Modl.CreateRectGroove
二、需求分析
1、效果图
2、需求分解
1、创建圆柱体
2、找到圆柱的柱面
3、创建矩形凹槽
三、程序分析
1、源码所在目录
UGOPEN\SampleNXOpenApplications\.NET\NXOpenExamples\EX_Modl_Create
2、主要功能分析
1、创建圆柱体
Tag cyl_obj_id;
double[] origin = { 0.0, 0.0, 0.0 };
double[] direction = { 0.0, 0.0, 1.0 };
string height = "4.0";
string diam = "2.0";
theUfSession.Modl.CreateCyl1(FeatureSigns.Nullsign, origin, height, diam, direction, out cyl_obj_id);
theUfSession.Modl.CreateList(out face_list);
2、找到圆柱的柱面
theUfSession.Modl.AskFeatBody(cyl_obj_id, out body);
theUfSession.Modl.AskBodyFaces(body,out face_list);
theUfSession.Modl.AskListCount(face_list, out count);
for(i = 0; i < count; i++)
{
theUfSession.Modl.AskListItem(face_list,i,out face);
theUfSession.Modl.AskFaceData(face, out type, center, dir, box, out radius, out rad_data, out norm_dir);
if(type == UFConstants.UF_cylinder_type) face_id = face;
}
3、创建矩形凹槽
Tag feature_id;
double[] location = { 0.0, 0.0, 2.0 };
double[] direction = { 0.0, 0.0, 1.0 };
string gr_diam = "1.0";
string width = "1.0";
theUfSession.Modl.CreateRectGroove(location, direction, gr_diam, width, face_id, out feature_id);