基于SolidWorks二次开发的非标准件参数化设计vc
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者通讯地址:天津工业大学(300l60) 天津大学机械工程学院(300072)
联系电话:022 - 24528336(0) 收稿日期:20030l20
机械工业出版社 l66 项机械行业标准名称及编号
序号
标准编号
标准名称
77 JB / T9930. l - 2002 立式带锯床第 l 部分:参数
78 JB / T9930. 2 - 2002 立式带锯床第 2 部分:系列型谱
参数化设计编程是通过取得不同对象的指针来对 该对象的几何参数和属性进行编辑和修改,从而形成 参数驱动的过程。
(2)编译环境设置。在 VC + + 编译器能正确区 分一般 Windows 应用程序与 SoiidWorks 应用接口程序 以 前,必 须 设 置 编 译 环 境,即 将 编 译 配 置 为 Win32reiease 或 Win32Pseudo Debug 选 项,才 能 使 程 序在编译过程中调用正确的环境定义库。
(3)加入用户接口。对 CAD 系统二次开发的目 的是使其更符合用户的使用习惯,而添加菜单、对话框 等用户接口是达到此目的常用手段,同时不影响系统 的缺省菜单功能。在 VC + + 中,菜单、对话框、位图等
现代制造工程 !""#($ )
统一称作“ 资源”,此时 SoiidWorks 本身的资源可能与 用户资源发生冲突,由此对资源的恰当管理是加入用 户接口的关键环节。
3l
CAD / CApp / CAM / CAE
pModeiDoc- > CreateCirci(e 0,0,0,0. 03,- 0. 04,0,&resuit); pModeiDoc- > CiearSeiection(); pModeiDoc- > SeiectByID( T(“ Arci ”), T(“ SKETCHSEGMENT”),0. 03,0. 05,0,&resuit); pModeiDoc- > AddDimension( - 0. 0l,0. 02,0,&resuit);/ / 定义尺寸 参数 pModeiDoc- > CiearSeiection(); pModeiDoc- > Iparamete(r T(“ Dl @ 草图 l”),&diml);/ / 参数化 草图的驱动尺寸 diml- > ISetUservaiueIn(pModeiDoc,0. 03); status = pModeiDoc- > OueryInterface( IID IpartDoc,( LpvOID ) &ppartDoc); ppartDoc- > FeatureExtrusion(l,0,l,0,0,dig. m chang,dig. m dia,0,0,0,0,0. 02,0. 02,0,0);/ / 按照用户从对话框中输入的参数重新 拉伸草图。 3. SoiidWorks 平台上的快速参数化设计实例 以某液压机的上横梁为例,图 3a 为图形库中产品 的历史资料,分别变化该部件的总高和总长后,得到如 图 3b、3c 所示的新图形。
参数化设计是指通过改动图形的某一部分或某几 部分的尺寸,自动完成对图形中相关部分的修改,从而 实现同类结构机械产品的快速修改与设计。其中,进 行驱动所需的几何信息和拓扑信息需利用商用三维 CAD 的交互功能或二次开发接口来提取。
SoiidWorkS 是国 内 外 流 行 的 大 型 通 用 三 维 机 械 CAD 平台,具有友好的 WindowS 操作风格,并提供了 VB、VC 两种基本的 API 函数接口,用户可结合特定产 品的需要,开发出具有企业特色的快速设计系统。本 文在此 CAD 平台上,通过对某液压机产品的模块化和 参数化建模,利用 SoiidWorkS 二次开发工具在 VC + + 环境下建立特定产品的用户化快速设计系统。
一、非标准件的模块化
所谓模 块 就 是“ 一 组 具 有 同 一 功 能 和 结 合 要 素 ( 指联接部位的形状、尺寸和联接件之间的配合或啮 合参数等),而具有不同用途( 或性能)和不同结构且 能互换的各个单元( 零件、组件、部件或系统)或是能 增加机床功能的单元”。非标准件的模块化是根据系 统大小的不同建立在组件级、部件级或者子系统级上
30
及零件各部分之间的参数驱动关系。
二、基于 SoiidWorkS 二次开发的机械产品 参数化设计
SoiidWorkS 中,参数化设计主要通过两种方法实 现:一是利用 CAD 系统提供的参数化功能实现模型的 设计变量驱动,即在模型的构建过程中用变量来控制 模型的几何尺寸和约束关系;二是用编程实现参数化 设计,即利用参数化绘图程序生成图形。前者比较适 用于具有简单几何约束的零件设计,对于有多驱动尺 寸的复杂零部件,其操作复杂度也明显提高,从而降低 了设计效率。后者则比较灵活,但需掌握 SoiidWorkS 二次开发技巧,在模块划分的基础上,一般要经过模块 尺寸参数化处理、程序编制等过程。
79 JB / T9930. 3 - 2002 立式带锯床第 3 部分:精度检验
80 JB / T9930. 4 - 2002 立式带锯床第 4 部分:技术条件
实现资源管理的基本步骤如下: Stepl:保存当前 SoiidWorks 所用资源; Step2:加载用户资源库; Step3:调用用户资源代码; Step4:调用完毕,返回 SoiidWorks 原始资源状态。 (4)程序调用。SoiidWorks 提供两种应用程序的 调用方式,即可以将项目编译为. ex(e 可执行)文件或. di(i 动态链接库)文件。可执行文件独立于 SoiidWorks 平台运行;而动态链接库文件需要加载到 CAD 环境后 才能被调用,通常将该. dii 文件拷贝到 SoiidWorks 安 装目录下的 APPS 文件夹中即可被系统自动加载。 2)程序实现 (l)加载用户菜单。在响应系统的“ 创建菜单”消 息中,加入参数化设计系统的用户菜单,一般需经过添 加菜单和添加菜单项两步,如下程序所示: void CMyApp::docCreateMenu(iong DocumentType) {…… pframe- > AddMenu( auT(“ 参 数 化 设 计 ”),swMenuPosition, Sbres};/ / 添加菜单 pframe- > AddMenuItem( auT“ 参数化设计”),auT(“ 输 入 驱 动 参 数”),swlastPosition,auT(“ Mydii @ MenuItemCB,输 入 驱 动 参 数 ”), Sbres);/ / 添加菜单项 ……} (2)用户资源管理。在调用用户定义资源( 如对 话框)前后,需协调其与 Soiidworks 环境资源之间的冲 突,其程序实现如下。 hINSTANCE MyInstance = NUll; hINSTANCE currentresource = Afxgetresourcehandi(e ); MyInstance = loadlibrar(y T(“Mydii. dii”)); AfxSetresourcehandi(e MyInstance); CMyDig dig;/ / 定义对话框 dig. DoModa(i );/ / 调用对话框 freelibrar(y MyInstance);/ / 释放用户资源 AfxSetresourcehandi(e currentresource); (3)参数化驱动。用户可以在对话框中输入任一 驱动参数的值,程序取得新值后刷新 CAD 三维模型, 形成新的零 / 部件。主要程序段如下: m pSoiidWorks = TheAppiication- > getSWApp( );/ / 取得主应用程 序对象 status = m pSoiidWorks- > get IActiveDo(c SpModeiDoc); pModeiDoc- > InsertSketch();/ / 插入草图
1. 模块尺寸参数化处理 模块尺寸参数化处 理 过 程 中 必 须 满 足:1 )零 件 与 零件、图形元素与图形元素之间相关联,即模块的拓扑 结构在参数化前后保持不变,如图形元素与图形元素 之间的平行、垂直、对称、同心和相切等几何约束关系 在参数化前后必须保持一致;2)零件 / 图形元素与图 形尺寸以及零件 / 图形元素之间与图形尺寸相关联,如 图形元素与图形尺寸以及图形元素之间和图形尺寸之 间约束关系在参数化前后保持一致。同时标注的图形 尺寸在图形驱动前后必须能够随新的图形自动更新。 为了保持这两个关系,必须分析模块的啮合尺寸、几何 信息和尺寸标注信息,以建立各类尺寸约束和驱动关 系。以液压机的上横梁为例,其主要驱动参数有总长 !1 、总宽 !" 、总 高 !#、液 压 缸 孔 间 距 !$1 、立 柱 孔 间 距 !$2 ,如图 1 所示。由于各筋板高度、上板与下板间的 相对装配高度与模块总高度直接相关,从而可以确定 高度之间的参数驱动关系。同理,可以分析出上横梁 总长、总宽等与各零件和特征之间的参数驱动关系,其 参数列表如图 2 所示。 2. 基于 SoiidWorkS 二次开发的设计与程序实现 1)SoiidWorkS 二次开发的关键技巧
三、结论
通过对 SoiidWorks 二次开发,在三维 CAD 平台上 建立了用户化参数设计接口,显著改善了结构相似的
图 3 上横梁参数化设计过程示意
非标准件模块修改和设计的手段,提高了新产品设计 速度。
参考文献 l 李东浩,彭润华,吴君华,夏巨谋. 参数化设计中图形信息的
前置处理技术. 计算机辅助工程,2000,(9) 2 SoiidWorks200lApI 使用指南. SoiidWorks 公司出版,200l
CAD / CAPP / CAM / CAE
基于 SoiidWorkS 二次开发的非标准件参数化设计
孙建军 黎 旭 唐慧海 黄艳群
摘要 针对特定制造行业,设计常用零部件模块,建立模块的参数化设计模型,利用 VC + + 编程工具,对大型三维 CAD 系统( SoiidWorkS)进行二次开发,编制用户化参数设计接口,实现机械产品的快速设计。 关键词:idWorks 二次开发 非标准件 模块化 参数化设计 中图分类号:TP391. 72 文献标识码:B 文章编号:1671—3133(2003)06—0030—03
前者比较适用于具有简单几何约束的零件设计对于有多驱动尺寸的复杂零部件其操作复杂度也明显提高从而降低了设计solidworks二次开发技巧在模块划分的基础上一般要经过模块尺寸参数化处理程序编制等过程模块尺寸参数化处理模块尺寸参数化处理过程中必须满足零件与零件图形元素与图形元素之间相关联即模块的拓扑结构在参数化前后保持不变如图形元素与图形元素之间的平行垂直对称同心和相切等几何约束关系在参数化前后必须保持一致零件图形元素与图形尺寸以及零件图形元素之间与图形尺寸相关联如图形元素与图形尺寸以及图形元素之间和图形尺寸之间约束关系在参数化前后保持一致
现代制造工程 2003(6 )
CAD / CAPP / CAM / CAE
图 l 液压机中上横梁的参数化模型
图 2 参数化设计中参数设置示例
(l)用户接口对象。SoiidWorks 提供面向对象的 开发环境,其 API 主要包括两类对象模型,即与用户接 口( UI)相关的对象和 API 自身的对象。前者包括主 应用程序对象( 如 SidWorks)、文档对象( 如 ModeiDoc, PartDoc,AssembiyDoc,DrawingDoc)、特征对象、特征数 据对象以及注解和部件( Component)对象等;后者则 包含如选择管理器( SeiectionMgr)、几何元素( 体,面, 边等)、属性及建模器等只与 API 有关的对象。
的标准化,是一种趋向于宏观的标准化,从而以有限的 模块组成尽可能多的产品。
模块化设计中,同一功能单元不是单一的部件,而 是由若干可互换的模块组成,同一功能的模块可在基 型、变型,甚至跨系列、跨类产品上使用,这种模块的通 用性是由模块系统设计时,通过对产品系列的分析达 到的。如液压机,一般由机械系统、液压系统、控制系 统三部分组成。其中机械系统的设计是影响整个产品 设计、制造质量、周期的关键,按布局方式,该部分可分 为组合框架式、整体框架式、单柱式、四柱式等,其基本 组成部件为上梁、下梁、立柱、工作台等。对于某一特 定模块,其构成零件之间的结构拓扑关系相对稳定,而 决定其结构拓扑的啮合尺寸及几何、形位参数则可在 一定范围内变化。为使模块可以根据不同的用户设计 要求调节参数值,必须分析模块中零件与零件之间以
联系电话:022 - 24528336(0) 收稿日期:20030l20
机械工业出版社 l66 项机械行业标准名称及编号
序号
标准编号
标准名称
77 JB / T9930. l - 2002 立式带锯床第 l 部分:参数
78 JB / T9930. 2 - 2002 立式带锯床第 2 部分:系列型谱
参数化设计编程是通过取得不同对象的指针来对 该对象的几何参数和属性进行编辑和修改,从而形成 参数驱动的过程。
(2)编译环境设置。在 VC + + 编译器能正确区 分一般 Windows 应用程序与 SoiidWorks 应用接口程序 以 前,必 须 设 置 编 译 环 境,即 将 编 译 配 置 为 Win32reiease 或 Win32Pseudo Debug 选 项,才 能 使 程 序在编译过程中调用正确的环境定义库。
(3)加入用户接口。对 CAD 系统二次开发的目 的是使其更符合用户的使用习惯,而添加菜单、对话框 等用户接口是达到此目的常用手段,同时不影响系统 的缺省菜单功能。在 VC + + 中,菜单、对话框、位图等
现代制造工程 !""#($ )
统一称作“ 资源”,此时 SoiidWorks 本身的资源可能与 用户资源发生冲突,由此对资源的恰当管理是加入用 户接口的关键环节。
3l
CAD / CApp / CAM / CAE
pModeiDoc- > CreateCirci(e 0,0,0,0. 03,- 0. 04,0,&resuit); pModeiDoc- > CiearSeiection(); pModeiDoc- > SeiectByID( T(“ Arci ”), T(“ SKETCHSEGMENT”),0. 03,0. 05,0,&resuit); pModeiDoc- > AddDimension( - 0. 0l,0. 02,0,&resuit);/ / 定义尺寸 参数 pModeiDoc- > CiearSeiection(); pModeiDoc- > Iparamete(r T(“ Dl @ 草图 l”),&diml);/ / 参数化 草图的驱动尺寸 diml- > ISetUservaiueIn(pModeiDoc,0. 03); status = pModeiDoc- > OueryInterface( IID IpartDoc,( LpvOID ) &ppartDoc); ppartDoc- > FeatureExtrusion(l,0,l,0,0,dig. m chang,dig. m dia,0,0,0,0,0. 02,0. 02,0,0);/ / 按照用户从对话框中输入的参数重新 拉伸草图。 3. SoiidWorks 平台上的快速参数化设计实例 以某液压机的上横梁为例,图 3a 为图形库中产品 的历史资料,分别变化该部件的总高和总长后,得到如 图 3b、3c 所示的新图形。
参数化设计是指通过改动图形的某一部分或某几 部分的尺寸,自动完成对图形中相关部分的修改,从而 实现同类结构机械产品的快速修改与设计。其中,进 行驱动所需的几何信息和拓扑信息需利用商用三维 CAD 的交互功能或二次开发接口来提取。
SoiidWorkS 是国 内 外 流 行 的 大 型 通 用 三 维 机 械 CAD 平台,具有友好的 WindowS 操作风格,并提供了 VB、VC 两种基本的 API 函数接口,用户可结合特定产 品的需要,开发出具有企业特色的快速设计系统。本 文在此 CAD 平台上,通过对某液压机产品的模块化和 参数化建模,利用 SoiidWorkS 二次开发工具在 VC + + 环境下建立特定产品的用户化快速设计系统。
一、非标准件的模块化
所谓模 块 就 是“ 一 组 具 有 同 一 功 能 和 结 合 要 素 ( 指联接部位的形状、尺寸和联接件之间的配合或啮 合参数等),而具有不同用途( 或性能)和不同结构且 能互换的各个单元( 零件、组件、部件或系统)或是能 增加机床功能的单元”。非标准件的模块化是根据系 统大小的不同建立在组件级、部件级或者子系统级上
30
及零件各部分之间的参数驱动关系。
二、基于 SoiidWorkS 二次开发的机械产品 参数化设计
SoiidWorkS 中,参数化设计主要通过两种方法实 现:一是利用 CAD 系统提供的参数化功能实现模型的 设计变量驱动,即在模型的构建过程中用变量来控制 模型的几何尺寸和约束关系;二是用编程实现参数化 设计,即利用参数化绘图程序生成图形。前者比较适 用于具有简单几何约束的零件设计,对于有多驱动尺 寸的复杂零部件,其操作复杂度也明显提高,从而降低 了设计效率。后者则比较灵活,但需掌握 SoiidWorkS 二次开发技巧,在模块划分的基础上,一般要经过模块 尺寸参数化处理、程序编制等过程。
79 JB / T9930. 3 - 2002 立式带锯床第 3 部分:精度检验
80 JB / T9930. 4 - 2002 立式带锯床第 4 部分:技术条件
实现资源管理的基本步骤如下: Stepl:保存当前 SoiidWorks 所用资源; Step2:加载用户资源库; Step3:调用用户资源代码; Step4:调用完毕,返回 SoiidWorks 原始资源状态。 (4)程序调用。SoiidWorks 提供两种应用程序的 调用方式,即可以将项目编译为. ex(e 可执行)文件或. di(i 动态链接库)文件。可执行文件独立于 SoiidWorks 平台运行;而动态链接库文件需要加载到 CAD 环境后 才能被调用,通常将该. dii 文件拷贝到 SoiidWorks 安 装目录下的 APPS 文件夹中即可被系统自动加载。 2)程序实现 (l)加载用户菜单。在响应系统的“ 创建菜单”消 息中,加入参数化设计系统的用户菜单,一般需经过添 加菜单和添加菜单项两步,如下程序所示: void CMyApp::docCreateMenu(iong DocumentType) {…… pframe- > AddMenu( auT(“ 参 数 化 设 计 ”),swMenuPosition, Sbres};/ / 添加菜单 pframe- > AddMenuItem( auT“ 参数化设计”),auT(“ 输 入 驱 动 参 数”),swlastPosition,auT(“ Mydii @ MenuItemCB,输 入 驱 动 参 数 ”), Sbres);/ / 添加菜单项 ……} (2)用户资源管理。在调用用户定义资源( 如对 话框)前后,需协调其与 Soiidworks 环境资源之间的冲 突,其程序实现如下。 hINSTANCE MyInstance = NUll; hINSTANCE currentresource = Afxgetresourcehandi(e ); MyInstance = loadlibrar(y T(“Mydii. dii”)); AfxSetresourcehandi(e MyInstance); CMyDig dig;/ / 定义对话框 dig. DoModa(i );/ / 调用对话框 freelibrar(y MyInstance);/ / 释放用户资源 AfxSetresourcehandi(e currentresource); (3)参数化驱动。用户可以在对话框中输入任一 驱动参数的值,程序取得新值后刷新 CAD 三维模型, 形成新的零 / 部件。主要程序段如下: m pSoiidWorks = TheAppiication- > getSWApp( );/ / 取得主应用程 序对象 status = m pSoiidWorks- > get IActiveDo(c SpModeiDoc); pModeiDoc- > InsertSketch();/ / 插入草图
1. 模块尺寸参数化处理 模块尺寸参数化处 理 过 程 中 必 须 满 足:1 )零 件 与 零件、图形元素与图形元素之间相关联,即模块的拓扑 结构在参数化前后保持不变,如图形元素与图形元素 之间的平行、垂直、对称、同心和相切等几何约束关系 在参数化前后必须保持一致;2)零件 / 图形元素与图 形尺寸以及零件 / 图形元素之间与图形尺寸相关联,如 图形元素与图形尺寸以及图形元素之间和图形尺寸之 间约束关系在参数化前后保持一致。同时标注的图形 尺寸在图形驱动前后必须能够随新的图形自动更新。 为了保持这两个关系,必须分析模块的啮合尺寸、几何 信息和尺寸标注信息,以建立各类尺寸约束和驱动关 系。以液压机的上横梁为例,其主要驱动参数有总长 !1 、总宽 !" 、总 高 !#、液 压 缸 孔 间 距 !$1 、立 柱 孔 间 距 !$2 ,如图 1 所示。由于各筋板高度、上板与下板间的 相对装配高度与模块总高度直接相关,从而可以确定 高度之间的参数驱动关系。同理,可以分析出上横梁 总长、总宽等与各零件和特征之间的参数驱动关系,其 参数列表如图 2 所示。 2. 基于 SoiidWorkS 二次开发的设计与程序实现 1)SoiidWorkS 二次开发的关键技巧
三、结论
通过对 SoiidWorks 二次开发,在三维 CAD 平台上 建立了用户化参数设计接口,显著改善了结构相似的
图 3 上横梁参数化设计过程示意
非标准件模块修改和设计的手段,提高了新产品设计 速度。
参考文献 l 李东浩,彭润华,吴君华,夏巨谋. 参数化设计中图形信息的
前置处理技术. 计算机辅助工程,2000,(9) 2 SoiidWorks200lApI 使用指南. SoiidWorks 公司出版,200l
CAD / CAPP / CAM / CAE
基于 SoiidWorkS 二次开发的非标准件参数化设计
孙建军 黎 旭 唐慧海 黄艳群
摘要 针对特定制造行业,设计常用零部件模块,建立模块的参数化设计模型,利用 VC + + 编程工具,对大型三维 CAD 系统( SoiidWorkS)进行二次开发,编制用户化参数设计接口,实现机械产品的快速设计。 关键词:idWorks 二次开发 非标准件 模块化 参数化设计 中图分类号:TP391. 72 文献标识码:B 文章编号:1671—3133(2003)06—0030—03
前者比较适用于具有简单几何约束的零件设计对于有多驱动尺寸的复杂零部件其操作复杂度也明显提高从而降低了设计solidworks二次开发技巧在模块划分的基础上一般要经过模块尺寸参数化处理程序编制等过程模块尺寸参数化处理模块尺寸参数化处理过程中必须满足零件与零件图形元素与图形元素之间相关联即模块的拓扑结构在参数化前后保持不变如图形元素与图形元素之间的平行垂直对称同心和相切等几何约束关系在参数化前后必须保持一致零件图形元素与图形尺寸以及零件图形元素之间与图形尺寸相关联如图形元素与图形尺寸以及图形元素之间和图形尺寸之间约束关系在参数化前后保持一致
现代制造工程 2003(6 )
CAD / CAPP / CAM / CAE
图 l 液压机中上横梁的参数化模型
图 2 参数化设计中参数设置示例
(l)用户接口对象。SoiidWorks 提供面向对象的 开发环境,其 API 主要包括两类对象模型,即与用户接 口( UI)相关的对象和 API 自身的对象。前者包括主 应用程序对象( 如 SidWorks)、文档对象( 如 ModeiDoc, PartDoc,AssembiyDoc,DrawingDoc)、特征对象、特征数 据对象以及注解和部件( Component)对象等;后者则 包含如选择管理器( SeiectionMgr)、几何元素( 体,面, 边等)、属性及建模器等只与 API 有关的对象。
的标准化,是一种趋向于宏观的标准化,从而以有限的 模块组成尽可能多的产品。
模块化设计中,同一功能单元不是单一的部件,而 是由若干可互换的模块组成,同一功能的模块可在基 型、变型,甚至跨系列、跨类产品上使用,这种模块的通 用性是由模块系统设计时,通过对产品系列的分析达 到的。如液压机,一般由机械系统、液压系统、控制系 统三部分组成。其中机械系统的设计是影响整个产品 设计、制造质量、周期的关键,按布局方式,该部分可分 为组合框架式、整体框架式、单柱式、四柱式等,其基本 组成部件为上梁、下梁、立柱、工作台等。对于某一特 定模块,其构成零件之间的结构拓扑关系相对稳定,而 决定其结构拓扑的啮合尺寸及几何、形位参数则可在 一定范围内变化。为使模块可以根据不同的用户设计 要求调节参数值,必须分析模块中零件与零件之间以