找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5996|回复: 8

[分享] 新人报道收集资料,以及将其分享

[复制链接]

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
发表于 2014-12-17 16:34 | 显示全部楼层 |阅读模式
本帖最后由 lwsh0289814 于 2014-12-18 10:28 编辑

刚开始着手proe的二次开发,听说很冷门,有点儿小怕怕,资料着实少,希望大家共享一下,我现在手头的资料都是咱们论坛上的有需要的可以留言,有别的新的视频书籍或者好的帖子的前辈们请留言。。拜谢!!!

评分

参与人数 1金钱 +5 收起 理由
钟汉昌 + 5 我很赞同

查看全部评分

我思故我存在

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
 楼主| 发表于 2014-12-17 16:44 | 显示全部楼层
本帖最后由 lwsh0289814 于 2014-12-17 16:53 编辑

这是我的学习过程。记录下来。

(1)菜单开发

ProE5二次开发--菜单设计 已有9人参与        
开发环境:ProE5+VS2008
(1)环境设置:项目中设置添加依赖项,wscok32.lib mpr.lib psapi.lib protk_dllmd.lib netapi32.lib
(2)菜单文件的编写
user_menu_bar
新建菜单(&N)
#
#
user_menu_button_1
菜单按钮(&B)
#
#
user_menu_button_1_help
菜单按钮帮助
#
#
user_menu_button_2
新按钮(&C)
#
#
user_menu_button_2_help
新按钮帮助
#
#
(3)代码的编写
#include "stdafx.h"
#define  PRO_USE_VAR_ARGS 1
#include
#include
#include
#include
#include
ProFileName UserMsg;
ProError status;
uiCmdCmdId cmd_id;
/*================================================================*\
FUNCTION: TestAccessDefault()
PURPOSE:  Define the accessibility of menu buttons.
\*================================================================*/
static uiCmdAccessState TestAccessDefault (uiCmdAccessMode access_mode)
{
    return (ACCESS_AVAILABLE);
}
/*================================================================*\
FUNCTION:  MiscAction()
PURPOSE:   Generic action function
\*================================================================*/
int MiscAction()
{
       return (0);
}
int MyTest()
{
AfxMessageBox(_T("This is my Test!"),MB_OK,0);
return (0);
}
/*================================================================*\
FUNCTION: user_initialize()
PURPOSE:  Pro/TOOLKIT standard initialize
\*================================================================*/
extern "C" int user_initialize (void)
{
AfxEnableControlContainer();
    ProError err;
ProFileName usrmenufile;
ProFileName filename;
uiCmdCmdId uiCmdCmdIduser;
err=ProDirectoryChange(ProStringToWstring(filename,"F:\\Prolearn\\test"));
ProStringToWstring(usrmenufile,"text\\user_msg.txt");
err=ProMenubarMenuAdd("user_bar_name","user_menu_bar","Help",PRO_B_TRUE,usrmenufile);
err=ProCmdActionAdd("user_button_",(uiCmdCmdActFn)MiscAction,uiProeImmediate,TestAccessDefault,PRO_B_FALSE,PRO_B_FALSE,&uiCmdCmdIduser);
err=ProMenubarmenuPushbuttonAdd("user_bar_name","user_menu_button_1_","user_menu_button_1","user_menu_button_1_help"
  ,NULL,PRO_B_TRUE,uiCmdCmdIduser,usrmenufile);
err=ProCmdActionAdd("user_button_1",(uiCmdCmdActFn)MyTest,uiProeImmediate,TestAccessDefault,PRO_B_FALSE,PRO_B_FALSE,&uiCmdCmdIduser);
err=ProMenubarmenuPushbuttonAdd("user_bar_name","user_menu_button_2_","user_menu_button_2","user_menu_button_2_help",
  "user_menu_button_1_",PRO_B_TRUE,uiCmdCmdIduser,usrmenufile);
    return (0);
}
extern "C" void user_terminate()
{
}
生成一个菜单项,其中包括了两个菜单!经测试,在每个菜单中都应该包括菜单说明项。没有的话,创建不成功!


(转载的,直接输入地址不能提交,另外鉴于网址无法直接查看将内容拷贝过来了)
我思故我存在
回复

使用道具 举报

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
 楼主| 发表于 2014-12-17 16:53 | 显示全部楼层
(2)对话框开发
目的:为菜单添加对话框响应
步骤
(1)添加对话框资源
(2)编写代码
#include "TestDlg.h"
CTestDlg* pdlg;
int MyTest()
{
//AfxMessageBox(_T("This is My Test!"),MB_OK,0);
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//CTestDlg dlg;
//dlg.DoModal();
if (pdlg!=NULL)
{
  delete pdlg;
}
  pdlg=new CTestDlg();
  pdlg->DoModal();
return 0;
}
static uiCmdAccessState TestAccessDefault (uiCmdAccessMode access_mode)
{
return (ACCESS_AVAILABLE);
}
extern "C" int user_initialize()
{
AfxEnableControlContainer();
ProFileName userfile;
ProError err;
uiCmdCmdId cmdId;
ProStringToWstring(userfile,"userMsg.txt");
err=ProMenubarMenuAdd("TestMenu_1","TestMenu","Help",PRO_B_FALSE,userfile);
err=ProCmdActionAdd("Cmd1",(uiCmdCmdActFn)MyTest,uiProeImmediate,TestAccessDefault,PRO_B_FALSE,PRO_B_FALSE,&cmdId);
err=ProMenubarmenuPushbuttonAdd("TestMenu_1","MenuFirst_","MenuFirst","MenuSecond",NULL,PRO_B_FALSE,cmdId,userfile);
return 0;
}
extern "C" void user_terminate()
{
if (pdlg!=NULL)
{
  delete pdlg;
}
return ;
}
MyTest()为菜单的响应函数了。记得最后在退出函数中清除pdlg对象。

(转载的,直接输入地址不能提交,另外鉴于网址无法直接查看将内容拷贝过来了)
我思故我存在
回复

使用道具 举报

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
 楼主| 发表于 2014-12-17 16:54 | 显示全部楼层
(3)修改尺寸

环境:vs2008+Proe5
目的:通过编写对话框代码实现对实体尺寸的修改
方法:在(2)的基础上进行修改,建立一个拉伸实体。并建立两个参数,分别关联两个尺寸,即轴的直径和轴的长度。修改上节的对话框,添加两个编辑框,分别作为用户的接口,关联两个变量。
添加如下函数用于修改尺寸
ProError UserSetParamValue(ProModelitem owner,char* name,double value)
{
        ProError err;
        ProParameter param;
        ProName param_name;
        ProStringToWstring(param_name,name);
        err=ProParameterInit(&owner,param_name,¶m);
    if (err!=0)
    {
                return err;
    }
        ProParamvalue proval;
        proval.type=PRO_PARAM_DOUBLE;
        proval.value.d_val=value;
        err=ProParameterValueSet(¶m,&proval);
        if (err!=0)
        {
                return err;
        }
        return PRO_TK_NO_ERROR;
}
修改上节的MyTest函数为
int MyTest()
{
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        if (pdlg!=NULL)
        {
                delete pdlg;
        }
        pdlg=new CTestDlg();
        if (pdlg->DoModal()==IDOK)
        {
        ProError err;
                ProFamilyName name;
                ProMdl p_handle;
                ProModelitem p_modelItem;
                ProStringToWstring(name,"TESTZHOU");
                err=ProMdlRetrieve(name,PRO_MDL_PART,&p_handle);
                if (err!=PRO_TK_NO_ERROR)
                {
                        return 1;
                }
                err=ProMdlToModelitem(p_handle,&p_modelItem);
                err=UserSetParamValue(p_modelItem,"ZHIJING1",pdlg->m_zhijing);
                err=UserSetParamValue(p_modelItem,"LENGTH",pdlg->m_length);
                err=ProSolidRegenerate((ProSolid)p_handle,PRO_REGEN_NO_FLAGS);
                err=ProMdlDisplay(p_handle);
                int window;
            ProMdlWindowGet(p_handle,&window);
                ProWindowActivate(window);
        }

        return 0;
}
即可实现对轴的尺寸的对话框式修改!
(转载的,直接输入地址不能提交,另外鉴于网址无法直接查看将内容拷贝过来了)
我思故我存在
回复

使用道具 举报

3

主题

257

回帖

32

威望

工程师

积分
382
发表于 2014-12-17 20:04 | 显示全部楼层
我记得之前有一位在淘宝买了这方面的资料,又找了一下之前的回复,试了一下,14楼的楼主链接才可用...
有关proe二次开发的所有资料网盘免费下载
http://www.proewildfire.cn/thread-119981-1-1.html
(出处: 野火论坛)
回复 1 0

使用道具 举报

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
 楼主| 发表于 2014-12-18 07:58 | 显示全部楼层
本帖最后由 lwsh0289814 于 2014-12-18 08:36 编辑

谢谢五楼的支持 我去看看去,那个我也看到了链接不能用
(刚刚将五楼提及地方看了一下,确实还可以用,再次感谢,大姐也可以借鉴)
我思故我存在
回复

使用道具 举报

6

主题

103

回帖

0

威望

助工

积分
127
QQ
发表于 2014-12-22 14:29 | 显示全部楼层
感谢5楼推荐
回复

使用道具 举报

1

主题

37

回帖

0

威望

实习生

积分
40
发表于 2014-12-28 21:11 | 显示全部楼层
谢谢无私分享,共同进步!
回复

使用道具 举报

0

主题

9

回帖

0

威望

实习生

积分
11
发表于 2016-5-11 14:50 | 显示全部楼层
还是很感谢楼主的好意
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 20:05 , Processed in 0.144287 second(s), 22 queries .

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