Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发
Polyworks支持C#二次开发,用对应的SDK文档试着做一下开发样例。
- 新建一个C#项目,在解决方案中右键添加引用。
- 添加对应的COM组件,选择Inspector。
- 窗体中加入操作按钮,名为"获取打开的Inspector项目名称"
- 查看在系统目录goodies下面的C#二次开发示例代码.
- 在表单主对象中定义一个空的IMInspect对象模块内使用
public partial class Form1 : Form
{
/*定义一个IMInspect对象模块内使用*/
private IMInspectLib.IMInspect m_imInspect = null;
- 在Form_Load事件中实例化IMInspect对象并检测是否成功
private void Form1_Load(object sender, EventArgs e)
{
/*实例化IMInspect对象*/
m_imInspect = new IMInspectLib.IMInspect();
/*如果对象实例化成功,以User名称登陆*/
if (m_imInspect != null)
{
// Identify ourselves to PolyWorks|Inspector
m_imInspect.Login("User");
}
}
- 在button1_Click事件中用imInspectProject获取当前的项目并检测是否成功,不成功则警告失败退出
private void button1_Click(object sender, EventArgs e)
{
// 用imInspectProject获取当前的项目
IMInspectLib.IIMInspectProject imInspectProject = null;
m_imInspect.ProjectGetCurrent(out imInspectProject);
if (imInspectProject == null)
{
// 获取到的项目为空,则警告获取失败
MessageBox.Show("当前Polyworks项目获取不成功!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
- 在button1_Click事件中创建当前项目的命令中心,检测不成功则警告失败退出
//创建当前项目的命令中心,检测不成功则警告失败
IMInspectLib.IIMCommandCenter imCommandCenter = null;
imInspectProject.CommandCenterCreate(out imCommandCenter);
if (imCommandCenter == null)
{
// 获取到的命令中心为空,则警告创建失败
MessageBox.Show("当前项目命令中心创建不成功!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
- 用命令中心向Polyworks发送一个简单的无返回查询指令看看是否成功
//简单无返回值命令测试
imCommandCenter.CommandExecute( "TREEVIEW FEATURE SELECT NONE ( )" );
- 用命令中心向Polyworks发送一个带返回命令的script脚本,并用变量接收,测试是否成功
//用变量接收返回值
int returnValue;
String script;
String CurPorjectName;
script = String.Concat("version \"5.0\"", "\n",
"DECLARE vCurPorjectName", "\n",
"PROJECT PROPERTIES NAME GET(vCurPorjectName)");
//执行脚本
returnValue = imCommandCenter.ScriptExecuteFromBuffer(script, "");
//外部变量接收返回值
returnValue = imCommandCenter.ScriptVariableGetValueAsString("vCurPorjectName", 1, out CurPorjectName);
MessageBox.Show("当前项目名称为 " + CurPorjectName, "获取成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
运行成功,窗口正确返回了当前的项目名称。整个样例代码开发成功。