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|Inspectorm_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;mandCenterCreate(out imCommandCenter);if (imCommandCenter == null){// 获取到的命令中心为空,则警告创建失败MessageBox.Show("当前项目命令中心创建不成功!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}
用命令中心向Polyworks发送一个简单的无返回查询指令看看是否成功
//简单无返回值命令测试mandExecute( "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);
运行成功,窗口正确返回了当前的项目名称。整个样例代码开发成功。