C#做ProENGINEER二次开发
更新时间:2024-06-07 08:49:02 阅读量: 综合文库 文档下载
许明吉博客
C# winForm Delphi 技术交流 Skype:szxumingji
? ? ? ? ? ? ?
博客园 首页 社区 新随笔 联系 管理 订阅
随笔- 244 文章- 0 评论- 42 C# 做 Pro/ENGINEER二次开发
本段解说怎样去使用 C# 去包装到Pro/ENGINEER的连接。 标题 简单异步模式
启动和停止Pro/ENGINEER 连接到一个Pro/ENGINEER的进程 完整异步模式 C# 程序疑难解答 简单异步模式
一个简单异步模式程序不实现Pro/ENGINEER来的要求句柄的途径。因此,C#不能安插当在Pro/ENGINEER里发生事件而被通知的侦听。相应的,Pro/ENGINEER不能调用当你增加时必须提供的方法,例如,Pro/ENGINEER的菜单按钮。
由于这个限制,一个简单异步模式程序可以用来自动化Pro/ENGINEER里的进程。程序可能既启动或连接到一个存在的Pro/ENGINEER会话,也可能在交互或无图形,无交互模式访问Pro/ENGINEER。
当Pro/ENGINEER运行在图形情况下,它仍然有隔交互进程对用户可用。当你设计个简单异步模式下的C#程序,头脑中有下列观念:
1. Pro/ENGINEER进程和程序同时执行操作。
2. 没有一个程序的侦听方法可以被Pro/ENGINEER调用。
启动和停止 Pro/ENGINEER
当使用C#程序,下列方法用来启动和停止Pro/ENGINEER。 方法介绍:
? ?
CcpfcAsyncConnection.Start() IpfcAsyncConnection.End()
一个C#程序可以通过CcpfcAsyncConnection.Start()方法去产生并连接到一个Pro/ENGINEER进程。一旦方法返回异步连接对象,C#程序可以使用相应的API去调用Pro/ENGINEER进程。在交互模式,当它运行时,你还可以在你的计算机上访问Pro/ENGINEER会话。
当Pro/ENGINEER终止时,这个程序不会终止。当程序只是临时需要进行Pro/ENGINEER操作的时候很有用,因此在会话中,必须启动和停止Pro/ENGINEER一次以上。 在任何时候,只有一个Pro/ENGINEER会话可以被启动或连接。如果C#程序产生出第二个会话,对第一个会话的连接将丢失。
为终止任何程序连接的Pro/ENGINEER进程,调用IpfcAsyncConnection.End()方法。 建立个非交互会话
你可以产生个既无交互又无图形的Pro/ENGINEER会话。在异步模式,在调用CcpfcAsyncConnection.Start()的Pro/ENGINEER启动/连接字符串中包含下列字符串:
1. -g:no_graphics —— 关闭图形显示;
2. -i:rpc_input —— 导致Pro/ENGINEER仅从你的异步程序期望输入。ote注意:
这些参数都需要,但是顺序不重要
调用一个无交互,无图形会话的语法如下: IpfcAsyncConnection aC;
CcpfcAsyncConnection ccAC = new CcpfcAsyncConnection(); aC = ccAC.Start(\-g:no_graphics -i:rpc_input\这里
这个例子演示C#。方法异步启动Pro/ENGINEER,然后加载一个会话并在Pro/ENGINEER里打开一个模型。 using pfcls;
public class pfcAsynchronousModeExamples {
public void runProE(string exePath, string workDir) /*
第一个参数 : Pro/ENGINEER 执行命令的路径
行选项:-i 和 -g 标识使 Pro/ENGINEER 运行在无图形,无交互模式 第二个参数:菜单和消息文件的字符串路径 */ {
IpfcAsyncConnection asyncConnection = null; CCpfcAsyncConnection cAC = null; IpfcBaseSession session; try {
cAC = new CCpfcAsyncConnection();
asyncConnection = cAC.Start(exePath + \-g:no_graphics -i:rpc_input\\\
session = asyncConnection.Session as IpfcBaseSession; // 设置工作目录
session.ChangeDirectory(workDir); // C#进程调用和其它将进行的其它进程 IpfcModelDescriptor descModel ; IpfcModel model;
// 载入工作目录下的 \文件
descModel = (new CCpfcModelDescriptor()).Create((int)EpfcModelType.EpfcMDL_PART, \null);
model = session.RetrieveModel(descModel); }
catch (Exception ex) {
MessageBox.Show(ex.Message.ToString()); }
// 当完成,结束 Pro/ENGINEER 会话
finally {
if (asyncConnection != null) if (asyncConnection.IsRunning()) asyncConnection.End(); } } }
连接到Pro/ENGINEER进程 Methods Introduced: 方法介绍:
? ? ? ?
CcpfcAsyncConnection.Connect() CcpfcAsyncConnection.ConnectWS()
CcpfcAsyncConnection.GetActiveConnection() IpfcAsyncConnection.Disconnect()
一个简单异步模式程序也可以连接到本地机器上已经运行的Pro/ENGINEER进程。CcpfcAsyncConnection.Connect()方法执行这个连接。如果多个Pro/ENGINEER会话运行,CcpfcAsyncConnection.Connect()失败。
如果几个版本Pro/ENGINEER在相同机器运行,试着通过指定用户和显示参数连接。然而,如果几个版本Pro/ENGINEER运行在相同用户和显示参数,可能不能连接。
CcpfcAsyncConnection.connectWS()把Pro/ENGINEER同Pro/INTRALINK3.x 连接起来。
CCpfcAsyncConnection.GetActiveConnection返回当前到Pro/ENGINEER会话的连接。
为了从Pro/ENGINEER进程解除连接,调用IpfcAsyncConnection.Disconnect()方法。
通过Connection Id连接 方法介绍:
? ? ? ?
IpfcAsyncConnection.GetConnectionId() IpfcConnectionId.ExternalRep CCpfcConnectionId.Create()
CCpfcAsyncConnection.ConnectById()
每个Pro/ENGINEER进程管理一个通讯目的的唯一标识。 这个Id可以用来重新连接到个Pro/ENGINEER进程。
IpfcAsyncConnection.GetConnectionId()方法返回一个包含连接Id的数据结构。 如果连接Id必须传递给其它程序,IpfcConnectionId.ExternalRep提供了连接Id的字符串外部表示。
CCpfcConnectionId.Create()方法输入一个字符串表示后创建一个ConnectionId 数据对象。CCpfcAsyncConnection.ConnectById()方法通过指定连接Id连接到Pro/ENGINEER。 注意:
每个Pro/ENGINEER进程的连接Id是唯一,一旦Pro/ENGINEER退出就不维护了。 Pro/ENGINEER 进程的状态 方法介绍:
?
IpfcAsyncConnection.IsRunning()
为发现一个Pro/ENGINEER进程是否运行,使用方法pfcAsyncConnectionAsyncConnection.IsRunning。 得到会话对象 方法介绍:
?
IpfcAsyncConnection.Session
IpfcAsyncConnection.Session方法返回表示Pro/ENGINEER会话的会话对象。使用这个对象去访问Pro/ENGINEER会话的内容。更多信息见〈会话对象〉段。 分类: C#_WinForms
好文要顶 关注我 收藏该文
许明吉博客 关注 - 0 粉丝 - 47 +加关注
0
正在阅读:
C#做ProENGINEER二次开发06-07
Lesson13参赛教案及反思11-30
398号文-天津市《声环境质量标准》适用区域划分调整04-13
安徽省合肥市长丰县2019-2020学年八年级上学期期末语文试题05-28
论小型餐饮企业的成本控制11-24
延长锂离子电池寿命的充电和放电方法06-04
新媒体时代下的网络舆论传播新特点08-30
油气储运如何加强安全管理11-08
台风应急预案06-10
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- C#
- ProENGINEER
- 开发
- 生物分离技术题库
- RS232-422-485特性比较
- 综合实验答案第二套
- 2002--2012年云南省教师资格证考试中学教育心理学试卷历年真题及
- 第三届大学生安全知识竞赛
- 上海市建设工程安全生产管理资料实例 二、策划 - 图文
- 染整工艺学综合习题
- 化工热力学-第4章练习题
- 2018年食品安全全套管理制度汇编 - 图文
- 运筹学
- 学风建设启动仪式(动员大会)策划
- 哈工大 材料加工-铸造工艺学复习题答案
- 农村改厕宣传明白纸
- 穷人的F-16:歼-7PG在巴军眼中地位不次于F-16
- 新编语文S版四年级语文上册《语文百花园二》教学设计(详细解读)
- 光伏发电项目容性无功补偿容量研究
- 高级办公自动化考试知识点摘要
- 王弼《老子指略》译文
- 视觉传达设计专业人才培养方案
- 考勤考核管理制度