这是两年前毕业时写的一篇关于SolidWorks插件开发与公司PDM集成的毕业设计,最近闲来无事拿出来整理一下,大神们可以略过。

1.1   SolidWorks API接口

正确调用SolidWorks API 是完成SolidWorks二次开发中参数化设计的基础。调用SolidWorksAPI 是指调用SolidWorks 的事件、方法、属性、以及相关功能,从而完成零部件实体建模的全过程。

SolidWorks的API接口分为两种:一种是基于OLE Autonation的IDispatch技术;另一种是基于Windows基础的COM 。

OLE(Object Linking and Embedding,对象连接与嵌入),简称OLE技术。

基于OLE Automation 的IDispatch 技术作为快速开发的手段,一般常用于VB、Delphi 编程语言的接口,通过IDispatch 接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法。此种技术只能开发EXE 形式的程序,所开发的CAD 系统不能直接加挂在SolidWorks 系统界面下,无法实现与SolidWorks 系统的集成[12]

COM(Component Object Model ,组件对象模型)[13]技术是SolidWorks API 的基础,是Microsoft 公司提出的并被大多数公司支持的一种标准协议,它建立了一个软件模块同另一个软件模块的连接,当这种连接建立之后,两个模块之间就可以通过接口来进行通讯。COM接口更为简洁高效,这种技术可以使用最多的SolidWorks API 函数。

1.2   SolidWorks API对象结构

Solidworks API 通过面向对象思想组织所有的接口对象,如图3.1所示

Solidworks API对象可以分为以下几个大类。

(1)      应用程序对象:应用程序对象包括SldWorks、ModelDoc2、PartDoc、AssemblyDoc及DrawingDoc对象。

(2)      配置文件对象:配置文件对象管理零件中不同模块(零件文档模式)与装配体中不同零件(装配体文档模式)的状态。

(3)      事件对象:Solidworks API接口中提供了对事件的支持,当前版本中支持的事件类型有AssemblyDoc事件、DrawingDoc事件、FeatMgrView事件、ModelView事件、PartDoc事件、SldWorks事件及SWPropertySheet事件。

(4)      注解对象:注解对象管理文档的注解。

(5)      模型对象:模型对象描述SolidWorks内部数据结构。

(6)      特征对象:特诊对象描述SolidWorks应用程序所提供的特征操作,这些特征对象与SolidWorks 软件本身提供的特征操作相对应。

(7)      草图对象:草图对象包括管理所有的草图元素,如圆弧、长方形、样条曲线等。

1.3   SolidWorks API对象简介

(1)      SldWorks对象:SldWorks对象是所有其他对象的父类,提供了直接或间接访问其他所有SolidWorks API接口的方法,在二次开发中访问其他接口都要通过它。SldWor ks对象是二次开发中最重要的一个对象,通过它才能建立二次开发插件与SolidWorks 应用程序之间的连接。

(2)      ModelDoc对象:ModelDoc对象是SldWorks对象的子对象,同时也是所有文档模型对象(PartDoc对象、AssemblyDoc对象及DrawingDoc对象)的父对象,它封装了不同文档模型通用的属性和方法,包括文档打来、关闭、打印和保存等。同时,ModelDoc对象提供了直接访问PartDoc对象、AssemblyDoc对象和DrawingDoc对象的方法。

(3)      PartDoc对象:PartDoc对象提供Part文档模式下的操作。

(4)      AssemblyDoc对象:AssemblyDoc对象管理装配体的操作时与装配相关的,如导入零部件、添加/取消装配关系、隐藏/现实零部件等。

(5)      DrawingDoc对象:DrawingDoc对象管理工程图文档的操作,如创建、删除、对其视图等。

(6)      SelectionMgr对象:SelectionMgr对象是选择管理对象,用于管理用户的选择操作,通过它可以获得指向当前用户在SolidWorks中选择的元素。  
       

最新文章

  1. 性能计数器与profiler的组合性能诊断
  2. 调试 zeromq 发现 accept 死循环
  3. Python 基礎 - 列表的使用_v2
  4. PHP中的闭包和匿名函数
  5. django默认开事务的麻烦事
  6. 图解SQL 2008数据库复制
  7. 网页地图map
  8. ASP.NET之电子商务系统开发-3(订单)
  9. OC中多线程的一些概念
  10. RFC 协议下载方法
  11. Codeforces 691B s-palindrome
  12. GAN︱GAN 在 NLP 中的尝试、困境、经验
  13. 2017-11-4—模拟PID电路(参考ADN8834datasheet)
  14. 网站模仿——LOFTER个人主页
  15. spring boot 集成 thymeleaf
  16. Docker(4):Dockerfile命令一览
  17. mysql主从复制Error1205
  18. ASP.NET MVC IActionFilter IResultFilter IExceptionFilter/HandleError
  19. PAT甲题题解-1101. Quick Sort (25)-大水题
  20. centos 新建swap区文件

热门文章

  1. 信号之sigsetjmp和siglongjmp函数
  2. qt 总结
  3. Ubuntu10.04下载并编译Android4.3源代码
  4. c/c++编译原理
  5. CentOS7安装Tomcat8.X
  6. media type和media query
  7. react native for Android (make you first android app)
  8. ligerUI调用$.ligerDialog.open弹出窗口关闭
  9. python 笔记(一)
  10. java多线程总结六:经典生产者消费者问题实现