Begtostudy(白途思)'s Professional Technology Blog

欢迎访问begtostudy的专业知识博客!主要是专业技术和算法为主。
  首页  :: 联系 :: 订阅 订阅  :: 管理

Proe 二次开发:Session(会话) 对象

Posted on 2011-07-10 12:06  白途思  阅读(1768)  评论(0编辑  收藏  举报

本段说明怎样使用 C# 在会话级别编程。

标题

Session 对象概述
目录
访问 Pro/ENGINEER 接口

Session 对象概述

Pro/ENGINEER Session 对象(包含在 IpfcSession 对象里),是 VBA API中的顶级对象。任何对Pro/ENGINEER 数据的访问,在访问更多特定对象前,必须先得到Session 对象的句柄。

Session 对象包含进行执行下列操作的方法:

  1. 访问模型和窗口(在《模型和窗口》里说明);
  2. Pro/ENGINEER 用户接口工作;
  3. 允许在session 里交互选择条目;
  4. 访问全局设置,例如线型,颜色和配置选项。

下列段详细说明操作。参考《控制Pro/ENGINEER》章得到更多关于怎样连接到Pro/ENGINEER会话的信息。

例子:访问Pro/ENGINEER命令行参数

下面的例子说明使用GetPorEArguments 方法区访问Pro/ENGINEER的命令行参数。第一个参数通常是Pro/E 可执行文件的完整路径。对于这个程序,下两个参数可以是("+runtime""+development")或("-Unix""-NT")。根据这两个参数,2个布尔变量被设置,并被传递到另一个使用这个消息的方法。

目录

方法介绍:

IpfcBaseSession.GetCurrentDirectory()方法返回Pro/ENGINEER的当前工作目录的绝对路径名。

IpfcBaseSession.ChangeDirectory()方法改变Pro/ENGINEER到另一个工作目录。

Pro/INTRALINK 工作区

方法介绍:

IpfcBaseSession.GetCurrentWS()方法返回连接到Pro/ENGINEER的当前Pro/INTRALINK工作区的名字。

IpfcBaseSession.SetCurrentWS()方法指导Pro/ENGINEER去连接到一个Pro/INTRALINK工作区。

注意:

一个Pro/ENGINEER会话只能被连接到一个Pro/INTRALINK工作区。为了连接到第二个Pro/INTRALINK工作区,你必须开始一个新Pro/ENGINEER会话。

配置选项

方法介绍:

你可以使用本段说明的方法编程访问配置选项。

使用IpfcBaseSession.GetConfigOptionValue()区获得一个指定配置文件选项的值。传递配置文件选项的名字给这个方法。方法返回任何配置文件选项设置的一个值数组。如果配置文件选项不是一个多值选项,它返回一个单值。如果指定配置文件选项不存在,它返回一个null

IpfcBaseSession.SetConfigOption()方法用来设置指定配置文件选项的值。如果选项是个多值选项,它向已经存在的值数组里增加一个新值。

IpfcBaseSession.LoadConfigFile()方法加载一整个配置文件到Pro/ENGINEER里。

方法介绍:

IpfcBaseSession.RunMacro()方法跑一个宏串。一个 VB API宏串等于一个Pro/ENGINEER映射键减去键序列和映射键名。为生成一个宏串,在Pro/ENGINEER里创建个映射键。关于创建个映射键的更多信息参考Pro/ENGINEER在线帮助。

Tools>Options对话框里复制产生的映射键选项值。一个例子值如下:

$F2 @MAPKEY_LABELtest;

~ Activate `main_dlg_cur` `ProCmdModelNew.file`;

~ Activate `new` `OK`;

 

键序列是$F2。映射键名是@MAPKEY_LABELtest。剩下的在第一个分号后的字符串是宏串,应当传递给IpfcBaseSession.RunMacro()

在这个情况,它如下:

~ Activate `main_dlg_cur` `ProCmdModelNew.file`;

~ Activate `new` `OK`;

 

注意:

手工创建和编辑宏串不支持,因为映射键不是一个支持的脚本语言。语法不是为用户定义,并且不能保证在不同Pro/ENGINEER日期版本中相同。

在同步模式,宏在控制从VB API程序返回到Pro/ENGINEER时才执行。宏被存储为栈模式(后进,先出)。

一旦它们被注册,宏就被执行。宏按它们被保存的相同顺序执行。

颜色和线型

方法介绍:

这些宏控制一个Pro/ENGINEER会话的一般显示。

使用IpfcBaseSession.SetStdColorFromRGB()方法去定制任何Pro/ENGINEER标准颜色。

为了改变窗口里的任何文本颜色,使用IpfcBaseSession.SetTextColor()方法。

为了改变非实体线(例如,基准)的外观,使用IpfcBaseSession.SetLineStyle()方法。

访问Pro/ENGINEER接口

Session对象有和Pro/ENGINEER接口工作的方法。这些方法提供访问消息窗口。

使用弹出消息窗口写个消息

方法介绍:

IpfcSession.UIShowMessageDialog()方法显示UI消息。方法的输入参数如下:

  1. Message——将在对话框中显示的消息文本;
  2. Options——一个IpfcMessageDialogOption实例,包含显示的消息的结果选项。如果这个不提供,窗口将显示一个默认消息窗口,里面有个消息表示和一个OK按钮。

访问消息窗口

下段说明怎样去使用VB API访问消息窗口。标题如下:

  1. 写消息到消息窗口
  2. 从消息窗口读数据

写消息到消息窗口

Methods Introduced:

方法介绍:

这些方法允许你在屏幕上显示程序信息。

IpfcSession.UIDisplayMessage()方法的参数包括:消息文件名,一个消息标识,和(可选)包含10条运行时信息的字符串对象。

例子:写个消息

下例演示怎样写个消息到消息窗口。程序使用消息文件mymessage.txt,它包含如下行:

USER Error: %0s of code %1s at %2s

Error: %0s of code %1s at %2s

#

#

 

代码如下:

 

    Public Sub printError(ByVal session As pfcls.IpfcSession, ByVal location As String, _ByVal err As String, ByVal errorCode As Integer)

        Dim message As Istringseq

 

        Try

            message = New Cstringseq

            message.Set(0, err)

            message.Set(1, errorCode.ToString)

            message.Set(2, location)

 

            session.UIDisplayMessage("pfcSessionObjectsExamples.txt", 
_"USER Error: %0s of code %1s at %2s",
_message)

 

        Catch ex As Exception

            MsgBox(ex.Message.ToString + Chr(13) + ex.StackTrace.ToString)

            Exit Sub

        End Try

    End Sub

 

从消息窗口读数据

方法介绍:

这些方法允许程序从用户那里得到数据。

IpfcSession.UIReadIntMessage()IpfcSession.UIReadRealMessage()方法包含了用来限制值访问的可选参数。

IpfcSession.UIReadStringMessage()方法包含一个可选布尔参数,它指定是否把输入的字符反射到屏幕。当提示一个用户输入个密码的时候,你可能用到这个参数。

显示特征参数

方法介绍:

IpfcSession.UIDisplayFeatureParams()方法强制Pro/ENGINEER去显示存储在一个指定特征的尺寸或其它参数。显示的尺寸然后可以被用户交互选择。

文件对话框

方法介绍:

IpfcSession.UIOpenFile()方法引发一个打开文件和浏览目录的Pro/ENGINEER对话框。这个方法允许你通过输入参数IpfcFileOpenOptions去指定几个选项。

使用CcpfcFileOpenOptions.Create()去创建一个新IpfcUI.FileOpenOptions对象实例。

这个方法返回用户选择的文件。程序必须使用其它方法或技术去进行在这个文件上的所需操作。

IpfcSession.UISaveFile()方法调用Pro/ENGINEER的保存文件对话框。这个方法接受同IpcSession.UIOpenFile()相似的选项。用户将被允许去给给一个不存在的文件设置一个名字。方法返回用户选择的文件名;程序必须使用其它方法或技术去进行对这个文件的所需操作。

IpfcSession.UISelectDirectory()方法提示用户去使用Pro/ENGINEER浏览目录对话框去选择一个目录。指定对话框的标题,一系列到其它目录的快捷方式,和浏览目录的默认目录。如果默认目录为空,使用当前目录。这个方法接受对话框标题,快捷键和默认目录选项。方法返回选择的目录路径;程序必须使用其它方法或技术去进行对这个目录的所需操作。

前往Begtostudy的编程知识博客(CSDN)