一般涉及 SolidWorks二次开发的多是非软件行业人员,对于软件编程不甚了解,故写此入门级参考, 为初学者做个初步引导。此文中个人观点, 只为抛砖引玉, 供大家批评讨论,互相学习。
入门疑惑:
1. 什么是 SolidWorks二次开发, 为什么要对 SolidWorks 进行二次开发?
2. 对 SolidWorks 进行二次开发需要学习哪些基础知识?
3. 如何学习二次开发?
4. 如何选择开发语言?
5. 需要看什么入门级书?
什么是 SolidWorks二次开发, 为什么要进行二次开发?
软件公司开发 SolidWorks 软件, 是一次开发。在此软件的基础上,利用版权方公开的软件接口 API(应用程序接口)函数进行功能扩展的开发,称为第二次开发,即二次开发。网络中最常接触到的, 插件或称外挂,就是二次开发产品中的一种类型,其中一部分是属黑客行为, 如部分游戏外挂。
大型软件是针对普遍性问题进行解决开发的,并非很完美的适合特定用户的特殊要求。所以对于特殊要求的功能,需要客户自己对 SolidWorks 软件进行二次开发,达到功能上的扩展。
SolidWorks 软件二次开发的主要方向:
* 二次开发可使 SolidWorks 软件的零件、 工程图等,更适合国标要求。比如迈迪对标准件库进行了国标化的建立; 企业的标准化,一般脱离不了二次开发。
* 常用的或重复性的工作,进行二次开发,可实现设计上的自动化,提高效率;
* 特殊图形在 SolidWorks 软件中较难或无法绘制, 可进行二次开发得以实现,比如齿轮、凸轮、弹簧等,较难绘制,均可利用二次开发以提高设计效率。
对 SolidWorks 进行二次开发需要学习哪些基础知识?
* SolidWorks 软件功能的基本操作,最好是熟悉操作。
* SolidWorks 软件的宏录制。这是学习 SolidWorks API 的捷径。
* 合适的软件开发语言, VBA、 VB、 C#、 C++等。
如何学习 SolidWorks 二次开发?
有一部分人是在遇到需要二次开发插件时才来学习的,也就是只是为解决一临时具有针对性的问题,所以他们不想从基础学起,想找个快捷途径尽快完成任务。而又对二次开发一无所知。那么可以利用 SolidWorks 的宏(VBA)录制功能,对所需功能在 SolidWorks 上操作一遍,同时进行宏录制。录制的此宏文件,包含了基本的相关 API 函数。 也形成了你所要设计的功能的基本框架。可从 SolidWorks 官网查看这些 API 函数的说明文档,这是一种最快捷的方式,帮助你进行二次开发。所以无须了解所有 SolidWorks 的 API 函数的功能,仅需了解你所须用的 API 函数用法即可。
对于编程语言的学习,无须精通,但需学会基本的简单编程。
若是为了深入研究二次开发, 利用宏录制也是入门和设计的快捷途径及最有效参考。 但此时就需要对官方开放的 API 详加了解。 一般对于 SolidWorks 弹出的对话框里的操作,是无法录制宏的。这就需要在官方文档中寻找其相应接口。
如何选择开发语言?
The API contains hundreds of functions that you can call from Visual Basic for Applications(VBA), VB.NET, Visual C#, Visual C++ 6.0 , and Visual C++/CLI.
以上为官方提供的语言。对于各种开发语言,了解其特点,可选择合适自己的方式。
VB: 给人的第一好感,就是简单易用,也是此语言的最大优势。这也是很多非软件专业人员的首选语言。
C++: 语言难度最大,但其灵活度最大,功能最大。 设计周期长,代码量大。 目前多用于一些特殊场合,二次开发很少使用。
C#:此语言不仅有 VB 语言的简易优势,同时也具有一定的灵活性。
对于 SolidWorks 二次开发, VB 语言简单易用。 二次开发中 VB 是最快的一种开发方式。
C++因其语言难度,在 SolidWorks 二次开发中,使用较少,教程也少。 由于其灵活性,软件交互界面可随性而为(这是需要实力的),功能也可最大化。
C#语言,集 VB 与 C++的部分优点,即容易入门,又可深入设计复杂功能,代码较 C++要轻便很多。
需要看什么入门级书?
因达索公司针对 SolidWorks 软件对外公布的 API 函数信息不同版本会有变化。故不同版本下所开发的产品兼容性存在问题。但其基本结构及原理未有太大变化。故基本可以参考学习你所能找到的 SolidWorks二次开发教程。但不同版本 API 函数有可能有变动,需要针对不同版本,从官方网站查找相关函数的具体说明,否则完全不变的抄写教程中的源代码,很有可能会编译出错。
SolidWorks教程:https://www.eduartisan.com/course/list?category=127