批量生成工程图.docxVIP

  • 3
  • 0
  • 约5.83千字
  • 约 7页
  • 2017-08-05 发布于重庆
  • 举报
批量生成工程图

批量生成工程图 具有如下功能: 1)在列表中列出装配体下所有的零件,选择多个需要生成工程图的零件 2)然后对选中的零件生成工程图 3)在每一个工程图中添加表,列出工程图对应模型的参数信息(名称,类型,值等) 代码如下: //动作函数 ProError UserFeatVisitAct(ProFeature* p_feature,ProError status,ProAppData data) { ProArrayObjectAdd((ProArray*)data,PRO_VALUE_UNUSED,1,p_feature); return PRO_TK_NO_ERROR; } void CDrawingGenerate::UserLoadAllPartInAsm(ProMdl mdl) { ProError status; ProArray array; status=ProArrayAlloc(0,sizeof(ProFeature),1,array); if (PRO_TK_NO_ERROR!=status) { AfxMessageBox(_T(内存错误!)); return; } //遍历特征 status=ProSolidFeatVisit((ProSolid)mdl,(ProFeatureVisitAction)UserFeatVisitAct,NULL,(ProAppData)array); if (PRO_TK_NO_ERROR!=status) { AfxMessageBox(_T(遍历失败!)); return; } int array_size; status=ProArraySizeGet(array,array_size); if (0==array_size) { AfxMessageBox(_T(no feature was found!)); return; } //循环筛选特征 for (int i=0;iarray_size;i++) { ProFeature feature; feature=((ProFeature*)array)[i]; int num=feature.id; ProMdl mdl_prt; ProName name; ProFeattype p_type; status=ProFeatureTypeGet(feature,p_type); //1000--PRO_MDL_COMPONENT,筛选出PART即可 if (1000==p_type) { status=ProAsmcompMdlGet((ProAsmcomp*)feature,mdl_prt); status=ProMdlNameGet(mdl_prt,name); CString m_strID; m_strID.Format(_T(%d),num); m_PartList.InsertItem(0,name); m_PartList.SetItemText(0,1,m_strID); UserLoadAllPartInAsm(mdl_prt); } } ProArrayFree(array); } void CDrawingGenerate::OnBnClickedBtnOpenAssembly() { // TODO: 在此添加控件通知处理程序代码 ProError err; ProMdl mdl; ProFamilyName name; ProStringToWstring(name,D:\\demo\\parts\\bottle.asm); err=ProMdlRetrieve(name,PRO_MDL_ASSEMBLY,mdl); if (PRO_TK_NO_ERROR!=err) { return; } ProMdlDisplay(mdl); UserLoadAllPartInAsm(mdl); int pid; ProWindowCurrentGet(pid); ProWindowActivate(pid); } //遍历参数的动作函数 ProError UserParamVisitAct(ProParameter *param,ProError status,ProAppData data) { vectorProParameter *pf=(vectorProParameter*)data; pf-push_back(*param); return PRO_TK_NO_ERROR; } //向表格添加数据 ProError TableTextAdd(ProDwgtable* table,int col,int row,char* text) { ProError status

文档评论(0)

1亿VIP精品文档

相关文档