Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件
插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给加载它们的模块。在这种情况下,插件和PolyWorks Metrology Suite模块通过COM接口交互,它们可以同时被视为彼此的客户端和服务器。
插件用于向PolyWorks套件模块添加特定功能,例如作为探测设备和宏命令,可以通过模块的图形用户界面(GUI)实现。因为插件是在与模块相同的过程中运行COM层增加的性能成本最小。
- 示例文件位置:
\CSharp\CSharp3DSceneRendering
Shows how to create and add the IM::IDrawNode derived class to the host application draw nodes collection. When added, the draw node will draw simple shapes, text, and annotations into the 3D Scene.
演示如何创建IM::IDrawNode派生类并将其添加到宿主应用程序draw nodes集合。添加后,“绘制”节点将在3D场景中绘制简单的形状、文本和注释。
\CSharp\CSharpBasic
Shows how to implement a basic plug-in supporting common COM Interfaces such as IIMPlugin and IIMCommand.
展示了如何实现一个基本插件来支持公共COM接口,如IIMPlugin和IIMCommand。
\CSharp\CSharpCommands
Shows how to implement MSCL commands with arguments.
演示如何使用参数实现MSCL命令。
\CSharp\CSharpLineScanFramework
Shows how to implement a new Line Scanner plug-in
演示如何实现一个新的线扫描仪插件 - 下面是插件可以实现的接口:
- 插件存放的位置:
插件必须放在PolyWorks安装中的\plugins文件夹中,插件的支持文件(即其他必需的DLL)应放在子文件夹中。
\plugins文件夹的下方,以相关插件文件命名,减去扩展名“.dll”。
对于Visual Basic。NET和C#插件,所需的DLL必须分别替换被放置在以所需DLL命名的子文件夹中,减去扩展名“.DLL”。
在某些情况下,如果不能使用\plugins的子文件夹,则支持文件可以放在将加载插件的可执行文件旁边的\bin中文件夹(或子文件夹,如果可能的话也可以)。
生成一个插件
-
尝试把第二个案例转成COM组件 写好说明 公司等信息
-
勾选为COM互操作注册
-
由于签名比较麻烦,且引用的DLL也要签名的密钥,失败多次之后就没有为程序集签名了。
-
编译生成CharpBasic.dll在debug目录下,复制出来。
-
编译插件: 安装到INSTALL_DIR\plugins
In most cases, any additional DLLs required by your plug-in should be installed in a
subfolder named like this:
在大多数情况下,插件所需的任何附加DLL都应该安装在
子文件夹的名称如下:
INSTALL_DIR\plugins[name of your plug-in without extension]
Ex: INSTALL_DIR\plugins\CompanyNamePlugin\Additional1.dll
INSTALL_DIR\plugins\CompanyNamePlugin\Additional2.dll
For Visual Basic and C#, assembly binding is different. Therefore, any additional DLLs required by your plug-in should be installed in a subfolder named like this:
对于Visual Basic和C#,程序集绑定是不同的。因此,任何额外的DLL插件所需的文件应安装在名为以下内容的子文件夹中:
Ex: INSTALL_DIR\plugins\Additional1\Additional1.dll
INSTALL_DIR\plugins\Additional2\Additional2.dll -
注册插件: 右键管理员身份运行INSTALL_DIR\bin目录下的RegisterIMCOMServers.bat
必须将新插件注册为COM组件,然后才能安装该插件被PolyWorks套件使用。
插件和任何支持文件使用前,复制到\plugins文件夹(如如第4.2.1节“插件位置”所述),必须运行注册服务器。在\bin文件夹中找到用于注册插件的bat文件。要正确考虑Windows安全策略。必须运行bat文件,以获取足够的权限。
Windows 7:
右键单击 RegisterIMCOMServers.bat文件并选择以管理员身份运行。这个注册将对所有用户有效。
Windows 8及后续版本:
右键单击 RegisterIMCOMServers.bat文件并选择以管理员身份运行。这个注册只对当前用户有效。
打开看下,原理似乎是把放在 plugins\目录下的所有dll模块和插件都自动注册一遍,也就不用特意写dll名称了。
- 调用COM组件: 此时打开引用寻找里面的COM组件,有一个叫示例代码1.0的组件出现了。但是具体怎么样,效果怎么样,还没有仔细挖掘。COM组件很强大,需要进一步的学习研究。