四时宝库

程序员的知识宝库

Creo二次开发实例--零部件参数的查看

1、工程师的痛点

在实际的设计任务中,工程师需要及时查看零件的参数信息,但是实际的操作工程中只能一个一个的去查看参数,着实的麻烦。

2、通过开发可以批量的查看零部件的参数信息

①、新建MFC的Dialog用来放数据,

初始化面板信息的代码:MFC操作不做细述,可以查看资料。

DWORD dwStyle= param.GetExtendedStyle();

dwStyle|= LVS_EX_GRIDLINES;

param.SetExtendedStyle(dwStyle);

param.InsertColumn(0,_T("标识号"),LVCFMT_LEFT,60,0);

param.InsertColumn(1,_T("编码"),LVCFMT_LEFT,80,0);

param.InsertColumn(2,_T("Test"),LVCFMT_LEFT,80,0);

param.InsertColumn(3,_T("材料"),LVCFMT_LEFT,80,0);

③、 获取当前的组件信息

//获取到当前的模型信息

ProMdlmdlCurr;

err =ProMdlCurrentGet(&mdlCurr);

ProMdlTypemdlType;

err =ProMdlTypeGet(mdlCurr, &mdlType);

if (PRO_MDL_ASSEMBLY != mdlType)

{

AfxMessageBox(_T("需要打开一个装配体信息"));

return TRUE;

}

⑥、遍历当前装配体下的零件数据

// 组件特征的遍历,找到下面的所有的零件信息

err =ProSolidFeatVisit((ProSolid)mdlCurr,ASMPartFun, NULL,&featArr);

//遍历零部件信息

if (mdlType == PRO_MDL_PART)

{

ProArrayObjectAdd((ProArray*)app_data,PRO_VALUE_UNUSED,1,&mdl); //如果是零件信息加入到队列

}

if (mdlType == PRO_MDL_ASSEMBLY)

{

ProSolidFeatVisit((ProSolid)mdl,ASMPartFun, NULL,app_data);//如果是组件信息再次进入遍历

}

//参数的初始化并写入面板的List列表中

for (int i=0;i<array_size;i++)

{

ProMdlmdl1;

mdl1= ((ProMdl*)featArr)[i]; //获取组件下的每一个零件

ProNamename;

ProMdlNameGet(mdl1,name);//获取零件名称

/*AfxMessageBox(name);*/

CStringstr;

str.Format(_T("%d"),i);

indexNo= param.InsertItem(LVIF_TEXT|LVIF_PARAM,param.GetItemCount(),str,0,0,0,i);//样式

param.SetItemText(indexNo,1,name);

ProModelitemcur_modelitem;

ProParameterparam1;

ProName paramname;

ProParamvalueproval;

ProMdlToModelitem(mdl1,&cur_modelitem);//将模型转换成模型项

ProStringToWstring(paramname,"TEST");

ProParameterInit(&cur_modelitem,paramname,&param1); //初始化参数名为Test的参数

ProParameterValueGet(&param1,&proval);//获取该参数值并放入proval属性中

CStringWcstrFeatId;

cstrFeatId.Format(_T("%f"), proval.value.d_val);

param.SetItemText(indexNo,2,cstrFeatId);

ProNamematerialname;

ProParameterparammaterial;

ProParamvalueprovalmaterial;

ProStringToWstring(materialname,"MATERIAL_NAME");//初始化材料的参数

ProParameterInit(&cur_modelitem,materialname,&parammaterial); //初始化材料参数的

ProParameterValueGet(&parammaterial,&provalmaterial);//获取材料参数的数值

CStringWcsMaterial;

csMaterial.Format(_T("%s"), provalmaterial.value.s_val);

⑦、编辑并运行

⑧、效果显示,完成

后续功能

① 、指定零件并打开

② 、修改参数

③ 、通过EXCEL批量导出修改后在批量修改参数。

④ 、等等按照实际业务需要

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接