Objec、Body和Feature的区别
Feature:实体特征。它是将用户对UG实体的所有操作过程都以特征的方式记录下来,一个实体往往可以拥有多个特征,如一个block经过倒角(blend),挖洞(hole)和布尔计算(unite),那么在这个实体上就存在了三个特征,并且按照时间先后顺序排列。利用UF函数可以从Feature中得到其body。
Object:是 指数 据轴(datum axis)、d数据面(atum plane)、草图(sketch)、直线(line)、圆(circle)、二次曲线(conic)和样条曲线( spline )等二维元素。利用UF函数可以从Object中得到一个Feature。
Body:是指UG三维实体。利用UF函数可以从Body中得到所有在其操上作过的Feature。
在UF函数中必须分清它们是针对Body操作的、Object操作的,还是针对Feature操作。
Fearure、Body和Object相互 转换 的UF函数为:
extern int UF_MODE_ask_body_feats(tag_t body,uf_list_p_t *feature_tag_list);
extern int UF_MODE_ask_object_feats(tag_t object_tag,tag_t *feature_tag);
extern int UF_MODE_ask_feat_body(tag_t feature_obj_id,tag_t *body_obj_id);
extern int UF_MODE_ask_feat_object(tag_t feature,int *n_eids,tag_t **eids);
NXOpen.UF.FeatureSigns signs = NXOpen.UF.FeatureSigns.Nullsign;
double[] corner = new double[3] { 0, 0, 0 };
Tag bl_tag;
string[] aa = new string[3] { textBox1.Text, textBox2.Text, textBox3.Text };
theUFSession.Modl.CreateBlock1(FeatureSigns.Nullsign, corner, aa, out bl_tag);
NXOpen.Tag BodyTag;
theUFSession.Modl.AskFeatBody(bl_tag, out BodyTag);
Tag[] face_list;
theUFSession.Modl.AskBodyFaces(BodyTag, out face_list);
double[] location = new double[3] { 0, 0, 0 };
double[] direction = new double[3] { 0, 0, -1 };
string d=textBox4.Text;
string h=textBox5.Text;
string angle = "0";
Tag face_li = face_list[0];
Tag face_t1 = face_list[4];
theUFSession.Modl.CreateSimpleHole(location, direction, d, h, angle, face_li, face_t1, out bl_tag);
NXOpen.UF.FeatureSigns signs = NXOpen.UF.FeatureSigns.Nullsign;
double[] corner = new double[3] { 0, 0, 0 };
Tag bl_tag;
string[] aa = new string[3] { textBox1.Text, textBox2.Text, textBox3.Text };
theUFSession.Modl.CreateBlock1(FeatureSigns.Nullsign, corner, aa, out bl_tag);
NXOpen.Tag BodyTag;
theUFSession.Modl.AskFeatBody(bl_tag, out BodyTag);
Tag[] face_list;
theUFSession.Modl.AskBodyFaces(BodyTag, out face_list);
double[] location = new double[3] { Convert.ToDouble(this.textBox4.Text), Convert.ToDouble(this.textBox5.Text), Convert.ToDouble(this.textBox6.Text) };
string diam = textBox7.Text;
string height = textBox8.Text;
string angle = textBox9.Text;
double[] director = new double[3] { 0, 0, 1 };
NXOpen.Tag objtag2;
Tag facetag = face_list[0];

theUFSession.Modl.CreateBoss(location, director, diam, height, angle, facetag, out objtag);
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删