SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1589|回复: 12
打印 上一主题 下一主题

利用Delphi进行SolidWorks二次开发 (一)

[复制链接]

98

主题

306

帖子

190

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
496
跳转到指定楼层
楼主
发表于 2011-5-15 17:05:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
利用Delphi进行SolidWorks二次开发
2010-12-14 23:57:56 作者:孙惠娟,尹洋,汤积仁,秦军军 来源:互联网
分享到 0
    以Delphi为编程语言。利用COM技术来启动SolidWorks和获得ISolidWorks接口对象,通过IUnknown接口对象和ISldWorks对象进行二次开发。以高速主轴为例,介绍了参数化生成零件、装配体的具体过程。根据参数的改变动态地生成零件和装配体。从而实现产品的系列化设计,缩短了产品的开发周期,具有较好的实用价值。
  SolidWorks软件是在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械CAD软件。各企业在实际的产品设计中大多要对通用CAD软件进行二次开发,建立适合自己的专用模块。SolidWorks的突出特点是:三维参数化特征造型,特征管理员功能,全相关的数据管理,它功能丰富、操作简单、维护方便、学习周期短、应用开发方便,与多家CAM、CAE软件有紧密接口。本文通过运用Delphi对SolidWorks进行二次开发来实现复杂的高速主轴三维成型及虚拟装配体的过程,使用ACESS数据库对高速主轴的相关参数进行传递和管理,提高了设计的效率与正确率。
  1 SolidWorks的二次开发技术
  1.1 SolidWorks API
  SolidWoks为用户提供了几百个二次开发接口(SolidWorks API),凡支持COM编程的开发工具,如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次开发。SolidWorks API是SolidWorks的OLE编程接口,为程序员提供了完全面向对象的类体系,程序员可以在自己的程序中,派生这些类的子类,生成这些类的对象,对对象进行操作,运行对象的方法,设置或修改对象的属性,从而访问SolidWorks的数据库、图形系统和系统界面。SolidWorks的API对象涵盖了全部的SolidWorks的数据模型,进行二次开发时,调用SolidWorks中的API函数,可以完成零件各特征的建立、修改、删除和压缩等各项控制,零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息,零件的装配信息,零件工程图纸中的各项信息等。图1所示为SolidWorks API的部分对象体系。
  1.2 COM技术
  组件对象模型(Component Object Model,COM)是由Microsoft公司在Windows操作系统中创建的一种二进制的网络标准,是组件(即应用程序)间的接口。它允许两个组件互相通信,而不论其运行于任何计算机(只要联网),采用任何操作系统(只要支持COM)以及该组件隶属于任何语言。另外,COM还引用了面向对象的思想,对象链接与嵌入(Object Linking and Embedding,OLE2)是第一个用COM架构的软件系统。
  

  图1 SolidWorks API部分对象体系
  1.3开发工具
  本文使用面向对象语言Delphi对SolidWorks进行二次开发。Delphi是Bodand公司开发的一种可视化应用程序开发工具,其基础语言为对象Pascal。它提供了一种快速的编译器,它具有高性能的32位本地优化代码编译器,其应用程序可以直接运行,能够最终生成可单独执行的DLL与EXE文件。另一方面,使用Delphi可方便迅速地建立强大的数据库应用程序。Delphi的数据库应用程序可以和Paradox Sybase、Microsoft SQL Server、Informix、InterBase和ODBC数据源等一起使用。
  1.4开发方法
  (1)在Delphi编程环境下,单击菜单栏中的“Project(工程)”、“Import Type Library”命令,弹出“Import Type library”对话框。
  (2)在“Import Type library”对话框中选择“SldWorks 2007 Type Liaray(Version f.0)”选项,单击“Create Unit”按钮,Delphi将在其import子目录下生成该类型库Object Pascal文件SldWorks_TLB.pas,然后就可以利用此文件进行二次开发了。
  (3)在Delphi环境下新建一个工程,加入相关代码,生成.exe文件或.dll文件,然后编译运行即可。注意要将第二步中生成的SldWorks_TLB.pas文件添加到工程中。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞6435 拍砖拍砖4141
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

15

主题

252

帖子

34

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
293
QQ
沙发
发表于 2011-5-15 17:08:12 | 只看该作者
呵呵,学习了!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

10

主题

231

帖子

36

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
293
QQ
板凳
发表于 2011-5-15 17:11:05 | 只看该作者

   经典图书
资料少~
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

225

帖子

57

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
299
QQ
地板
发表于 2011-5-15 17:11:18 | 只看该作者
编译出现如下错误:
Build
  [Warning] SldWorks_TLB.pas(38551): Method 'GetChildren' hides virtual method of base type 'TComponent'
  [Error] SldWorks_TLB.pas(39078): Identifier redeclared: 'CoEdge'
  [Warning] SldWorks_TLB.pas(40924): Method 'SetName' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(42690): Method 'SetName' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(43738): Method 'GetChildren' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(44718): Method 'SetName' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(48457): Method 'SetName' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(53757): Method 'GetChildren' hides virtual method of base type 'TComponent'
  [Warning] SldWorks_TLB.pas(63957): Method 'GetChildren' hides virtual method of base type 'TComponent'
  [Error] SldWorks_TLB.pas(85593): Identifier redeclared: 'CoEdge'
  [Error] SldWorks_TLB.pas(85598): Identifier redeclared: 'CoEdge'
  [Error] SldWorks_TLB.pas(85598): '=' expected but ')' found
  [Error] SldWorks_TLB.pas(39079): Unsatisfied forward or external declaration: '.71.Create'
  [Error] SldWorks_TLB.pas(39080): Unsatisfied forward or external declaration: '.71.CreateRemote'
  [Fatal Error] Unit_SW.pas(25): Could not compile used unit 'Drogram FilesBorlandDelphi7ImportsSldWorks_TLB.pas'
********************
有人知道怎么解决的吗?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

222

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
253
QQ
5#
发表于 2011-5-15 17:15:20 | 只看该作者

   经典案例图书
这个有难度  ....佩服!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

211

帖子

24

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
263
QQ
6#
发表于 2011-5-15 17:15:20 | 只看该作者
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

239

帖子

31

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
284
QQ
7#
发表于 2011-5-15 17:16:04 | 只看该作者

   经典案例图书
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

87

主题

300

帖子

246

金币

堂主

Rank: 4

积分
586
QQ
8#
发表于 2011-5-15 17:18:22 | 只看该作者
Delphi是过时的语言,目前使用.net开发比较多,例如c#和vb
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

253

帖子

24

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
294
QQ
9#
发表于 2011-5-15 17:20:54 | 只看该作者
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

233

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
279
QQ
10#
发表于 2011-5-15 17:25:07 | 只看该作者

   经典图书

您目前在使用那个语言在开发呢?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

222

帖子

16

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
240
11#
发表于 2011-5-15 17:27:10 | 只看该作者

目前比较多的是c#,偶尔也用VB!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

249

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
277
QQ
12#
发表于 2011-5-15 17:31:22 | 只看该作者
哦,c#
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

212

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
255
QQ
13#
发表于 2011-5-15 17:32:23 | 只看该作者
有没有二次开发的相关教程?想学。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-9-20 22:40 , Processed in 0.494274 second(s), 28 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

快速回复 返回顶部 返回列表