iCAx开思网

标题: Solidworks二次开发入门 [打印本页]

作者: 老梆子    时间: 2005-6-9 13:45
标题: Solidworks二次开发入门
  Solidworks软件使用方便、步骤简洁,并且容易掌握、功能强大,应用非常广泛。而对于大多数使用者来说,主要是单纯的三维建模和装配。可是在实际的三维设计中经常会遇到不好解决的问题,比如频繁出现的尺寸不同但形状相似的零件,齿轮等零件的曲线绘制等。如果想解决这样的问题就必须涉及到二次开发,使用编程可以使零件建模更加快捷或更加真实。象类似齿轮的零件不但既快捷又真实,而且还为轮廓的分析和研究带来方便。
  可是,对于大多数人(尤其是对软件知识不太了解的人)来说,一谈到“二次开发”就会有或多或少的神秘感,因而不愿意去考虑和研究它。其实Solidworks的二次开发非常容易入门,对使用者的要求也仅仅是一点VB的编程知识。
  下面我们通过一个简单的示例来敲开Solidworks二次开发的大门:打开Solidworks软件——新建零件图——打开“宏”工具栏——点击“录制\停止宏”——绘制零件(画一个半径为50mm高为10mm的圆盘)——点击“停止宏”同时保存到硬盘上。现在再新建零件图,点击“执行宏”运行刚才保存的宏。你会看到屏幕上动感地自动画出相似的圆盘。
我们点击“编辑宏”看一看录制的程序:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long
Dim Annotation As Object
Dim Gtol As Object
Dim DatumTag As Object
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
  
Sub main()
  
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Part.InsertSketch
Part.CreateCircle 0, 0, 0, 0.0189755859375, -0.0573484375, 0  ’(数值可能会不一致)
Part.FeatureExtrusion3 1, 0, 0, 0, 0, 0.01, 0.01, 0, 0, 0, 0, 0.01745329251994, 0.01745329251994, 0, 0, 0, 0, 1 ’(数值可能会不一致)
End Sub
(该程序是在Solidworks2001plus环境下生成的。)
  值得注意的是程序里的长度数据是以“米”为单位的。大家有可能发现自动生成的零件数据不准确,这一点不是人为的,通过修改是不会影响设计的。程序中数据的含义在此也没有必要说明,请大家自己摸索,不难的。然后你就可以按照自己的意图修改程序,以达到设计要求。大家可以试着有针对性地录制宏,借助系统的帮助找到需要的命令或格式。剩下的就是编程技巧了,你可以通过添加窗体和模块等手段使程序更加完善(这需要的是编程知识)。
  现在我想你对Solidworks的二次开发不觉得神秘了吧。最后我想说的是在实际的开发中会遇到很多问题,大部分都是在其他编程环境下没遇到过的,不过只要肯动脑,一定会有办法解决的。
作者: lengdong    时间: 2005-7-6 18:09
不是很明白但非常感谢!!
作者: leehua723    时间: 2005-7-7 10:04
直接执行录制的宏是不可能通过的,必须要进行一些修改。
作者: bruceduan    时间: 2005-7-11 05:26
入门啦容易....
提高啊, 哈哈...
作者: leiro    时间: 2005-7-11 14:08
楼主能不能继续讲解呀......
如果能多讲解一些实在是太好了
作者: jmanlang    时间: 2005-10-27 22:54
拷贝Sub main() .....End Sub 中间,只是他们中间的部分,把拷贝的东西粘帖到VB代码编辑窗口中你你需要的子过程中,如 Private Sub Form_Load()中。变量申明部分全部拷贝并粘帖到VB代码的Option Explicit部分(最好这样)。还有要在VB的"工程">"引用"里加载有关Solidworks引用,最后就是运行你的程序了。
作者: yongxinwork    时间: 2006-2-14 14:20
不错!虽然我了解sw不到一个小时,
但我觉得sw的二次开发很不错!
作者: 老梆子    时间: 2006-10-20 18:29
sw的二次开发很有意思
作者: q48378185    时间: 2007-2-26 13:30
知道了,谢谢~!
作者: cnzlnet    时间: 2007-4-1 15:33
非常感谢各位的分享!!!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3