畅谈SOLIDWORKS与API 二次开发

日期:2022-05-24 11:54:29 发布者: ICT-Vincent 浏览次数:

API为Application Program Interface英文缩写, 意为应用编程接口,它的意思其实在网上很容易查得。我的理解是: 和操作使用软件本身的功能一样,属于应用手法的一种。一般的操作是:通过鼠标点击,键盘键入数字操作它现有的按钮,命令;而API 则是通过编程语言代码,对现有的功能进行一定的控制,形成新的命令或功能,即利用编程代码来操控软件的现有功能,也属于一种应用的方法。例如:沿着长度(250mm)方向, 间隔为50mm均布4个孔,桌面木板的打孔,我们用SOLIDWORKS的建模,非常的简单。

【什么是API 】
API为Application Program Interface英文缩写, 意为应用编程接口,它的意思其实在网上很容易查得。我的理解是: 和操作使用软件本身的功能一样,属于应用手法的一种。一般的操作是:通过鼠标点击,键盘键入数字操作它现有的按钮,命令;而API 则是通过编程语言代码,对现有的功能进行一定的控制,形成新的命令或功能,即利用编程代码来操控软件的现有功能,也属于一种应用的方法。例如:沿着长度(250mm)方向, 间隔为50mm均布4个孔,桌面木板的打孔,我们用SolidWorks的建模,非常的简单。

 

图1

 步骤:1. 绘制孔的草图,标尺寸,大小以及定位;2.产生开孔特征:拉伸切除;3.阵列,按照长度250mm, 间隔50mm, 算出需要四个孔。
掌握其中的数学和逻辑,利用数学的方法表达逻辑,就可以把以上3个步骤合成1个步骤。通过指定长度值和方向,孔径,就能一次过产生所需要的孔,并且可以应对更多的情况,免除重复而琐碎的工作。

【有什么好处 】
由于SolidWorks是市场上主流的三维参数化工业设计软件之一,它的功能是通用的,是面向广大的市场用户而开发和更新的,而我们深入探讨具体某些行业,某些企业的特殊的行业规范,行业习惯,人们的行为习惯(同一公司也好,中国人跟美国人,习惯上也会有很大的差异),为了让SolidWorks更加贴近这些习惯和规范,应用起来更加得心应手,效率更高,往往就可以考虑通过API的手段来强化这一点。例如:我们为了强化SolidWorks在塑胶模具和冲压模具的设计习惯,便有了广为大家所认识的:3DQuickMold, 3DQuickPress ,基于SolidWorks 平台的插件工具(百度一下便可了解详细)。又或者例如办公家具的设计,属于规则化的设计,常见的工作便是重复琐碎的基本建模,则可以通过API开发出专门的设计界面,加快和规范设计的工作,提高效率。

 

图2 基于SolidWorks开发的智能办公桌设计界面


【如何判断有没有API 的可能性】

1. 前段提到,API就是利用编程代码来操控软件的现有功能,也属于一种应用的方法。我们判断是否可以利用API来实现,首先就要看通过手动的方法,评估现有的功能,是否能做出最终的结果。简单地说,就是手动操作SW能实现的结果,中间会有较多的直接或间接的方法,都很有可能通过API将其自动的实现。最常见的是使用API进行规则化的建模自动化设计,把手动操作的工作变为自动,规范化。

2. 对于一般的SW操作,而无法实现的呢?也一定程度上,通过调入外部其他程序的计算核心或技术嵌入至SW中进行API。这种API手法,极为少见,对编程技术的要求非常高。例如,3DQuickPress 则是调用了OpenGL图形显示技术,在SW中开发出专属的冲压件展开和排带排布设计的图形,而这种图形,一般的操作SolidWorks是怎么做也无法做出来的。

【误区】
1. 以为录制宏是用来记录建模过程的,录屏幕视频差不多?
录制宏,其实是将鼠标点击的动作通过代码的形式记录下来,让开发人员从中编辑以及加入其他的代码进行开发和扩充。属于API常用的方法。

 

图3 SolidWorks自带的VBA编程界面


2. 以为API就是录制宏而已?
录制宏,其实只是其中一种方法,而且较为简单,很多入门的人士都会采用。我个人认为单靠录制宏的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了。 

 

图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 的二次开发论坛:

 

图5 

 

图6

 

图7

 

图8

 

图9

 

图10