Proe Creo 二次开发之计算两个模型之间的干涉信息

计算两个模型的干涉情况,

(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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值