已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
powermill 二次开发教程二次开发教程 v1 1 广州市德慷软件有限公司广州市德慷软件有限公司 guangzhou dekang software co ltd i 版权版权 本手册著作权属于广州市德慷软件有限公司 guangzhou dekang software co ltd 所 有 在未经本公司许可的情况下 任何单位或个人不得以任何方式对本手册的部分或全部内 容擅自进行增删 改编 节录 翻译 翻印 改写 2008 2011 广州市德慷软件有限公司版权所有 保留所有权利 声明声明 为求准确 本手册已经过验证和复审 本手册包含的指导和描述对出版时的版本是准确 的 但是对以后的系统及手册可以变动 恕不另行通知 ii 前前 言言 本 powermill 二次开发教程 为 powermill 二次开发教程 为方便 说明 本手册 即 powermill 二次开发教程 简称为 教程 如何使用 教程 如何使用 教程 本 教程 主要讲解了对 powermill 的二次开发 无论你是 powermill 系统的老用户还是新朋友 都可以在 教程 中找到有用的信息 您可以按 顺序阅读每一章节 或利用目录快速获得您所需要的信息 下表可以帮助你使用本 教程 如果您是 请阅读 未使用过 powermill 的用户 建议按顺序阅读每一章节 使用老版本系统的用户 建议先浏览目录 查找自己感兴趣的章节 约定约定 在使用本系统前 请您尽量熟悉 windows 系统的操作 掌握必备的操作知识 通用格式约定 格式 意义 宋体 正文 下划线 输入信息 斜体 提示信息 图形界面格式约定 格式 意义 窗口名称 普通菜单项或树状结构菜单项 窗口中的按钮 窗体中的选项 连续选择菜单及其子菜单或树状结构 iii 键盘操作约定 格式 意义 键1 键盘上的键名 键1 键2 在键盘上同时按下两个键 鼠标操作约定 格式 意义 单击 按下鼠标左键点击某一对象 双击 连续两次鼠标左键打开某一对象 右击 选中某一对象按下鼠标右键 拖放 按住鼠标左键不放移动鼠标到指定位置 放开鼠标键 告别标志 格式 意义 提示 提醒某些操作可能会导致一些严重的后果 请用户谨慎使用 注意 提供一些应用关键的描述 举例 列举实例以便用户加深理解 前提 进行某一操作之前 必须先完成的操作 定义 定义内容中出现术语 意见反馈意见反馈 感谢您使用我们的产品及用户手册 或是对本手册中有疑问 或者对 powermill 二次开发操作有自己的见解和方法 欢迎你通过电话 020 38888630 传真 020 38888635 电子邮件 hx 反馈给我们 我们 期待您给予我们好的建议和意见 i 目目 录录 1 二次开发的要求 2 1 1 net framework 2 1 2 安装 powersolutiondotnetole 2 1 3 帮助 2 2 开始使用 powersolutiondotnetole 3 2 1 添加 powersolutiondotnetole 引用 3 2 2 修复错误的引用 4 2 3 更新 powersolutiondotnetole 控件 5 2 4 使用 powersolutiondotnetole 类 5 3 clspowermillole 类的使用 7 3 1 简介 7 3 2 powermill 示例 1 8 3 2 1 设计用户界面 8 3 2 2 连接 powermill connect 方法 9 3 2 3 执行命令 execte 方法 10 3 2 4 执行命令并返回信息 executeex 方法 10 3 2 5 获取激活体素的名称 getactiveentityname 方法 11 3 2 6 返回元素的属性 getentitysize 方法 12 3 2 7 获取 powermill 资源管理器中存在的元素列表 getentitylist 方法 14 3 2 8 刀具路径变换 14 3 2 9 连接刀具路径 15 3 2 10 完整代码 16 3 2 11 进一步增强 19 3 3 powermill 示例 2 20 3 3 1 设置用户界面 20 3 3 2 将 powermill 作为 引擎 使用 21 3 3 3 控制 powermill 的窗体属性 setwindowstate 21 3 3 4 设置项目 23 3 3 5 项目处理 24 3 3 6 进一步增强 28 4 使用 ini 文件和注册表 29 4 1 ini 文件 29 4 1 1 读 ini 文件 29 4 1 2 写 ini 文件 30 4 2 注册表 30 4 2 1 读注册表 31 4 2 2 写注册表 31 5 封装应用程序 33 5 1 添加安装项目 33 5 2 自定义安装 35 5 3 生成安装包 37 2 1 二次开发的要求二次开发的要求 1 1 net framework 因二次开发使用 powersolutiondotnetole 作为开发控件 所经他对开发的环境有一定的要求 powersolutiondotnetole 可用于任何的 net 语言中 目前支持所有版本的 vb net 和 visaual studio net 我们可以使用所有的 vb net 或者 visual studio net 开发环境中对 powermill 进行二次开 发 但是需要注意的一点是 该控件只是支持 net framework v1 1 用以上的版本 提示 提示 建议使用开了环境为visual studio 2005 安装了visual studio 2005后 系统会配置上 net 2 0 满足开发要求 本教程中的开发环境是 visual studio 2005 1 2 安装安装 powersolutiondotnetole 最新版的 powersolutiondotnetole 安装文件在 delcam 网的主页上 所以您可以从网站中获取最新的 版本 下载最新版本地址 单击链接并下载控件 解压下载文件到临时的目录 双击 setup exe 根据提示完成安装 1 3 帮助帮助 帮助文件的开启路径 开始 程序 delcam powersolutiondotnetole 3 2 开始使用开始使用 powersolutiondotnetole 2 1 添加添加 powersolutiondotnetole 引用引用 首先是创建一个新 vb net 项目 详细查看 vb net 手册关于创建新项目的一部分 在开发环境内 你可以看到如图所示的解决 方案资源管理器 如果该管理器没有显示 你可 以使用菜单显示 视图 解决方案资源管 理器 右键 引用引用 节点 选择 添加引用添加引用 这个窗体是用于添加链 接控件 单击 浏览浏览 选项卡 将 查找范围查找范围 定位于 powersolutiondotneto le安装的路径 例如 缺省路径是 c program files delcam plc powersolutiondot netole api classes 选择 powersolutiondotnet ole dll 并单击打开打开 单击 确定 4 如果你展开了 引用引用 节点 你可以在引用当中看到 powersolutiondotnetole 新的引用会被创建 在 解决安装资源管理器解决安装资源管理器 中选择 powersolutiondotnetole 引用 你就会看到属 性窗体 如果没有显示 使用功能键 f4 查看 确保复制到本地复制到本地的属性值是 truetrue 该设置的缺 省值是 truetrue 但是必须注意的是该设置不能够 更改为 falsefalse 如果设置为 truetrue 项目就会把 dll 文件复制到 项目的保存路径 表示这个版本的 dll 控件会在 你的应用程序建立时安装到目标路径 这个会防 止出现一些控件错误 例如缺少 dll 控件等错 误 2 2 修复错误的引用修复错误的引用 项目引用控件的注册信息保存在项目中 如果这个引用出现了错误 你就不能够完成你的项目和测试 您的项目 如下图所示为丢失了 powersolutiondotnetole 的引用 这种错误可能出现在控件已经被删除的情 况 错误的引用会在 解决方案管理器解决方案管理器 中标识 出来 如图所示 5 修复这一个错误 在你的项目的引用中右键 powersolutiondotnetole 节点 并选择 移除移除 接着操作的步骤就是 2 1 章节的添加 powersolutiondotnetole 引用 添加 powersolutiondotnetole 引用 2 3 更新更新 powersolutiondotnetole 控件控件 因为你的应用程序已经把控件复制到当前目录中 而 powersolutiondotnetole 控件的版本是在你建 立 vb net 项目时使用的版本 安装并更新控件的版本对你的应用程序的应用没有不适应的错误 使用旧 版本的控件 dll 应用程序也能够正常的运行 如果你希望能够使用新版本的 dll 控件中的新功能函数 你需要做的是 打开你的 vb net 程序并正常的运行程序 该引用会自动的更新到新的控件 并把新的控 件复制到当前的目录中 2 4 使用使用 powersolutiondotnetole 类类 powersolutiondotnetole 类允许你通过代码连接到每一个 delcam 的产品 此外 这一个类是共享的 这表示你可以使用 ole 连接到 powermill 项目下的所有的表格 类 模块等都可以使用同一个 ole 的连 接 使用控件中的所有类 你可以每次引用全部的 命名空间命名空间 例如 从你的应用程序的设计视图框中的主窗体中 双击标题栏 vb net 会自动进入 form load 事件代码中 如果你输入 powersolutiondotnetole 然后再按下 键 vb net 会出现命令提示 如下图所示 6 示例中的连接 powermill 和执行宏命令 你会使用 这些代码会比较长 并且比较难明白意思 所以你可能使用 快捷键 通过使用 importsimports 语句指定类 在窗体 类或者模块代码的第一行 你可以设置 快捷键 例如 你可以使用这些定义好的 快捷键快捷键 来访问类 例如 private sub form1 load byval sender as system object byval e as system eventargs handles mybase load powersolutiondotnetole clspowermillole connect powersolutiondotnetole clspowermillole execute create tool ballnosed end sub imports pmill powersolutiondotnetole clspowermillole imports pshape powersolutiondotnetole clspowershapeole private sub form1 load byval sender as system object byval e as system eventargs handles mybase load pmill connect pmill execute create tool ballnosed end sub 7 3 clspowermillole 类的使用类的使用 3 1 简介简介 使用 clspowermillole 类 可以直接的将你的应用程序和 powermill 相连 下面的表格将把 clspowermillole 类的函数功能显示出来 clspowermillole 类元素 clspowermillole 类元素 名称 描述 更多信息 guidisplayed 用于显示 隐藏 powermill 的菜单 工具栏等 示例 2 isconnected 用于检查 ole 连接是否已经和 powermill 连接 visible 设置 powermill 应用窗体是否可见 示例 2 closeoleconnections 取消 powermill 的 ole 连接 connect 创建 powermill 的 ole 连接 示例 1 connecttonew 不管 powermill 是否已经运行 创建一个新的 powermill ole 接口 示例 2 dialogsoff 关闭弹出信息提示对话框 示例 1 dialogson 打开弹出信息提示对话框 示例 1 doesgroupexistininfolist 用于检查当前项目中的体素参数列表是否存在一组设置 示例 2 execute 执行一句或多句命令 示例 1 executeex 执行一个宏命令并返回值到命令框中 示例 1 getactiveentityname 返回激活类型中的激活体素名称 示例 1 getentitylist 返回指定的类型的体素的信息列表 示例 1 getentityparameterinfo 使用doesgroupexistininfolist 和 parseparameterinfoforsetting 函数 计算出指定的体素的变 量 返回变量值到指定的数组中 示例 2 getentitysize 返回指定体素的最小 最大值 除了刀具 组合 残留模 型 用户坐标系和 nc 程序 示例 1 getlastcreatedentityname 返回指定的体素的名称 parseparameterinfoforsetting 通过使用getentityparameterinfo 在指定的组和设置值中 搜 索需要的值 返回正确的值 示例 2 setwindowstate 设置 powermill 窗体是最小化或者最大化 示例 2 startandconnecttopowermill 如果 powermill 已经运行 则进行连接 如果没有运行 则会自动打开一个新 powermill 节点 并进行连接 version 返回当前连接 powermill 的版本号 8 3 2 powermill 示例示例 1 powermill 示例 1 会带领你引领你通过创建一个窗体 并计算刀路 移动刀路到毛坯或者模型的顶部 然后多次复制到毛坯或者模型的底部 或者指定的位置 已经完成的项目存在于 examples powermill tutorial 1a 目录下 该示例所涉及的方法有 connect execte executeex dialogsoff dialogson getentitylist getactiveentityname 和 getentitysize 3 2 1 设计用户界面设计用户界面 这一节包括建立用户界面 从开始 powermill 连接 和开始新的 vb net 应用程序 添加 powersolutiondotnetole 控件的引用 在窗体的界面设计中 如下图所示设置界面 更改界面中各控件的属性 9 通过在 解决方案资源管理器 中选择 form1form1 节点右键 从弹出菜单中选择 查看代码查看代码 进行代码的查看 使用 imports 语句进行 clspowermill 的快捷键设置 3 2 2 连接连接 powermill connect 方法方法 connect 方法是用于建立应用程序的 ole 连接 该方法可以用于 clspowermill clspowershape 和 clscopycad 三个类 这一个连接必须在其它操作之前 connect 可以返回 true 各 false 这就取决于 ole 和应用程序是否成功连接 双击界面中的 应用 按钮 将时行按键事件代码 以下代码是用于检查 ole 连接是否成 功连接 imports powersolutiondotnetole clspowermillole imports pmill powersolutiondotnetole clspowermillole public class form1 inherits system windows forms form end class private sub cmdapply click byval sender as system object byval e as system eventargs handles cmdapply click 建立ole连接并进行检查 if pmill connect false then 提醒用户 msgbox 确保powermill正在运行 退出子程序 return end if end sub 10 注 每一次程序中的 应用 按键被单击 connect 方法都会被使用 这不会造成运行出错 如果 ole 连接已经存在 调用 connect 方法会自动简单地重复利用这个连接 注意 注意 最终完成的 cmdapply click 事件代码请查看已经建立的完整的示例 3 2 3 执行命令 执行命令 execte 方法方法 该方法用于应用程序执行 powermill 宏命令 该方法适用于 clspowermill clspowershape 和 clscopycad 类 你可以使用这个方法来执行单个宏命令 例如 你也可能将多个宏命名合成一个组 使用多个命令于一行当中 如下面的命令执行效果与上面一致 3 2 4 执行命令并返回信息 执行命令并返回信息 executeex 方法方法 该方法用于执行单个宏命令 并返回执行的信息打印到命令框当中 例如 需要注意的是该命令只执行单行命令 有一些返回值缺省的会以对话框的形式显示 为了解决这一个问题 你必须在打印值之前 先把对话框信息提示关闭 这样强行将返回值打印在命 令框中 关闭对话框信息提示的命令是 dialogsoff 方法 例如 pmill execute edit blocktype limits pmill execute edit block resetlimit 0 pmill execute edit block reset pmill execute edit blocktype limits edit block resetlimit 0 edit block reset dim toolpaths as string toolpaths pmill executeex print entity toolpath 11 注意 在你使用 dialogsoff 方法之后 对应的你应该使用 dialogson 方法 把对话框信息提示打开 因为这在 powermill 手工操作时 必须出现一些提示性的窗体 3 2 5 获取激活体素的名称 获取激活体素的名称 getactiveentityname 方法方法 该方法用于查找指定的激活体素的名称 并返回一个选定的体互名称 你可以使用同样的方法 用于 全部的体素 添加以下的代码到 cmdapply click 事件当中 在你輸入 pmill getactiveentityname 后 你可以看到一个可选项的列表 你可以指定一种体素 例如 我们稍后会遇到同样的体素列表会出现于其他的方法 如果 powermill 没有指定的激活元素或者是不存在这些元素 那么则返回空值 你可以使用这个方法 对激活的元素进行名称的存储 并且检查元素是否激活 添加以下的代码 dim toolpathsize as string pmill dialogsoff toolpathsize pmill executeex size toolpath orig toolpath pmill dialogson dim activetoolpath as string pmill getactiveentityname enumpowermillentitytype pmtoolpath 12 使用 f5 功能键随时的测试你的应用程序 3 2 6 返回元素的属性 返回元素的属性 getentitysize 方法方法 这个方法用于返回刀具路径 边界 参考线 毛坯 特征或者模型的最小 最大值 对于所有的 powermill 元素 你可以使用同类的方法 类似于 getactiveentityname 方法 你可以指 定需要访问的元素 像 powermill 元素一样 你可以指定访问元素的名称 对于毛坯或者模型可以使用空的字符串 并 且定义 6 个变量用于保存元素大小的属性值 例如 getentitysize 方法会返回 true 或者 false 这取决于需要判断的元素的大小是否存在 你可以使用 这一特征来判断毛坯或者模型是否存在 如下你所看到的 在我们的应用程序中 你第一步需要做的时找到激活刀具路径的最小 最大 z 值 用这两个值进行判 断我们需要移动到开始点时的距离 在 apply button s click 事件中添加以下代码 接下来 如果用户在毛坯的顶部或者底部选择了刀具路径的开始或者结束 我们需要保存毛坯的大小 就像用户选择了存在的模型一样 添加以下的代码到 apply button click 事件当中 dim xmin xmax ymin ymax zmin zmax as double pmill getentitysize enumpowermillentitytype pmpattern 1 xmin xmax ymin ymax zmin zmax 定义保存刀具路径的最小和最大z值的变量 dim tp xmin tp xmax tp ymin tp ymax tp zmin tp zmax as double 获取存在的刀具路径 如果激活的刀具路径没有计算 例如 只是没批处理 我们可以侦察这一项内容 因为getentitysize函数会返回false if pmill getentitysize enumpowermillentitytype pmtoolpath activetoolpath tp xmin tp xmax tp ymin tp ymax tp zmin tp zmax false then msgbox 激活的刀具路径没有计算 return end if 13 定义保存刀具路径开始或者结束的创建的坐标系变量 dim startz endz as double 如果刀具路径的开始或者结束使用了毛坯 我们还需要获取它的大小 if optstartblock checked true or optendblock checked true then 保存毛坯大小的变量 dim blk xmin blk xmax blk ymin blk ymax blk zmin blk zmax as double 获取毛坯大小 同时检查毛坯是否已经定义 注意我们你元素名称一样使用了空字符串 if pmill getentitysize enumpowermillentitytype pmblock blk xmin blk xmax blk ymin blk ymax blk zmin blk zmax false then 提醒用户当前没有定义毛坯 msgbox 当前没有定义毛坯 return end if 保存我们需要的值 if optstartblock checked true then startz blk zmax end if if optendblock checked true then endz blk zmin end if end if 如果刀具路径的开始或者结束了模型 我们还需要获取它的大小 if optstartmodel checked true or optendmodel checked true then 保存模型大小的变量 dim mdl xmin mdl xmax mdl ymin mdl ymax mdl zmin mdl zmax as double 获取模型大小 并同时检查当时有没有模型 if pmill getentitysize enumpowermillentitytype pmmodel mdl xmin mdl xmax mdl ymin mdl ymax mdl zmin mdl zmax false then 提醒用户没有定义模型 msgbox 项目中没有模型 return end if 保存我们需要的值 if optstartmodel checked true then startz mdl zmax end if if optendmodel checked true then endz mdl zmin end if end if 如果用户指定的从顶部的距离计算到底部的距离 if optenddistance checked true then endz startz cdbl txtdistance text end if 14 注意 上面的代码中 我们使用了 cdbl cdbl 这一个 vb net 函数 进行文本框文本框的值转变了 doubledouble 变量类 型 我们知道当前刀具路径的位置 在那个地方刀具路径应该开始 在那个地方结束 现在 我们正准备添加以下的命令中 用于产生新的刀具路径 以下的操作步骤 保存项目中的当前刀具路径列表 把刀具路径从当前位置移动到需要的开始点 使用步距的值 做出多个刀具路径的备份 直到复制的刀路达到底部的点 提取新项目中的刀具路径列表 并判断是否需要进行变换刀路 将所有的刀具路径连接到一齐 3 2 7 获 取获 取 powermill 资源管理器中存在的元素列表 资源管理器中存在的元素列表 getentitylist 方法方法 该方法用于返回指定的 powermill 元素的列表 该方法使用于全部的 powermill 元素 你必须定义 3 个变量进行保存元素的值 分别是元素的数量 元素的名称 激活元素的索引 例如 在我们进行激活的刀具路径变换之前 我们现在可以使用当前项目中的刀具路径名称 添加以下代码到 cmdapply clicl 事件当中 3 2 8 刀具路径变换刀具路径变换 现在我们可以添加了一些必须宏命令 进行刀具路径的变换 首先 我们需要把激活的刀具路径变换到开始的位置 添加以下的代码 dim num as integer names as string active as integer pmill getentitylist enumpowermillentitytype pmtoolpath num names active msgbox 激活的刀具路径是 names active dim orig num as integer orig names as string orig active as integer pmill getentitylist enumpowermillentitytype pmtoolpath orig num orig names orig active 首先 我们将刀具路径移动到开始点位置 dim startzmove as double startz tp zmin pmill execute edit toolpath transform pointx 0 pmill execute edit toolpath transform pointy 0 pmill execute edit toolpath transform pointz startzmove tostring 0 pmill execute edit toolpath transform delete n pmill execute process tpxform 15 注意以上的代码中使用到 startamove tostirng 这是必须要把字符串转换数字 从而作为其中的 宏命令中的一部分 这个格式的转换是 实数 并且是取 3 位有效位 我们现在添加 z 方向的刀具路径变换代码 在事件中添加以下的代码 注意到以上的代码中 我们使用了数学函数 math abs 用于返回一个数值的绝对值 math 函数 是 net framework 中的一部分 可以用于定义数学函数 例如 math sin math sqrt math cos 等等 3 2 9 连接刀具路径连接刀具路径 在最近的工作 我们需要做的就是将变换后的刀具路径附加到最终完成的刀具路径中 首先我们需要 判断那些刀具路径是最新变换创建出来的 并且与旧的刀具路径区分开来 添加以下的代码到 cmdapply click 事件中 以步距值进行刀具路径z向的变换 dim stepdown as double cdbl txtstepdown text stepdown math abs stepdown 循环变换 直到到达z向底部 dim curz as double startz stepdown do while curz endz pmill execute edit toolpath transform pointz stepdown tostring 0 pmill execute process tpxform curz stepdown loop 获取新的元素列表 dim new num as integer new names as string new active as integer pmill getentitylist enumpowermillentitytype pmtoolpath new num new names new active 使用变量来存储新创建的刀具路径列表 dim newtoolpaths 1 as string for i as integer 0 to new num 1 标识刀具路径是否已经存在 dim fnd as boolean false for t as integer 0 to orig num 1 检查名称是否已经存在原来的旧列表中 if orig names t new names i then fnd true exit for end if next if fnd false then 如果名称没有找到 则表明是新创建的刀具路径 我们把它的名称保存下来 redim preserve newtoolpaths newtoolpaths length newtoolpaths newtoolpaths length 1 new names i end if next 16 现在我们已经把新创建的刀具路径给存储在数组当中 我们从第一个创建的刀具路径 并把余下的刀 具路径附加到该刀具路径当中 在附加完成后 把余下的刀具路径删除 添加以下的代码 并完成应用程序 3 2 10 完整代码完整代码 完整的用户代码如下所示 将新的刀具路径附加到一起 数组中的第一个元素 第一个刀具路径是我们需要添加附加的目标路径 for i as integer 1 to newtoolpaths length 1 pmill execute edit toolpath newtoolpaths 0 append newtoolpaths i pmill execute delete toolpath newtoolpaths i next imports powersolutiondotnetole clspowermillole imports pmill powersolutiondotnetole clspowermillole public class form1 inherits system windows forms form private sub cmdapply click byval sender as system object byval e as system eventargs handles cmdapply click 建立连接并进行检查 if pmill connect false then msgbox 确保powermill正在运行 退出子程序 return end if dim activetoolpath as string pmill getactiveentityname enumpowermillentitytype pmtoolpath 检查刀具路径是否激活 if activetoolpath then 如果不存在激活的刀具路径 则提醒用户并退出子程序 msgbox 确保存在激活的刀具路径 return end if 定义保存刀具路径的最小和最大z值的变量 dim tp xmin tp xmax tp ymin tp ymax tp zmin tp zmax as double 获取存在的刀具路径 如果激活的刀具路径没有计算 例如 只是没批处理 我们可以侦察这一项内容 因为getentitysize函数会返回false if pmill getentitysize enumpowermillentitytype pmtoolpath activetoolpath tp xmin tp xmax tp ymin tp ymax tp zmin tp zmax false then 17 msgbox 激活的刀具路径没有计算 return end if 定义保存刀具路径开始或者结束的创建的坐标系变量 dim startz endz as double 如果刀具路径的开始或者结束使用了毛坯 我们还需要获取它的大小 if optstartblock checked true or optendblock checked true then 保存毛坯大小的变量 dim blk xmin blk xmax blk ymin blk ymax blk zmin blk zmax as double 获取毛坯大小 同时检查毛坯是否已经定义 注意我们你元素名称一样使用了空字符串 if pmill getentitysize enumpowermillentitytype pmblock blk xmin blk xmax blk ymin blk ymax blk zmin blk zmax false then 提醒用户当前没有定义毛坯 msgbox 当前没有定义毛坯 return end if 保存我们需要的值 if optstartblock checked true then startz blk zmax end if if optendblock checked true then endz blk zmin end if end if 如果刀具路径的开始或者结束了模型 我们还需要获取它的大小 if optstartmodel checked true or optendmodel checked true then 保存模型大小的变量 dim mdl xmin mdl xmax mdl ymin mdl ymax mdl zmin mdl zmax as double 获取模型大小 并同时检查当时有没有模型 if pmill getentitysize enumpowermillentitytype pmmodel mdl xmin mdl xmax mdl ymin mdl ymax mdl zmin mdl zmax false then 提醒用户没有定义模型 msgbox 项目中没有模型 return end if 保存我们需要的值 if optstartmodel checked true then startz mdl zmax end if if optendmodel checked true then endz mdl zmin end if end if 18 dim num as integer names as string active as integer pmill getentitylist enumpowermillentitytype pmtoolpath num names active msgbox 激活的刀具路径是 names active dim orig num as integer orig names as string orig active as integer pmill getentitylist enumpowermillentitytype pmtoolpath orig num orig names orig active 首先 我们将刀具路径移动到开始点位置 dim startzmove as double startz tp zmin pmill execute edit toolpath transform pointx 0 pmill execute edit toolpath transform pointy 0 pmill execute edit toolpath transform pointz startzmove tostring 0 pmill execute edit toolpath transform delete n pmill execute process tpxform 以步距值进行刀具路径z向的变换 dim stepdown as double cdbl txtstepdown text stepdown math abs stepdown 循环变换 直到到达z向底部 dim curz as double startz stepdown do while curz endz pmill execute edit toolpath transform pointz stepdown tostring 0 pmill execute process tpxform curz stepdown loop 获取新的元素列表 dim new num as integer new names as string new active as integer pmill getentitylist enumpowermillentitytype pmtoolpath new num new names new active 使用变量来存储新创建的刀具路径列表 dim newtoolpaths 1 as string for i as integer 0 to new num 1 标识刀具路径是否已经存在 dim fnd as boolean false for t as integer 0 to orig num 1 检查名称是否已经存在原来的旧列表中 if orig names t new names i then 设置标识并退出内部循环 fnd true exit for end if next 如果名称没有找到 则表明是新创建的刀具路径 我们把它的名称保存下来 if fnd false then redim preserve newtoolpaths newtoolpaths length newtoolpaths newtoolpaths length 1 new names i end if next 19 3 2 11 进一步增强进一步增强 作为额外的练习 你还需要尝试以下的工作 为应用程序的关闭关闭按钮添加代码 例如退出应用程序代码 添加增强的代码 在选择了离顶部距离离顶部距离这个单选选项后 才激活距离距离文本框 找到可能潜在的使用应用程序产生错误的方法 并尝试着去解决它 最近完成的带有增加的代码示例保存在examples powermill tutorial 1a 路径下 将新的刀具路径附加到一起 数组中的第一个元素 第一个刀具路径是我们需要添加附加的目标路径 for i as integer 1 to newtoolpaths length 1 pmill execute edit toolpath newtoolpaths 0 append newtoolpaths i pmill execute delete toolpath newtoolpaths i next end sub end class 20 3 3 powermill 示例示例 2 这一个 powermill 示例 指引你通过创建一个 powermill 多项目批量计算处理的应用程序 它介绍了 怎么将 powermill 当成一个界面中的一个淌有用户界面的 引擎 使用 完整的应用程序保存在 examples powermill tutorial 2a 路径下 该示例中还包括一系列的方法是 guidisplayed visible connecttonew doesgroupexistininfolist getentityparameterinfo parseparameterinfoforsetting 3 3 1 设置用户界面设置用户界面 开始建立一个新的 vb net 应用项目 并且将 powersolutiondotnetole 的控件添加到应用程序当中 在设计视图当中 建立如下图所示的界面 使用 imports 语句在代码框的顶部设置 clspowermill 类的 快捷键 21 3 3 2 将将 powermill 作为作为 引擎引擎 使用使用 使用 powermill 的函数是可以很好的开发应用程序 但它存在着界面的限界 我们也可以使用 powermill 的函数 设置它不显示 本示例则使用了自动在后台运行这一功能 这本示例中 我们不显示 powermill 界面 但是可以通过 vb net 应用程序来控制 powermill 并且防 止用户手动操作 powermill 创建一个新的 powermill 应用程序 connecttonew 方法 该方法创建了一个新 powermill 接口 并连接你的 vb net 应用程序 例如 缺省的 新的 powermill 接口是不显示 你可以设置 powermill 界面不显示 当接口 ole 连接被重设时 例如使用 closeoleconnections 方法 或者退出应用程序 powermill 连接会自动的关闭 如果你设置了 powermill 接口可见 当你的应用程序使用时 powermill 界面则会重新打开 如果你 想关闭它 你需要向 powermill 传递合适的宏命令 你可以使用 visiblevisible 方法来控件 powermill 应用程序界面的可见性 例如 显示 powermill 隐藏 powermill 3 3 3 控制控制 powermill 的窗体属性 的窗体属性 setwindowstate 你可以控制 powermill 应用程序的窗体属性 例如最大化 最小化或者重新设置其大小 和将其进入 后台运算 例如 最大化 powermil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学行为的艺术
- 2025药师考试题及答案
- 2025年市场营销大赛试题及答案
- 2025年设备监理师之设备工程监理基础及相关知识自我检测试卷附答案
- 建筑起重司索信号工考试题与答案
- 从基础到精通调墨技术的学习规划建议
- 企业文化数字化建设推进计划
- 体育场馆活动策划与执行总结
- 无人机装调检修工中级工具使用手册
- 新能源汽车电池包结构设计探讨
- 食品加工企业的成本控制策略
- 2025年中国光敏药物行业市场前景预测及投资价值评估分析报告
- T/CECS 10400-2024固废基胶凝材料
- T/YNIA 002-2021生物降解非织造材料
- 5.《语文综合实践:点亮古籍之光+传承中华文脉》高二语文下学期同步课堂教学设计(高教版2023拓展模块上册)
- 全球及中国核药(核素药物)行业发展动态与需求前景分析报告2025-2030年
- 现代电机设计及分析方法课件:电机主要尺寸之间的关系
- GB/T 40565.2-2025液压传动连接快换接头第2部分:平面型
- 皮草购货合同协议
- 工程附加合同协议
- 品管圈-提高心血管介入术后患者肢体活动有效率
评论
0/150
提交评论