很感谢楼上的,下面是我的一段程序。用如下两个函数获得根部件的tag_t:tagRootPart ,再通过函数UF_ASSEM_ask_part_occ_children(tagRootPart, &Children);,获得其唯一子部件的tag_t。
tagCurrentPart = UF_PART_ask_display_part();
tagRootPart = UF_ASSEM_ask_root_part_occ( tagCurrentPart );
tag_t* Children = NULL;
iChildCount = UF_ASSEM_ask_part_occ_children(tagRootPart, &Children);
uc1601("移动部件一段距离。", TRUE);
double LinerDelt[3] = {0, 0, 150};
double TransMatrix[16];
uf5943(LinerDelt, TransMatrix); //获得平移矩阵
int ip_3=1, ip_4=1, ip_5=-1, ip_6=2;
tag_t nr_7, nr_8;
int ir_9;
uf5947(TransMatrix, Children &ip_3, &ip_4, &ip_5, &ip_6, &nr_7, &nr_8, &ir_9);
执行函数uf5947时,第二个参数用Children(其为tag_p_t类型的)代入,如上所示,可以移动该子部件。
如果将第二个参数换为:&tagRootPart (也是tag_p_t类型的)(即为:uf5947(TransMatrix, & &tagRootPart , ip_3, &ip_4, &ip_5, &ip_6, &nr_7, &nr_8, &ir_9);),就不能执行移动操作,显示内存冲突,能帮我看看什么问题吗?是不是根部件的tag_t有错误? |