这是两年前毕业时写的一篇关于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中选择的元素。  
       

基于C#的SolidWorks插件开发(1)--SolidWorks API接口介绍的更多相关文章

  1. 基于swoole框架hyperf开发的纯API接口化的后台RBAC管理工具hyperfly@v1.0.0发布

    hyperfly@v1.0.0发布 本文地址http://yangjianyong.cn/?p=323转载无需经过作者本人授权 github地址:https://github.com/vankour/ ...

  2. Spring Boot入门系列(二十)快速打造Restful API 接口

    spring boot入门系列文章已经写到第二十篇,前面我们讲了spring boot的基础入门的内容,也介绍了spring boot 整合mybatis,整合redis.整合Thymeleaf 模板 ...

  3. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  4. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  5. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  6. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试【转】

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  7. 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API

    使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...

  8. 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api

    TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...

  9. Qt插件开发入门(两种方法:High-Level API接口,Low-Level API接口)

    Qt中为我们提供了两种开发插件的方式.一种是使用High-Level API接口,一种是使用Low-Level API接口.所谓High-Level API 是指通过继承Qt为我们提供的特定的插件基类 ...

随机推荐

  1. Java,javascript,html,css的关系

    内容:,就是制作者放在页面想让访问者浏览的内容 . 主要由java语言提供数据检索.更新.业务处理等. 结构:使内容更加具有逻辑性和易用性,类似于1,2级标题,正文.列表等等. HTML 表现:用于修 ...

  2. Redis的安装、配置 --转载

    原文地址:http://blog.sina.com.cn/s/blog_505bf9af0101ehhp.html redis的安装.配置 安装步骤如下:下载redis安装包:$ cd /opt/ap ...

  3. Android(java)学习笔记124:Android权限大全

    访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permissio ...

  4. Arcengine10下载地址

    ed2k://|file|%5BArcGIS.Engine.Developer.kit.10.%E8%8B%B1%E6%96%87%E7%89%88%5D.ArcGIS.Engine.Develope ...

  5. Java设计模式之策略模式(一)

    今年寒假没有回家,打算利用这个假期的时间进行学习设计模式,这一个人感觉比较牛的知识,前一段时间一直在忙着搞自己的专业课,还有就是捣鼓了一下Linux系统,没有好好的学习关于Java还有Android方 ...

  6. C语言内存管理

    作用域: 1.代码块儿作用域: 注意的是:这里面{}就代表一个代码块儿,里面的东西是独立的,不可被其他地方访问的. 2.函数作用域 3.文件作用域 先提一下 在当前有一个文件,main.c 还有一个文 ...

  7. Divide and conquer method

    分治法是最广泛使用的算法设计方法之一,其基本思想:把大问题分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解. 分治法说穿了就是把问题放小,如果被分的问题还是比较大,那么久继续分下去.为了能 ...

  8. centos 7访问windows共享文件夹

    1. 首先centos要能识别win7的文件系统ntfs,原版的centos是不支持NTFS格式的文件系统,因此需要安装ntfs支持软件包,我使用的是rpmforge软件库,在此处http://pkg ...

  9. js动态生成按钮,页面用DIV简单布局

    今天朋友让我忙帮给写个页面,由于时间紧破,所以没有完善,暂时先贴出来,以后有时间了在做修改 <!DOCTYPE html><html><head><title ...

  10. file_up

    一.接收数据 表单提交的数据会自动封装为数组 用$_GET, $_POST, 或$_REQUEST获得表单提交的数据;   二.文件上传的相关配置 1.表单设置: 要进行文件的上传,需要对form表单 ...