计算两个模型的干涉情况,
(1)通过promdlInit初始化得到两个模型
(2)根据两个模型在装备 树 中的位置得到 proselection
(3)通过干涉接口计算干涉 信息
(4)高亮干涉信息
ProSelection p_sel1; ProSelection p_sel2; ProMdl p_mdl1, p_mdl2,p_CurMdl; ProModelitem p_mdlItem1, p_mdlItem2; ProMdlCurrentGet(&p_CurMdl); ProError status = ProMdlInit(_T("Gear_out"),PRO_MDL_PART, &p_mdl1); status = ProMdlInit(_T("ROTATE_ROD"),PRO_MDL_PART, &p_mdl2); status = ProMdlToModelitem(p_mdl1, &p_mdlItem1); status = ProMdlToModelitem(p_mdl2, &p_mdlItem2); ProAsmcomppath pcompath1, pcompath2; pcompath1.owner = (ProSolid)p_CurMdl; pcompath2.owner = (ProSolid)p_CurMdl; pcompath1.table_num = 1; pcompath2.table_num = 1; pcompath1.comp_id_table[0] = 49; pcompath1.comp_id_table[1] = -1; pcompath2.comp_id_table[0] = 44; pcompath2.comp_id_table[1] = -1; status = ProSelectionAlloc(&pcompath1, &p_mdlItem1, &p_sel1); status = ProSelectionAlloc(&pcompath2, &p_mdlItem2, &p_sel2); ProInterferenceData m_interf_data; // 计算干涉信息 status = ProFitInterferenceCompute(p_sel1, p_sel2, PRO_B_FALSE, PRO_B_FALSE, &m_interf_data); ASSERT_PRINT_ERRORREPORT ("ProFitInterferenceCompute()","CGlbInterfCheckShowdlg::HighLightInterfVolume", status); //// 判断:干涉信息不为空 //if (NULL != m_interf_data) //{ // status = ProFitInterferencevolumeDisplay(m_interf_data, PRO_COLOR_HIGHLITE); // ASSERT_PRINT_ERRORREPORT ("ProFitInterferencevolumeDisplay()","CGlbInterfCheckShowdlg::HighLightInterfVolume", // status); //} //return 0;
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删