|
马上注册登录,享用更多网站功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
小弟菜鸟
我想在一个装配体中自动构建5*5*5的点阵,然后与装配体进行干涉检查,却搞不定,请牛人现身。我的思路是先对装配体进行遍历,然后得到他们的bodytag,再用UF_MODL_check_interference(*point_tag, num_tools, tools, results );让每个点都与装配体干涉检查一次,得到result即可。代码如下,请牛人修改
//////////////////////////////////////////////////////////////////////////////
//
// creat_block.cpp
//
// Description:
// Contains Unigraphics entry points for the application.
//
//////////////////////////////////////////////////////////////////////////////
// Include files
#include <uf.h>
#include <uf_exit.h>
#include <uf_ui.h>
#include <uf_modl.h>
#include <stdio.h>
#include <uf_defs.h>
#include <uf_styler.h>
#include <uf_mb.h>
#include <stdlib.h>
#include <uf_curve.h>
#include <string.h>
#include <uf.h>
#include <uf_curve.h>
#include <uf_part.h>
#include <uf_assem.h>
#include <uf_obj.h>
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
# include <strstream>
# include <iostream>
using std:strstream;
using std::endl;
using std::ends;
using std::cerr;
#else
# include <strstream.h>
# include <iostream.h>
#endif
#include "check.h"
//----------------------------------------------------------------------------
// Activation Methods
//----------------------------------------------------------------------------
void cycleallpart(tag_t child_tag)
{
tag_t *child_part_occs;double pt_coord[3];int pt_status;
int partnum=UF_ASSEM_ask_part_occ_children(child_tag,&child_part_occs);
for(int i=0;i<partnum;i++)
{
tag_t prototype=UF_ASSEM_ask_prototype_of_occ(*child_part_occs);
tag_t bodytag = NULL_TAG;
while(TRUE)
{
UF_OBJ_cycle_objs_in_part (prototype, UF_solid_type, &bodytag);
if (bodytag == NULL_TAG)
break;
}
cycleallpart(child_part_occs |
|