// CMyNewDlg3.cpp: 实现文件
//
#include "pch.h"
#include "CREO1.h"
#include "CREO2.h"
#include "CMyNewDlg3.h"
#include "afxdialogex.h"
// CMyNewDlg3 对话框
IMPLEMENT_DYNAMIC(CMyNewDlg3, CDialogEx)
CMyNewDlg3::CMyNewDlg3(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_DIALOG3, pParent)
{
}
CMyNewDlg3::~CMyNewDlg3()
{
}
void CMyNewDlg3::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_reportlist3);
}
BEGIN_MESSAGE_MAP(CMyNewDlg3, CDialogEx)
ON_BN_CLICKED(IDOK, &CMyNewDlg3::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CMyNewDlg3::OnBnClickedCancel)
ON_BN_CLICKED(IDC_RADIO5, &CMyNewDlg3::OnBnClickedRadio5)
ON_BN_CLICKED(IDC_RADIO4, &CMyNewDlg3::OnBnClickedRadio4)
END_MESSAGE_MAP()
//声明函数
//void UserLoadAllPartInAsm(ProMdl mdlCurr10);
void DiguiShuliang(ProMdl mdlCurr11, ProName name11, int* i11);
void GuolvChongfu(ProMdl mdlCurr14, ProName name14, int* i14 );
//动作函数
ProError UserFeatVisitAct(ProFeature* p_feature, ProError status, ProAppData data)
{
//向数组的特定位置或尾部添加对象
ProArrayObjectAdd((ProArray*)data, PRO_VALUE_UNUSED/*在数组尾部添加对象*/, 1/*添加至数组中对象的个数*/, p_feature);
return PRO_TK_NO_ERROR;
}
//动作函数
ProError UserFeatVisitAct2(ProFeature* p_feature, ProError status, ProAppData data)
{
//向数组的特定位置或尾部添加对象
ProArrayObjectAdd(((ProArray**)data)[0], 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;/*跳过此特征,访问下一个*/;
}
}
//遍历函数
void BianliGet(ProMdl mdlCurr9, ProArray** id_array9)
{
// 获取当前模型
ProError status;
ProMdlType mdlType;
int array_size9;
ProName name9;
status = ProMdlTypeGet(mdlCurr9, &mdlType);
if (PRO_MDL_ASSEMBLY != mdlType)
{
AfxMessageBox(L"请确认是否组件!");
}
status = ProArrayAlloc(0/*数组中初始对象的个数*/, sizeof(ProFeature)/*数组中每个对象的大小*/, 1/*对象最小个数*/, (ProArray*)id_array9/*输出分配的数组*/);
status = ProSolidFeatVisit((ProSolid)mdlCurr9, (ProFeatureVisitAction)UserFeatVisitAct2,
(ProFeatureFilterAction)UserFeatVisitFilt, (ProAppData)&id_array9);
if (PRO_TK_NO_ERROR != status)
{
AfxMessageBox(L"遍历失败!");
}
}
// CMyNewDlg3 消息处理程序
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)
{
PRO/TOOLKIT零件清单(单层清单+多层清单)
最新推荐文章于 2024-07-07 19:37:30 发布