ProE二次开发技术

合集下载

利用python二次开发creo

利用python二次开发creo

软件设计开发本栏目责任编辑:谢媛媛利用Python 二次开发Creo胡迪,罗辉(合肥工业大学智能制造技术研究院,安徽合肥230000)摘要:Creo 软件的二次开发工作逐渐得到人们的重视,但其并未直接提供Python 的开发接口。

该文介绍了在利用Creo VBAPI 接口的基础上,简便利用Python 使用Python 对Creo 进行二次开发的方法和关键技术。

以批量关系操作为例,对该方法进行了验证,结果表明该方法简化了Creo 二次开发的过程。

关键词:Creo ;二次开发;Python ;VB API 中图分类号:TP393文献标识码:A文章编号:1009-3044(2020)02-0049-02开放科学(资源服务)标识码(OSID):Secondary Development of Creo Based on PythonHU Di,LUO Hui(Intelligent Manufacturing institute of Hefei University of Technology,Hefei 230000,China)Abstract:The secondary development of Creo is getting more and more attention,but Creo does not directly provide Python develop⁃ment interface.The method and key technology of how to use Python to develop Creowas introduced.Finally,an example of batch rela⁃tionoperationwas taken to show how the system works.The results show that this method simplifies the process of Creo development.Key words:Creo;Secondary Development;Python;VB APIPython 由荷兰人GuidovanRossum 于1989年发明,第一个公开发行版发行于1991年,是一种面向对象的、动态的、解释型程序设计语言,经过十几年的发展,以其短小精悍的语法以及高效的开发、简单入门的特点逐渐成为主流程序设计语言。

二次开发开发程序的实例

二次开发开发程序的实例

本文给出了ProE二次开发中用VC++开发Pro/TOOLKIT程序的实例。

Pro/TOOLKIT是PTC公司提供给用户使用C语言客户化Pro/ENGINEER的API。

在Pro/E 16.0以前是Pro/DEVELOP,从17版开始换成Pro/TOOLKIT,但Pro/DEVEL OP仍可以和Pro/TOOLKIT混合在一起使用。

PTC提供的例子程序和培训教材都是使用C语言来进行开发,自己手工编写makefile 文件,然后通过nmake命令在命令行直接编译、连接。

这样的方式对于已经习惯于使用V C++编程的程序员来说,确实受到很多限制。

经过测试,我发现其实也可以在VC++环境下编写Pro/TOOLKIT程序,你会发现比使用makefile的方式更简单,更容易入门。

以下我来手把手教各位如何VC++编写第一个Pro/TOOLKIT程序。

我的开发和测试环境是:简体中文Windows 2000 + SP4Pro/E 2001 2003010Visual C++ 6.0Pro/E二次开发1、创建新工程启动VC++,新建工程。

选择MFC AppWizard(dll)方式。

指定工程名称及存放路径。

然后按“OK”按钮。

2、完成新工程的创建接受缺省设置。

按“Finish”按钮完成。

3、配置开发环境接下来,你需要配置用来编译、连接Pro/TOOLKIT程序的开发环境。

1)设置Pro/TOOLKIT和Pro/DEVELOP头文件路径;2)设置库文件路径;4、当前工程设置选择Win32 Release。

设置Pro/TOOLKIT程序所需要的几个库文件。

还有很重要的是,需要设置Ignore libraries:msvcrt.lib否则在编译连接时由于库冲突会出错。

5、开始编写程序接下来,你就可以开始编写程序了。

Pro/TOOLKIT的程序需必须包括user_initialize() 和user_terminate()函数。

基于ProE二次开发的端盖参数化模型的实现47244

基于ProE二次开发的端盖参数化模型的实现47244

目录第一章绪论 (1)1.1 三维CAD技术 (1)1.1.1CAD技术的发展 (1)1.2 课题背景及意义 (2)1.3 使用程序的开发工具 (3)1.4 课题的主要研究内容 (3)第二章Pro/TOOLKIT二次开发的基础理论........................... 错误!未定义书签。

2.1 Pro/TOOLKIT的基本知识 (3)2.1.1 Pro/TOOLKIT简介 (3)2.1.2 Pro/TOOLKIT的工作模式 (4)2.1.3 Pro/TOOLKIT对象和动作 (4)2.1.4 对象句柄 (4)2.1.5 Pro/TOOLKIT函数返回值 (5)2.2 创建Pro/TOOLKIT使用程序的基本方法 (5)2.3 Pro/TOOLKIT信息文件的建立 (6)2.4 编译和连接设置 (7)2.5 编制注册文件及使用程序的运行 (7)2.5.1 编制注册文件 (7)2.5.2 使用程序的运行 (7)第三章用户界面设计 (8)3.1 菜单的设计 (8)3.1.1 向菜单栏添加菜单条 (8)3.1.2 向菜单条下添加下级子菜单 (8)3.1.3 端盖菜单设计 (8)3.2 对话框的设计 (12)3.2.1 MFC对话框 (12)3.2.2 UI对话框 (12)3.3 端盖对话框设计 (14)3.3.1 构想 (14)3.3.2 创建方法 (14)第四章端盖的开发 .......................................................................... 错误!未定义书签。

4.1 总体方案 (25)4.2 基于三维模型的参数化程序设计分析 (25)4.2.1 端盖三维模型的建立 (26)4.2.2 端盖参数化程序设计 (30)4.3 注册并运行程序 (36)4.4 操作流程 (36)第五章零件图形清单 (37)结束语 (41)参考文献 (41)附录I 程序清单 (41)附录Ⅱ外文文献翻译 (41)附录Ⅲ外文文献原文 (48)基于Pro/E二次开发的端盖参数化模型的实现摘要:CAD技术在机械设计中发挥着越来越突出的作用。

ProE_二次开发入门实例

ProE_二次开发入门实例
un)h«lloFceesFn
」rsc_5_muE
J;
xtitus=froMfrnubar m tnuFushbut t onAd4「畀sr"
‘■Mir
」gio"
.KULL
PM_E_TRUE
,niCmdBt.nl
/話
eturn0;
eKtern"C"voiltvfli dj
returnTRUE:
}…『extern intuier_initi aliiefint
jchar*』char*jchar*
*vchar_t电rrbnf[so])
r eturia.L;

初始化函数
t匸lX'r?ide

⑶创建一个窗体:右键单击解决方案的资源文件,然后点击添加Dialog,如图:
ms®
零Accelerator
S§Bitmap
SfeCursor
SHTML
FJIcon自M@nu
*fcStrrg Tatile到到Toolbar
Ol\ ersion
蜀Resource.h
©stdafx.h
g zenun,h
3 TestDelg.h□资潺立件
3zenun.rc
31zeraun.rc?
IS ReadMe.txt
#inclndtoR«lSet.
ffdncl'udfl<Pr oSalactioklh>includegVEC■吐h>
#include^?r^Notify,
^include<FroFopupmenu. h.>
Sinclude~<Pr oS^llufftr. h>

proe二次开发VB篇AutomationGateway插件的安装与测试中

proe二次开发VB篇AutomationGateway插件的安装与测试中

Pro/engineer二次开发教材之VB篇:Automation Gateway插件的安装与测试(中)【概述】:本教程为你介绍如何测试与分析Automation Gateway提供的关于在VB环境下进行PROE二次开发的例子,测试版本wildfire4.0。

通过我上次写的那个简单的教程(其实,我发的都是一些简单基础的教程,旨以通过这些比较简单易懂的教程,使大家可以掌握关于AGW插件二次开发的一些基础和概念,如果你有了解PRO/TOOLKIT二次开发的话,你会发现里面的思路对PROE 二次开发来说是通用的),我就假定你已经安装好了AGW插件了,嘿嘿~~如果有什么问题的话,可以查看上次教程的一些提示和看看帮助文档,通过自己的思考和尝试,大多都会很简单迅速解决掉的。

那我就继续下面的教程了,在进行之前,确保你的计算机已经安装好了VB6.0,PROE(这里是PROE 4.0 C000),AGW插件这几个重要的软件,还有你要了解PROE软件的一些基本术语和操作,了解VB的一些基础知识。

OK~正题来了:测试与分析Automation Gateway提供的关于在VB环境下进行PROE二次开发的例子1.打开测试的例子GW_VB_Demo(在AGW插件的安装目录里);如图所示==更多精彩,源自无维网()2.如图点击”工程”菜单下的“引用”按钮,在弹出的对话框中进行图上说明的操作^_^(把丢失的那个勾勾去掉哦)3.按下“G”键选择AGW新版本的库文件,如图所示。

OK下一步就可以进行运行了。

小知识:对AGW插件进行异步模式的开发都要如上图那样添加AGW的库到应用程序中,这样VB程序就可以引用到AGW库里面的对象与方法了。

4.启动PROE软件5.在VB环境中运行测试例子的程序,如图==更多精彩,源自无维网()6.下面对测试例子的其中一个部分进行测试与分析,其它部分就有网友们自己动手啦~运行程序会弹出一个关于AGW插件说明的对话框,点确定,下一步。

Creo二次开发方法总结

Creo二次开发方法总结

越来越多的企业已经不仅仅满足简单使用CAD软件,从而提出二次开发的要求。

通过对CAD软件的二次开发,可以使软件具备更高的实效性,提高企业产品开发效率,缩短设计周期。

Creo Parametric因为具备尺寸驱动、基于特征,单一数据库等诸多优点而应用一泛。

但是日前国内关于其二次次开发的文献很少。

Creo Parametric是美国PTC公司推出的CAD/CAM/CAE软件集成包,它具有通用性、参数化以外强大的分析功能,可以完成机构运动学、动力学仿真和有限元分析。

Creo Parametric软件在提供强大的设计、分析、制造功同时, 也为用户提供了多种二次开发工具。

在Creo Parametric下进行二次开发, 是企业建设CAD项目, 提高企业效的一项重要途径。

关于二次开发主要有以下几种方法:一、ProgramProgram是零件与组件自动化设计的一种有效工具,设计人员可以使用类似BASIC的高级语言,根据需要编写该模型的Program。

包括:控制特征的出现与否、尺寸的大小、零件与组件的出现与否等。

使用ProProgram还可以实现自动互换性设计。

Program只能做一些简单控制程序,人机对话差等缺点,所以应用具有一定的局限性。

二、用户自定义特征(UDF)设计人员在使用Pro/E进行零件设计时,经常会遇到一些重复出现的特征。

例如:螺钉或螺栓的座孔等。

设计人员可以建立自己的用户自定义特征库,根据产品特征快速生成几何模型,从而极大地提高设计人员的工作效率。

三、VB API自从Proe野火4.0增加了和VB的接口并提供能相当部分的API函数,这就使得用户可以使用VB平台对其进行二次开发。

VB具有比VC更低门槛容易上手,但也有其缺点就是PTC 公司提供的VB API函数库毕竟有限,所以实现的功能也很有限。

四、VC++结合ProToolkitProToolkit 是Creo Parametric自带的基于C语言的功能最为强大的二次开发工具, 它提供了大量的C语言库函数, 能使外部应用程序(客户应用程序)安全有效地访问Parametric的数据库和应用程序。

基于ProE二次开发齿轮

基于ProE二次开发齿轮

基于Pro/ENGINEER的渐开线变位直齿圆柱齿轮实体模型的二次开发发表时间:2008-11-10 16:08 来源:好就好模具作者:不详点击:212次以下为引用的内容:学会二次开,那么的你工资也不得了了哈哈在Pro/ENGINEER软件中,Program模块是自动化零件与组合件设计的一项重要工具,使用者可以经由非常简易且高级的程序语言来控制特征的出现与否、尺寸的大小、零件的出现与否、零件的个数等。

当零件或组合件的Program设计完成后,往后读取此零件或组合件时,其各种变化情况即可利用问答式的方式得到不同的形状,以实现产品设计的要求。

齿轮虽然在机械行业中有广泛的使用,但Pro/ENGINEER软件不能直接生成。

通过复杂的造型设计虽可以生成齿轮,但变化齿数、模数和变位系数后,又需进行复杂的设计计算和造型形状判断,工作量很大,齿轮的三维造型设计成为造型设计中望而却步的工作。

本文基于渐开线齿轮的生成原理,结合Program程序,研制出变位直齿圆柱齿轮实体造型的自动化设计程序,用户只要输入齿轮的设计参数(齿数z1、z2,模数m,变位系数x1、x2,齿槽圆角半径、齿宽、轴孔直径、键槽高度和宽度)就可以快速地生成齿轮实体,使用简单方便,该设计软件可以广泛地应用于网页设计和机械产品造型设计中。

2 齿轮齿槽形状的精确确定齿形的渐开线形状可通过高级Sweep特征设计精确地设计出来,但齿轮齿槽的形状与齿轮齿数、模数、变位系数和压力角有关。

具体地说,下列两种情况决定齿槽的形状:图1 第一种情况的齿槽形状图2 第二种情况的齿槽形状即:齿根圆的半径小于渐开线的基圆半径时和齿根圆的半径大于渐开线的基圆半径时。

为了叙述方便,下文中,分别称前者为a情况,后者为b情况。

因齿轮的啮合只在渐开线部分,因此对于a情况,设计时可在基圆的以下部分加与渐开线相切的直线以连接齿根圆,如图1所示。

而对于b情况则无需加相切直线,仅截取渐开线的一部分即可,如图2所示。

PROE二次开发

PROE二次开发

PROE二次开发做PROE毕业设计,初始设置完VS2005中C++的各种设置,用protoolkit对PROE二次开发,但是这段程序在做完编译的时候出现了三个错误两个是未声明的标识符跟一个重新定义清帮我看看到底是哪里错了#include "ProMenu.h"#include "ProUtil.h"#include "ProMenubar.h"extern “C” int user_initalize(){ProError atatus;//用户接口程序return status;}extern “C” void user_terminate(){//结束代码}extern "C" int user_initialize(){ProError status;ProFileName message_file;uiCmdCmdId cmd_idl;ProFileName Msgfile;ProStringT oWstring(MsgFile,"Message 2.txt");status = ProMenubarMenuAdd("CHECK","CHECK","Utilities", PRO_B_TRUE,MsgFile);status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,&cmd_idl);status = ProMenubarmenuPushbuttonAdd("CHECK","messagebox","mes sagebox","Active messagebox menu",NULL,PRO_B_TRUE,cmd_idl,ProStringT oWstring(message_file,"Message2.txt"));return status;}int messagebox()//消息框{AfxMessageBox(_T("第一个程序!"));//弹出一个消息框return(0);}由正常的齿轮三视图生成的代码,怎么能够改成全剖视图的呢下面是视图矩阵的一些代码static ProMatrix identity_matrix = { {1.0, 0.0, 0.0, 0.0},////单元矩阵{0.0, 1.0, 0.0, 0.0},{0.0, 0.0, 1.0, 0.0},{0.0, 0.0, 0.0, 1.0}};void ProUtilMatrixCopy(double input[4][4],double output[4][4]){int i,j;if(input == NULL){for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = identity_matrix[i][j];}else{for(i=0;i<4;i++)for(j=0;j<4;j++)output[i][j] = input[i][j];}}/*--------------------------------------------------------------------*\创建一般视图\*--------------------------------------------------------------------*/ProUtilMatrixCopy(NULL, matrix);pos[0] = 200.0;pos[1] = 600.0;pos[2] = 0.0;ProDrawingGeneralviewCreate(drawing, solid, sheet, PRO_B_FALSE,pos, 1, matrix, &view);应部分坛友短信我的要求,现将下列两个函数的代码附上:ParamGetAndShow() //功能:获取模型参数,显示并初始化对话框控件值ParamUpdate() //功能:修改对话框控件值,更新模型参数/*===================================== =============================*\函数:ParamGetAndShow()功能:从零部件模型中获得参数值,并在相应的输入框中显示\*===================================== =============================*/void ParamGetAndShow(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);int iparam;double dparam;ProName pname;ProParameter param;ProParamvalue value;ProStringT oWstring(pname,Name);//根据指定的参数名获得参数对象指针ProParameterInit(&modelitem,pname,&param);//获得参数值ProParameterValueGet(&param,&value);//根据参数值的类型,显示在相应类型的输入框中if(value.type==PRO_PARAM_DOUBLE){dparam=value.value.d_val;ProUIInputpanelDoubleSet(dialog,component,dparam);}if(value.type==PRO_PARAM_INTEGER){iparam=value.value.i_val;ProUIInputpanelIntegerSet(dialog,component,iparam);}ProParameterValueSet(&param,&value);}/*===================================== =============================*\函数:ParamUpdate()功能:更新参数值\*===================================== =============================*/void ParamUpdate(char *dialog,char *component,char *Name){ProMdl mdl;ProModelitem modelitem;ProParameter param;ProParamvalue value;ProName pname;ProStringT oWstring(pname,Name);int iparam;double dparam;ProMdlCurrentGet(&mdl);ProMdlToModelitem(mdl,&modelitem);ProParameterInit (&modelitem,pname,&param); ProParameterValueGet(&param,&value);if(value.type==PRO_PARAM_DOUBLE){ProUIInputpanelDoubleGet(dialog,component,&dparam); value.value.d_val=dparam;}if(value.type==PRO_PARAM_INTEGER){ProUIInputpanelIntegerGet(dialog,component,&iparam); value.value.i_val=iparam;}ProParameterValueSet(&param,&value);}int ProUtilStringGet(wchar_t *p_wstr, wchar_t *p_default, int max_len){wchar_t str[PRO_PATH_SIZE];if(ProMessageStringRead(max_len, str)!=0){if (p_default == NULL)return (0);ProUtilWstrcpy(p_wstr, p_default);return (1);}ProUtilWstrcpy(p_wstr, str);return (1);}尺寸表示似乎只能从实体遍历中得到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pro/E二次开发技术
Pro/E在提供强大的设计、分析、制造功能的同时,也为用户提供了多种二次开发工具。

常用的二次开发工具有:族表(Family Table)、用户自定义特征(UDF)、 Pro/PROGRAM、J—Link和 Pro/TOOLKIT等。

(1)族表 (Family Table)。

族表是一个用表格来驱动模型的工具,通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。

族表可以将事先定义好的模型(称为“GENERIC”的零件)中可供驱动的尺寸参数、特征、模型参数等放入表格中,通在表格中输入参数值就可创建一个新的零件(称为“INSTANCE”的零件)。

族表的产生过程是,首先建立一个具有代表性的零件,此零件称为通用零件或原始零件 (GENERCI RART)。

然后,根据可变情况编辑族表项目,可变项目可以是:尺寸(Dimension)、参数 (Parameter)、特征(Featrue)、与组件(Component)等。

完成族表内容后,需进行校验,然后系统会自动一一再生,从而生成若干子零件(Instance Part)。

(2)用户定义特征(UDF)。

用户定义特征是将若干个系统特征融合为一个自定义特征,使用时作为一个整体出现。

UDF适用特定产品中的特定结构,有利于设计者根据产品特征快速生成几何模型。

(3)Pro/PROGRAM应用简单易操作,但主要用于开发简单的控制程序,实现一些简单的功能,无法实现与Pro/E集成,无法与外部数据库相连,不适合于开发大型的CAD系统,只可用于开发一些简单的具有高度重复性的零件。

(4)J—Link是对Pro/E进行封装,功能上与Pro/TOOLKIT相近,能完成较复杂的程序的开发,但相比较于Pro/TOOLKIT,有些功能目前还没有实现,还有待于以后的继续发展。

(5)Pro/TOOLKIT是美国PTC公司为Pro/E软件提供的开发工具包,其主要目的是让用户或第三方通过C程序代码扩充Pro/E的系统功能,开发基于Pro/E系统的应用程序模块,从而满足用户的特殊要求。

Pro/TOOLKIT功能极其强大,库函数丰富,基本可以完成Pro/E所拥有的所有功能,是进行Pro/E二次开发最理想的工具。

此外,Pro/TOOLKIT支持完全面向对象的编程,利用其提供的菜单以及Visual C++.Net2003的可视化界面设计技术,可以设计出方便实用的人机交互界面;应用程序易于修改、可重用性高;
可以快速实现设计者所有的设计意图。

本系统在Pro/E环境中定制了大量用户化命令,需要与它低层的数据库信息进行大量交互,完成较复杂的操作,所以选择Pro/TOOLKIT作为Pro/E的二次开发主要工具来开发三维快速设计系统。

相关文档
最新文档