南京东岱信息技术有限公司有一大批技术精湛的solidworks技术工程师,他们可以给你解决一些技术上面的问题。

摘要: 用三维设计软件So lidWorks 进行产品设计开发过程中, 为了实现设计意义上的变量化绘图和系列化设计, 有必要对So lidWo rks 进行本地化的二次开发. 介绍了SolidWo rks 的应用程序接口( applicat ion pro gr amming interface, API) 函数的使用方法, 并结合门式起重机端梁的开发实例, 阐述了利用Visual C++ 编程环境对Solid Wor ks 进行二次开发, 根据产品设计计算的参数动态地改变模型零件尺寸, 实现产品变量化设计、三维建模绘图的思想和方法. 本方法中So lidWorks VC+ + 相结合, 减少了编程工作量, 能够有效提高产品的设计开发效率, 对于开发系列化产品设计软件具有重要参考价值.

So lidWor ks 1 套基于Windows 平台的优秀三维设计软件, 具有用户界面友好, 上手快的优点. 采用特征建模、变量化驱动可方便地实现三维建模、装配和生成工程图. SolidWo rks 软件本身所具有的交互方式, 可以使用户对已生成模型的尺寸、几何轮廓和相互约束关系随时进行修改, 而不需要编程. 但要实现设计意义上的变量化绘图和系列化设计, 需要建立设计计算获得的参数与三维图形之间的直接相关性, 这是SolidWor ks 软件本身所无法实现的[ 1] . 所以要使SolidWorks 在产品设计过程中充分有效地发挥作用,就需要对其进行专业化和本地化的二次开发工作.

通过SolidWo rks 软件内嵌的应用程序接口( Applicat ion Pro gramming Interface, API) , 可以对Solid-Wo rks 的设计参数百分之百进行修改, 实现有效的二次开发. 任何支持API 的编程语言都可作为开发工具, Visual C+ + , Visual Basic, Delphi . 本文着重探讨基于V isual C+ + 6. 0 SolidWo rks2006 进行变量化设计二次开发的方法.

1 SolidWorks 二次开发原理与思路

1. 1 二次开发原理

SolidWor ks 进行二次开发主要通过软件内嵌的A PI 接口, 该接口为用户提供了自由、开放、功能完整的开发工具, 其中包含了大量的功能函数. 用户借助高级编程语言作为开发平台, 在设计友好操作界面的同时, 通过在程序中调用API 函数可以访问和操作SolidWorks, SolidWor ks 进行各种操作控制, 以实现产品三维模型的建立.

SolidWorks 所提供的各种API 函数数以百计, 这些API 函数是对SolidWorks 进行二次开发的基础. 但是在用户利用编程语言开发自己的应用程序时, 需要对这些API 函数进行频繁调用. 所以非常有必要利用API 函数来生成成员函数, 并封装为1 个类, 以简化程序的编写工作. 该类能够控制SolidWorks 进行各种操作, 如启动、关闭、打开和关闭零件文件、修改草图和特征参数, 以及模型重建、零部件装配等.

1. 2 二次开发思路

通过编程调用API 函数对SolidWorks 进行二次开发通常有2 种方式, 一是完全编程的方式, 即在编程环境中通过对API 函数的调用, 来实现在SolidWor ks 中进行建模所需要的全部操作. 该方法使三维模型完全实现了参数驱动, 但编程工作量大, 开发效率低, 对开发人员的要求也较高. 二是采用SolidWo rks 建模与在编程环境中编程相结合的方法来实现对So lidWorks 的二次开发, 首先在SolidWor ks 中建立初始三维模型, 确定具体设计变量; 然后在程序中调用API 函数, 修改模型的设计变量并重建, 以得到最终模型. 在此方法中, 模型的设计变量是程序与模型之间相联系的纽带, 通过少量的变量化参数来控制模型, 实现快速、准确的三维图形设计.

相对于完全编程的方式, 由于第二种方法将大部分的工作( 即初始模型建立部分) 转移到了相对简易的SolidWo rks 中进行, 所以大大减少了相对繁琐的编程工作的工作量, 提高了开发效率. 本文中采用SolidWor ks 初始建模与VC++ 编程相结合的方法, 选定典型零件, 按正确的设计关系在SolidWorks 环境中绘制三维模型图形并保存. 在三维建模过程中根据设计需要分析并确定模型的设计变量, 然后通过编程环境编制程序, 调用API 函数打开已保存好的三维零件图形文件, 修改其设计变量并重新生成模型, 实现模型几何或拓扑信息的改变, 从而完成零件的三维变量化建模过程.

2 SolidWorks 二次开发过程

以下通过对门式起重机端梁的变量化设计具体阐述基于Visual C ++ 6. 0 编程环境对Solid Wo rks2006 的二次开发过程.

2. 1 SolidWorks 中建立三维模型

首先在SolidWor ks 中进行零件建模. 门式起重机端梁的结构比较简单, 主要由上下盖板、主副腹板组成. SolidWo rks , 在右视基准面上建立草图, 利用直线工具画出端梁截面草图, 如图1 所示, 并通过拉伸凸台/ 基体命令, 生成端梁的拉伸特征. 创建的端梁三维模型如图2 所示.

其次确定模型的设计变量, 并添加必要的约束. 在确定设计变量时应尽量减少变量的数目, 并同结构设计计算所获得的变量保持一致. 端梁的设计变量确定为6 , 分别为盖板宽、盖板厚、腹板内侧间距、腹板外侧间距、腹板高、端梁长. 模型中其他尺寸关系及相互间的约束均在SolidWorks 建模过程中予以确定, 如端梁须相对于中心线对称; 对从属参数直接添加关系式方程( 如图1 中带”符号的尺寸为已添加关系式方程的尺寸) , 使之与设计变量关联等.

最后, 对模型中的设计变量及在后期装配中需要的配合面、基准面等进行命名, 以在程序中方便调用. SolidWo rks 中进行命名非常方便, 在此不再赘述.


2. 2 创建CSldWorks 类库

为了在程序中更方便地使用SolidWo rks A PI 函数, 通常将API 函数改写为成员函数, 并封装为1 CSldWorks . 这里主要介绍本实例中用到的5 个成员函数, 分别为启动So lidWorks、打开零件文件、修改模型尺寸、重建模型、保存零件文件, 并给出函数的实现. 其他函数可以自己编写.

//SldWorks. h

class CSldWorks

{ public: ISldWorks * m_pSldWor ks; IMo delDoc * m_pModelDoc; IPartDoc * m_pPartDo c;

HRESULT Star t( ) ; //启动So lidWor ks

HRESULT New Part ( IPartDoc * * pPartDoc) ; //新建零件文件

HRESULT SetDimValue( BST R st ringin, do uble value) ; //修改模型尺寸

HRESULT Rebuild( ) ; //重建模型

long SaveFile( BSTR Path) ;//保存零件文件

} ;

CSldWorks 类库的实现:

MSldWorks. cpp

HRESULT CSldWo rks: : Start ( )//启动SolidWorks

{ HRESU LT hr= CoCreateInstance( CLSID_SldWorks, NULL, CLSCTX_LOCAL_SERVER, IID

_ISldWor ks, ( vo id * * ) ( & m_pSldWorks) ) ;

ASSERT( hr= = S_OK& & m_pSldWorks! = NU LL) ;

m_pSldWor ks- > put_Visible( tr ue) ;

return hr;

}

HRESULT CSldWo rks: : New Part ( IPartDo c * * pPartDoc) //新建零件文件

{ HRESU LT hr= m_pSldWorks- > INew Part ( & ( * pPartDoc) ) ;

ASSERT( hr= = S_OK& & ( * pPartDoc) ! = NU LL) ;

hr= ( * pPartDoc) - > Quer yInterface( IID_IModelDoc, ( v oid * * ) & m_pModelDoc) ;

ASSERT( hr= = S_OK& & m_pModelDo c! = NU LL) ;

return hr;

}

HRESULT CSldWo rks: : SetDimValue( BSTR st ring in, double v alue) //修改模型尺寸

{ LPDIMENSION ret ;

HRESULT hr= m_pModelDoc- > IPar ameter( str ing in, & ret ) ;

ASSERT( hr= = S_OK& & ret ! = N ULL) ;

hr= ret- > put_Value( value) ;

ASSERT( hr= = S_OK) ;

ret- > Release( ) ;

return hr;

}

HRESULT CSldWo rks: : Rebuild( ) //重建模型

{ VARIANT_BOOL ret;

HRESULT hr= m_pModelDoc- > EditRebuild3( & ret ) ;

ASSERT( hr= = S_OK) ;

return hr;

}

long CSldWorks: : Sav eFile( BSTR Path) //保存零件文件

{ HRESU LT hr;

long ret= 0;

hr= m_pModelDo c- > SaveA sSilent ( Path, false, & ret) ;

ASSERT( hr= = S_OK) ;

return ret ;

}

2. 3 用户界面设计与程序建模实现

Visual C+ + 中制作窗体界面如图3 所示. 在界面的编辑框中输入端梁相应数据( 或利用编程从其他数据源读入数据) , 此处数据为设计计算所获得的参数. 点击/ 端梁建模0按钮,即可运行程序, 实现端梁的三维建模.

程序具体的工作流程如图4 所示.


以下为程序中实现对端梁变量化绘图的主要程序代码:

void CMo del JDLModel( )

{ CSldWorks SW;

char CurrentPath[ 200] ; //当前路径

CSt ring DangQianLuJing ;

GetCurr entDirectory( 200, CurrentPath) ;

DangQianLuJing . Fo rmat ( "% s", CurrentPath) ;

SW. Start ( ) ;

SW. Open( _bst r_t ( DangQianLuJing+ "\\ 模型\\ 端梁模型. sldprt") , swDocPART ) ;

SW. SetDimV alue( _bst r_t ( " 端梁上盖板宽@端梁草图") , JBCC[ 30] ) ;

SW. SetDimV alue( _bst r_t ( " 端梁上盖板厚@端梁草图") , JBCC[ 36] ) ;

SW. SetDimV alue( _bst r- t( "端梁腹板外侧间距@端梁草图") , JBCC[ 32] ) ;

SW. SetDimV alue( _bst r_t ( " 端梁腹板内侧间距@ 端梁草图") , JBCC[ 31] ) ;

SW. SetDimV alue( _bst r_t( " 端梁腹板高@ 端梁草图" ) , JBCC[ 34] ) ;

SW. SetDimV alue( _bst r_t ( " 端梁总长@端梁拉伸") , JBCC[ 28] ) ;

SW. Rebuild( ) ;

SW. Sav eFile( _bst r_t ( DangQianLuJing+ "\\ 模型\\ 端梁. sldprt") ) ;

}

5 所示为程序的变量化驱动运行结果.


3 结论

本文阐述了利用面向对象的开发工具Visual C+ + SolidWorks 进行二次开发, 实现三维变量化建模的过程. 通过对门式起重机端梁等一些典型结构件进行设计调试证明, 上述方法简便易行. 在企业产品设计开发过程中, 运用此方法并结合生产实际, 可以定制符合企业自身需要的变量化模型库, 这将极大地提高设计效率, 缩短新产品的开发周期, 具有较强的现实意义.

南京东岱信息技术有限公司目前主要从事销售solidworks以及技术支持solidworks

发表于: 2014-04-24 09:28 阅读(22573) 评论(38) 收藏 好文推荐

本博客所有内容,若无特殊声明,皆为博主原创作品,未经博主授权,任何人不得复制、转载、摘编等任何方式进行使用和传播。

作者该类其他博文:

网站相关博文:

评论列表
# re: 浅谈SolidWorks二次开发
引用
2014-05-22 17:00 | SAIIASA | 1楼
SolidWorks是一款强大的三维设计软件,大家支持一下!

# re: 浅谈SolidWorks二次开发
引用
2014-05-22 17:00 | SAIIASA | 2楼
SolidWorks是一款强大的三维设计软件,大家支持一下!

# re: 浅谈SolidWorks二次开发
引用
2014-05-22 17:00 | SAIIASA | 3楼
SolidWorks是一款强大的三维设计软件,大家支持一下!

# re: 浅谈SolidWorks二次开发
引用
2014-05-27 14:27 | ddsoftdjg | 4楼
solidworks二次开发有利于设计者提高设计速度。

# re: 浅谈SolidWorks二次开发
引用
2014-05-28 11:52 | weisir1dds | 5楼
solidworks的API接口免费开放,可以自己做插件

# re: 浅谈SolidWorks二次开发
引用
2014-05-29 13:41 | 3级死灵书 | 6楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率

# re: 浅谈SolidWorks二次开发
引用
2014-05-29 15:22 | 1TOM1 | 7楼
SolidWorks是南京东岱软件代理的三维设计软件,听说他们的工程师很专业,售后也很好,二次开发水平也很高哦。

# re: 浅谈SolidWorks二次开发
引用
2014-05-29 16:02 | Muxe | 8楼
SolidWorks是南京东岱软件代理的三维设计软件,听说他们的工程师很专业,售后也很好,二次开发水平也很高哦。

# re: 浅谈SolidWorks二次开发
引用
2014-05-29 23:11 | MrWorm | 9楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率

# re: 浅谈SolidWorks二次开发
引用
2014-05-30 13:47 | 932841651 | 10楼
solidworks simulation功能很不错,并且东岱软件的技术服务也很不错

# re: 浅谈SolidWorks二次开发
引用
2014-05-30 13:48 | 932841651 | 11楼
solidworks simulation功能很不错,并且东岱软件的技术服务也很不错

# re: 浅谈SolidWorks二次开发
引用
2014-05-30 13:48 | 932841651 | 12楼
solidworks simulation功能很不错,并且东岱软件的技术服务也很不错

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 01:07 | ddschen | 13楼
Solidworks给客户带来的就是方便、高效。看得见的经济效益!

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 20:59 | blueocean01 | 14楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 21:00 | blueocean01 | 15楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 23:49 | sxg020 | 16楼
设计无难事,就用南京东岱软件的solidworks

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 23:50 | sxg020 | 17楼
设计无难事,就用南京东岱软件的solidworks

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 23:50 | sxg020 | 18楼
设计无难事,就用南京东岱软件的solidworks

# re: 浅谈SolidWorks二次开发
引用
2014-05-31 23:50 | sxg020 | 19楼
设计无难事,就用南京东岱软件的solidworks

# re: 浅谈SolidWorks二次开发
引用
2014-06-01 21:04 | 伊豆 | 20楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率!!!

# re: 浅谈SolidWorks二次开发
引用
2014-06-02 21:20 | miss4Byouth | 21楼
Solidworks三维设计软件,功能很强大。参数化设计功能提高了工作效率。 南京东岱软件的solidworks真好,收藏着!

# re: 浅谈SolidWorks二次开发
引用
2014-06-02 21:20 | miss4Byouth | 22楼
Solidworks三维设计软件,功能很强大。参数化设计功能提高了工作效率。 南京东岱软件的solidworks真好,收藏着!

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 10:21 | WOU1989 | 23楼
http://blog.e-works.net.cn/438361/articles/1238439.html

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 10:22 | WOU1989 | 24楼
SolidWorks二次开发,方便设计人员进行设计,提高了工作效率

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:17 | Zoe1986 | 25楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:17 | Zoe1986 | 26楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:18 | Zoe1986 | 27楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:18 | Zoe1986 | 28楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:18 | Zoe1986 | 29楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:19 | Zoe1986 | 30楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:19 | Zoe1986 | 31楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:19 | Zoe1986 | 32楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:19 | Zoe1986 | 33楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:20 | Zoe1986 | 34楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:20 | Zoe1986 | 35楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:20 | Zoe1986 | 36楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:21 | Zoe1986 | 37楼
solidworks三维设计软件,功能强大。

# re: 浅谈SolidWorks二次开发
引用
2014-06-03 20:21 | Zoe1986 | 38楼
solidworks三维设计软件,功能强大。


发表评论(网友发言只代表个人观点,不代表本网站观点或立场。)

您尚未登录,请先【登录或注册

公告


南京东岱软件技术有限公司

有任何技术问题或者产品需求可以及时联系我们。

网址:www.ddsoft.com.cn

地址:南京市广州路199号天诚大厦14楼

联系方式:025-51887879/56    邮箱:chenhui@ddsoft.com.cn

三维设计软件SolidWorks /CAMWorks /ProCAM/专业钣金软件Radan/材料成本管理软件/PLM/PDMcrack


个人档案

<2019年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

最近来访

留言簿(0)

文章分类

文章档案

相册

友情链接


最新评论

UI欧--薛高斌
怎么可以看到内容啊!--qsgq7777
比较的很详细,--Szwf92618
对比很明显啊--李丶伟
SolidWorks,简单,易学,易用。--1TOM1
radan和maxxcam都不错哦!--1TOM1
这个比较还是不错的嘛,很值得我们考虑与探讨。--932841651
这个方式很不错,很实用的技巧--932841651
1111--ddsoft01
好马就得配好鞍!--bz1016
调整参数,功能很强大!--bz1016
SOLIDWORKS 2017通过在DELL工作站测试,性价比还是可以的。--ddsoftdjg
好文章,有利于厂家找到符合自己需要的软件--ddsoftdjg
SOLIDWORKS 2017增加很多功能,更人性化,实用!!!--伊豆
综合比较起来,还是Radan的功能看起来最强大--仙剑专家

阅读排行榜

评论排行榜