找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8582|回复: 1

[求助] 基于Pro/toolkit的二次开发编译时遇到问题啦,求围观解救(附代码)

[复制链接]

2

主题

8

回帖

0

威望

实习生

积分
11
发表于 2012-5-2 00:33 | 显示全部楼层 |阅读模式
/////////////////////////////////////////////////
//头文件
#include "ProToolkit.h"
#include "ProParameter.h"
#include "ProUtil.h"
#include "ProMdl.h"
#include "ProArray.h"
#include "ProModelItem.h"
#include "ProMessage.h"
#include <ProUI.h>
#include <ProUIDialog.h>
#include <ProUILabel.h>
#include <ProUIPushbutton.h>
#include <ProUIInputpanel.h>
#include <ProUIRadiogroup.h>
#include <ProUIOptionmenu.h>
#include "ProUICheckbutton.h"
#include <ProGraphic.h>
#include <ProView.h>
#include <ProObjects.h>
#include <TestError.h>
#include <ProMdl.h>
#include <ProSolid.h>
#include <ProUICmd.h>
#include <ProUIMessage.h>
#include <time.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> //函数声明
void gear();
void spur(char *,char *,ProAppData);
void spurOK(char *,char *,ProAppData);
void bevel1(char *,char *,ProAppData);
void bevellOK(char *,char *,ProAppData);
void UsrOKAction(char *,char *,ProAppData);
void UsrCancelAction(char *,char *,ProAppData); /*==============================================*\
函数:user_initialize
功能:用户初始化函数
\*==============================================*/
int user_initialize(int argc,
char *argv[],
char *version,
char *build,
wchar_t errbuf[])
{
//调用齿轮参数化设计函数
gear();
return (0);
}
/*==============================================*\
函数:user_terminate
功能:用户结束中断函数
\*==============================================*/
void user_terminate(void)
{
return;
}
/*==============================================*\
函数:gear
功能:齿轮参数化设计函数,显示主对话框
\*==============================================*/
void gear()
{
int status; //将对话框gear调入内存
ProUIDialogCreate("gear","gear");
//设置Cancel按钮激活函数,使该按钮调用函数UsrCancelAction
ProUIPushbuttonActivateActionSet("gear","Cancel",
UsrCancelAction,NULL);
//设置bevellbmp按钮激活函数,使该按钮调用函数bevell
ProUIPushbuttonActivateActionSet("gear","bevel1bmp",
bevel1,NULL);
//显示激活对话框,接受用户交互
ProUIDialogActivate("gear",&status);
//释放对话框内存
ProUIDialogDestroy("gear");
}
void UsrOKAction(
char *dialog,
char *component,
ProAppData data)
{
ProUIDialogExit(dialog,1);//?
}
/*==============================================*\
函数:UsrCancelAction
功能:关闭对话框
\*==============================================*/
void UsrCancelAction(
char *dialog,
char *component,
ProAppData data)
{
ProUIDialogExit(dialog,1);
}
/*==============================================*\
函数:spur
功能:创建直齿圆柱齿轮参数输入对话框
\*==============================================*/
void spur(




2012-05-02 00:12回复举报 |
nihai123

中级粉丝2
2楼

char *dialog,
char *component,
ProAppData data)
{
int status1;
//将对话框spur调入内存
ProUIDialogCreate("spur","spur");
//设置OK按钮激活函数,使该按钮调用函数spurOK
ProUIPushbuttonActivateActionSet("spur","Ok",spurOK,NULL);
//设置Cancel按钮激活函数,使该按钮调用函数UsrCancelAction
ProUIPushbuttonActivateActionSet("spur","Cancel",
UsrCancelAction,NULL);
//显示激活对话框,接受用户交互
ProUIDialogActivate("spur",&status1);
//释放对话框所占内存
ProUIDialogDestroy("spur");
} /*==============================================*\
函数:spurOK
功能:打开直齿齿轮模型,根据参数改变实现零件再生
\*==============================================*/ void spurOK(char *dialog,
char *component,
ProAppData data)
{
ProMdl part;
ProParameter param1;
ProParameter param2;
ProParameter param3;
ProParameter param4;
ProParamvalue value1;
ProParamvalue value2;
ProParamvalue value3;
ProParamvalue value4;
ProModelitem feature;
int i;
int teethnum1;
double pitch1,angle1,width1; //将零件spur_gear.prt.1 调入内存
ProMdlRetrieve(L"E:\\spur_gear.prt.1",PRO_PART,&part); //显示零件
ProMdlDisplay(part); //获取零件ID
ProModelitemInit(part,i,PRO_PART,&feature); //初始化各参数
ProParameterInit(&feature,L"TEETH",&param1);
ProParameterInit(&feature,L"PITCH",&param2);
ProParameterInit(&feature,L"ANGLE",&param3);
ProParameterInit(&feature,L"WIDTH",&param4); //读取对话框各编辑框的输入数值
ProUIInputpanelIntegerGet("spur","teethnum",&teethnum1);
ProUIInputpanelDoubleGet("spur","pitch",&pitch1);
ProUIInputpanelDoubleGet("spur","angle",&angle1);
ProUIInputpanelDoubleGet("spur","width",&width1); //为变量value1赋值
value1.type=PRO_PARAM_INTEGER;
value1.value.i_val=teethnum1; //为变量value2赋值
value2.type=PRO_PARAM_DOUBLE;
value2.value.d_val=1/pitch1; //为变量value3赋值
value3.type=PRO_PARAM_DOUBLE;
value3.value.d_val=angle1; //为变量value4赋值
value4.type=PRO_PARAM_DOUBLE;
value4.value.d_val=width1; //设置参数param1赋值
ProParameterValueSet(&param1,&value1); //设置参数param2赋值
ProParameterValueSet(&param2,&value2); //设置参数param3赋值
ProParameterValueSet(&param3,&value3); //设置参数param4赋值
ProParameterValueSet(&param4,&value4); //零件再生
ProSolidRegenerate((ProSolid)part,PRO_B_TRUE); //关闭对话框
ProUIDialogExit(dialog,1);
} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////

这是程序源文件和错误提示,编译时总有一个错误,大家帮帮忙看看该如何解决 ?
“test02.cpp
E:\Program Files\vc projects\test02.cpp(148) : error C2664: 'ProMdlRetrieve' : cannot convert parameter 2 from 'enum pro_obj_types' to 'ProMdlType'
Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
执行 cl.exe 时出错.“

21

主题

311

回帖

6

威望

工程师

积分
410
发表于 2012-5-2 12:49 | 显示全部楼层
ProMdlRetrieve(L"E:\\spur_gear.prt.1",PRO_PART,&part); //显示零件

把PRO_PART 改成 PROMDL_PART
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请发邮件联系我们,本站将立即改正或删除。

手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号|站长QQ28016688

GMT+8, 2024-11-22 17:29 , Processed in 0.154475 second(s), 20 queries .

快速回复 返回顶部 返回列表