ProSolidFeatVisit中的动作和过滤函数
//动作函数
ProError UserFeatVisitAct(ProFeature* p_feature, ProError status, ProAppData data)
{
//向数组的特定位置或尾部添加对象
ProArrayObjectAdd((ProArray*)data, PRO_VALUE_UNUSED/*在数组尾部添加对象*/, 1/*添加至数组中对象的个数*/, p_feature);
return PRO_TK_NO_ERROR;
}
//过滤函数
ProError UserFeatVisitFilt(ProFeature* p_feature, ProAppData data)
{
if (p_feature->id >= 0)
{
return PRO_TK_NO_ERROR;
}
else {
return PRO_TK_CONTINUE;/*跳过此特征,访问下一个*/;
}
}
加载窗体事件
BOOL CMyNewDlg3::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
ProError status;
ProError err;
ProMdl model;
ProParamvalue value;
ProName wstrValue, wstrType;
CStringW temp;
//proparameter* p_data;
char** names;
wchar_t** labels;
ProCharLine strtmp;
ProCharLine strtmp2;
ProArray id_array;
// 获取当前模型
ProMdl mdlCurr;
ProMdlType mdlType;
err = ProMdlCurrentGet(&mdlCurr);
if (err != PRO_TK_NO_ERROR) {
return err;
}
err = ProMdlTypeGet(mdlCurr, &mdlType);
if (PRO_MDL_ASSEMBLY != mdlType)
{
return -1;
}
ProFeature p_feature;
ProFeattype featType;
//分配一个对象数组
status = ProArrayAlloc(0/*数组中初始对象的个数*/, sizeof(ProFeature)/*数组中每个对象的大小*/, 1/*对象最小个数*/, &id_array/*输出分配的数组*/);
if (PRO_TK_NO_ERROR != status)