今天讲的是ug中的偏置面的方法,并且根据面的偏置值来设置面的颜色。
我是通过块UI编辑器建立的界面,所以偏置值和选择面都是已知值。
选择面是为了获取面的Tag值,其代码如下所示:
TaggedObject[] GetSelectedObjects = face_select05.GetSelectedObjects();
Tag bb = GetSelectedObjects[pp].Tag;//bb为面的tag值
面的偏置值大小是通过字符串控件输入的。获取代码如下所示:
string offset = string02.Value;//获取输入的留量值,也就是面的偏置值
其中获取完两个已知条件,下面就是完整的实现代码如下:
#region//留量并且给面标颜色
TaggedObject[] GetSelectedObjects = face_select05.GetSelectedObjects();
for (int pp = 0; pp < GetSelectedObjects.Length; pp++)//获取选择面的集合
{
Tag bb = GetSelectedObjects[pp].Tag;//bb为面的tag值
string offset = string02.Value;//获取输入的留量值,也就是面的偏置值
Tag[] face = new Tag[1];
face[0] = bb;
Tag feature;
theUfSession.Modl.CreateFaceOffset(offset, face, out feature);
Tag[] objlist = null;
theUfSession.Modl.AskFeatFaces(feature, out objlist);
if (double.Parse(string02.Value) > 0 && double.Parse(string02.Value) <= 0.5)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 186);
}
}
if (double.Parse(string02.Value) > 0.5 && double.Parse(string02.Value) <= 1.1)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 181);
}
}
if (double.Parse(string02.Value) > 1.1 && double.Parse(string02.Value) <= 1.6)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 6);
}
}
if (double.Parse(string02.Value) > 1.6 && double.Parse(string02.Value) <= 2.1)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 211);
}
}
if (double.Parse(string02.Value) > 2.1 && double.Parse(string02.Value) <= 2.6)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 36);
}
}
if (double.Parse(string02.Value) > 2.6 && double.Parse(string02.Value) <= 3.1)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 31);
}
}
if (double.Parse(string02.Value) > 3.1 && double.Parse(string02.Value) <= 5)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 125);
}
}
if (double.Parse(string02.Value) > 5)
{
for (int i = 0; i < objlist.Length; i++)
{
theUfSession.Obj.SetColor(objlist[i], 164);
}
}
}
#endregion
其中:
0<偏置量<=0.5,颜色为186
0.5<偏置量<=1.1,颜色为181
1.1<偏置量<=1.6,颜色为6
1.6<偏置量<=2.1,颜色为211
2.1<偏置量<=2.6,颜色为36
2.6<偏置量<=3.1,颜色为31
3.1<偏置量<=5,颜色为125
5<偏置量,颜色为164
运行以后效果: