Top Banner
香港总公司 香港新界沙田香港科学园科技 大道东 2 号光电子中心 2 字楼 216-217 电话:(852) 2425 8136 传真:(852) 2425 8098 深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453 广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595 东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002 苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310 珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260 上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879 电邮: [email protected] 网站: http://www.ict-sz.com.cn 畅谈 SolidWorks API 二次开发 ICT - Vincent Li 李锋 什么是 API API Application Program Interface 英文缩写, 意为应用编程接口它的意思其实在网上很容易查 我的理解是: 和操作使用软件本身的功能一样属于应用手法的一种一般的操作是通过鼠 标点击键盘键入数字操作它现有的按钮命令API 则是通过编程语言代码对现有的功能进 行一定的控制形成新的命令或功能即利用编程代码来操控软件的现有功能也属于一种应用的 方法例如沿着长度250mm方向, 间隔为 50mm 均布 4 个孔桌面木板的打孔我们用 SolidWorks 的建模非常的简单1 步骤1. 绘制孔的草图标尺寸大小以及定位2.产生开孔特征拉伸切除3.阵列按照长度 250mm, 间隔 50mm, 算出需要四个孔
8

畅谈 SolidWorks 与API 二次开发

Jan 02, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

畅谈 SolidWorks与 API 二次开发

ICT - Vincent Li 李锋

【什么是 API 】 API为 Application Program Interface 英文缩写, 意为应用编程接口,它的意思其实在网上很容易查

得。我的理解是: 和操作使用软件本身的功能一样,属于应用手法的一种。一般的操作是:通过鼠

标点击,键盘键入数字操作它现有的按钮,命令;而 API 则是通过编程语言代码,对现有的功能进

行一定的控制,形成新的命令或功能,即利用编程代码来操控软件的现有功能,也属于一种应用的

方法。例如:沿着长度(250mm)方向, 间隔为 50mm 均布 4 个孔,桌面木板的打孔,我们用

SolidWorks 的建模,非常的简单。

图 1

步骤:1. 绘制孔的草图,标尺寸,大小以及定位;2.产生开孔特征:拉伸切除;3.阵列,按照长度

250mm, 间隔 50mm, 算出需要四个孔。

Page 2: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

掌握其中的数学和逻辑,利用数学的方法表达逻辑,就可以把以上 3 个步骤合成 1 个步骤。通过指

定长度值和方向,孔径,就能一次过产生所需要的孔,并且可以应对更多的情况,免除重复而琐碎

的工作。 【有什么好处 】 由于 SolidWorks 是市场上主流的三维参数化工业设计软件之一,它的功能是通用的,是面向广大的

市场用户而开发和更新的,而我们深入探讨具体某些行业,某些企业的特殊的行业规范,行业习

惯,人们的行为习惯(同一公司也好,中国人跟美国人,习惯上也会有很大的差异),为了让

SolidWorks 更加贴近这些习惯和规范,应用起来更加得心应手,效率更高,往往就可以考虑通过

API的手段来强化这一点。例如:我们为了强化 SolidWorks 在塑胶模具和冲压模具的设计习惯,便

有了广为大家所认识的:3DQuickMold, 3DQuickPress ,基于 SolidWorks 平台的插件工具(百度一

下便可了解详细)。又或者例如办公家具的设计,属于规则化的设计,常见的工作便是重复琐碎的

基本建模,则可以通过 API开发出专门的设计界面,加快和规范设计的工作,提高效率。

图 2 基于 SolidWorks 开发的智能办公桌设计界面 【如何判断有没有 API 的可能性】

Page 3: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

1. 前段提到,API就是利用编程代码来操控软件的现有功能,也属于一种应用的方法。我们判断

是否可以利用 API来实现,首先就要看通过手动的方法,评估现有的功能,是否能做出最终的

结果。简单地说,就是手动操作 SW 能实现的结果,中间会有较多的直接或间接的方法,都很

有可能通过 API将其自动的实现。最常见的是使用 API进行规则化的建模自动化设计,把手动

操作的工作变为自动,规范化。 2. 对于一般的 SW 操作,而无法实现的呢?也一定程度上,通过调入外部其他程序的计算核心或

技术嵌入至 SW 中进行 API。这种 API手法,极为少见,对编程技术的要求非常高。例如,3DQuickPress 则是调用了 OpenGL 图形显示技术,在 SW 中开发出专属的冲压件展开和排带排

布设计的图形,而这种图形,一般的操作 SolidWorks 是怎么做也无法做出来的。

【误区】 1. 以为录制宏是用来记录建模过程的,录屏幕视频差不多?

录制宏,其实是将鼠标点击的动作通过代码的形式记录下来,让开发人员从中编辑以及加入其他的

代码进行开发和扩充。属于 API常用的方法。

图 3 SolidWorks 自带的 VBA 编程界面

2. 以为 API就是录制宏而已?

Page 4: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

录制宏,其实只是其中一种方法,而且较为简单,很多入门的人士都会采用。我个人认为单靠录制

宏的 API,其实属于比较浅层的开发。真正的 API, 关键在于“I”, Interface 接口, 理解 SolidWorks

的接口方法,函数以及相关的成员。需要深入了解 SolidWorks API帮助文件。

3. 编程写代码就是 API 了?

曾经有个朋友来信问到:“我有二次开发的经验,你告诉我怎么在 SW 宏里读取 TXT 数据就好,我

以前的软件上可以,不知道 SW 怎么弄?”

回答:其实二次开发的概念,什么软件都一样。唯一不同,就在于 Interface 接口的差异。而那位兄

台自以为天下间的二次开发都一样的,而读取 TXT 数据,其实就是一般的编程技术,跟 SolidWorks

一点关系都没有。 【如何学习和入门】 a) 授课培训?

答:国内很少看到面向一般民众的 SolidWorks 二次开发培训课程。笔者觉得,API二次开发这个东

西是没法培训的,主要在于查帮助,查函数,不断的测试而已。 b) SolidWorks二次开发之前,具备编程的知识和对 SolidWorks有相当的了解。不然没法评估是

否可以进行 API,或者 API所要控制的 SolidWorks现有功能的“行为”不了解。

c) 入门:自带的在线指导教程,可以先入门了解一下。只要有 SolidWorks软件,你就能初步了解

它的 API了。

Page 5: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

图 4 入门 API的最快捷的资料

d) 购买书籍学习入门和见识范例。百度一下,就能找到很多书面的教材,或者联系 SolidWorks具

备资格的代理商,购买官方 API教程。

e) 学会查帮助,找到 API 中,I=Interface, 所谓的接口。这才是真正的 API二次开发。要懂得

查询 SolidWorks中各个对象,层次的 Member/Method/Properties等接口。帮助文件里还有很

多线程的 API Sample范例,可以参考其做法,结合你的实际需要,对其进行改写,方便你的学

习和开发。

f) 正版用户,可以在 www.SolidWorks.com 注册门户登陆:Customer Portal,然后进入官方的

API 论坛,进行提问,这里有来自全世界的 SolidWorks API高手回应你的提问,并以邮件的方

式提醒答复,时效性非常好(当有任何人回复你的帖子的时候,论坛的服务器会发送邮件通知

你,这也是正版用户专属得到的好处之一)。甚至有时候,还会直接有现成的代码可以引用,

相当不错的。当然,你需要具备一定的英文书写和表达能力,老外可不认什么中文。笔者很喜

欢使用这里的资源,而且帮助解决了不少的 API问题。

SolidWorks 正版序列号注册用户账号(使用一个电子邮箱),然后登入(必须是正版序

列号才可以)。 进入 API forum(API论坛) 然后就可以在此和来自全世界的 SW API高手交流了。

最后,有以下的截图详细告诉大家如何进入 SolidWorks 的二次开发论坛:

Page 6: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

图 5

图 6

Page 7: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

图 7

图 8

Page 8: 畅谈 SolidWorks 与API 二次开发

香港总公司 香港新界沙田香港科学园科技

大道东 2 号光电子中心 2 字楼

216-217 室 电话:(852) 2425 8136 传真:(852) 2425 8098

深圳 电话:(86 755) 8290 0794 传真:(86 755) 8295 1453

广州 电话:(86 20) 3801 1593 传真:(86 20) 3801 1595

东莞 电话:(86 756) 2202 6215 传真:(86 756) 2202 6002

苏州 电话:(86 512) 6818 7309 传真:(86 512) 6818 7310

珠海 电话:(86 20) 333 9630 传真:(86 20) 333 3260

上海 电话:(86 21) 6336 6878 传真:(86 21) 6336 6879

电邮: [email protected] 网站: http://www.ict-sz.com.cn

图 9

图 10