Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发

Polyworks支持C#二次开发,用对应的SDK文档试着做一下开发样例。

  1. 新建一个C#项目,在解决方案中右键添加引用。
  2. 添加对应的COM组件,选择Inspector。
  3. 窗体中加入操作按钮,名为"获取打开的Inspector项目名称"
  4. 查看在系统目录goodies下面的C#二次开发示例代码.
  5. 在表单主对象中定义一个空的IMInspect对象模块内使用
    public partial class Form1 : Form{/*定义一个IMInspect对象模块内使用*/private IMInspectLib.IMInspect m_imInspect = null;
  1. 在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");}}
  1. 在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;}
  1. 在button1_Click事件中创建当前项目的命令中心,检测不成功则警告失败退出
 //创建当前项目的命令中心,检测不成功则警告失败IMInspectLib.IIMCommandCenter imCommandCenter = null;imInspectProject.CommandCenterCreate(out imCommandCenter);if (imCommandCenter == null){// 获取到的命令中心为空,则警告创建失败MessageBox.Show("当前项目命令中心创建不成功!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}
  1. 用命令中心向Polyworks发送一个简单的无返回查询指令看看是否成功
//简单无返回值命令测试imCommandCenter.CommandExecute( "TREEVIEW FEATURE SELECT NONE ( )" );
  1. 用命令中心向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);

运行成功,窗口正确返回了当前的项目名称。整个样例代码开发成功。

Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发相关推荐

  1. Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

    Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...

  2. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  3. Polyworks脚本开发学习笔记(十)-互动式开发及出错控制

    Polyworks脚本开发学习笔记(十)-互动式开发及出错控制 第八章组合的各种命令,完成了一个对所选的测点名称进行命名的任务.但是,由于任务中没有交互环节,只能机械地将 曲面点 - 包边点改为Flu ...

  4. Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理

    Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理 Polyworks的工作任务存储分为工作区和项目两级,通过WORKSPACE命令获取工作任务信息,实现更好的任务管理. 下 ...

  5. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  6. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

    Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法 把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐.为了把这个学习笔记凑够 ...

  7. 电脑安装python3.74_python3.4学习笔记(十六) windows下面安装easy_install和pip教程

    python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安 ...

  8. Windows驱动开发学习笔记(六)—— Inline HOOK

    Windows驱动开发学习笔记(六)-- Inline HOOK SSDT HOOK Inline Hook 挂钩 执行流程 脱钩 实验一:3环 Inline Hook 实验二:0环 Inline H ...

  9. windows内核开发学习笔记十五:IRP结构

    windows内核开发学习笔记十五:IRP结构   IRP(I/O Request Package)在windows内核中,有一种系统组件--IRP,即输入输出请求包.当上层应用程序需要访问底层输入输 ...

最新文章

  1. mysql学习之旅-数据库自动备份-测试环境搭建
  2. boost::hana::take_front用法的测试程序
  3. java自学之路-day17
  4. C++_系列自学课程_第_12_课_结构体
  5. IntelliJ IDEA for Mac 如何设置在HTML和XML文件编辑窗口显示浏览器图标
  6. 国基金评委:关键科学问题的凝练不到位,容易被评审专家“灭掉”
  7. RedHat配置yum源
  8. 学习mongo系列(五) AND,$or,$type
  9. C# Sqlite For WP7
  10. JDK11下载和安装(windows)
  11. 数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发【转】...
  12. 聚类算法——KMeans(K-均值)
  13. 统计学——单因素方差分析
  14. App Store Connect新手指导
  15. PIC16F877A与Proteus仿真-1位7段数码管驱动
  16. closest() 方法
  17. 笔记本电脑频繁假死的一个解决办法
  18. 排序模型(learning to rank)发展史(偏推荐系统
  19. ps导出gif时是html,ps导出gif图步骤图解
  20. 【Python】基于OpenCV与UDP实现的视频流传输

热门文章

  1. 【Python】一篇文章学会def定义函数的可选参数,默认参数,有默认值的可选参数(保姆级注释)
  2. Modernizr的介绍和使用
  3. 一文搞定驱动签名流程(Win10)
  4. 在元宇宙上做传统建筑施工培训提高培训安全性和效果
  5. Google Earth Engine(GEE) ——使用大津法(OTSU)sentinel-1影像进行长时序水域面积计算和动态图加载
  6. SimCLR v2 论文阅读
  7. 超多经典 canvas 实例,动态离子背景、移动炫彩小球、贪吃蛇、坦克大战、是男人就下100层、心形文字等等等...
  8. 支付宝智慧食堂解决方案
  9. core JAVA for the impatient 阅读笔记(3) 继承
  10. mysql数据恢复慢_故障分析 | 崩溃恢复巨慢原因分析