solidworks二次开发--10--从example中寻找

solidworks的api帮助还是很全面的,里面有好多见简单而有效的程序,成天在api帮助里泡着,现在做程序的速度是越来越快。好像当年成天在excel中录制宏看代码的感觉。下面的程序是api帮助里的,它用来显示装配体的所有零部件。我给我的同事们用,他们觉得不错 :)。程序使用了一个简单的递归方法遍历了装配体。
Make All Assembly Components Visible Example (VB)
This example shows how to make all assembly components visible.

 

'---------------------------------------

'

' Preconditions: An assembly document is open.

'

' Postconditions: Any hidden assembly components are made visible.

'

'---------------------------------------

Option Explicit

Public Enum swComponentVisibilityState_e

}}-->    }}-->swComponentHidden = 0

}}-->    }}-->swComponentVisible = 1

End Enum

 

Sub TraverseComponent _

( _

}}-->    }}-->swComp As SldWorks.Component2, _

}}-->    }}-->nLevel As Long _

)

}}-->    }}-->Dim vChildCompArr }}-->              }}-->As Variant

}}-->    }}-->Dim vChildComp }}-->                 }}-->As Variant

}}-->    }}-->Dim swChildComp }}-->                }}-->As SldWorks.Component2

}}-->    }}-->Dim swCompConfig }}-->               }}-->As SldWorks.Configuration

}}-->    }}-->Dim sPadStr }}-->                    }}-->As String

}}-->    }}-->Dim i }}-->                          }}-->As Long

}}-->    }}-->

}}-->    }}-->For i = 0 To nLevel - 1

}}-->        }}-->sPadStr = sPadStr + " }}--> }}-->"

}}-->    }}-->Next i

}}-->    }}-->

}}-->    }}-->vChildCompArr = swComp.GetChildren

}}-->    }}-->For Each vChildComp In vChildCompArr

}}-->        }}-->Set swChildComp = vChildComp

}}-->        }}-->

}}-->        }}-->Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"

}}-->        }}-->

}}-->        }}-->If swComponentHidden = swChildComp.Visible Then

}}-->            }}-->swChildComp.Visible = swComponentVisible

}}-->        }}-->End If

}}-->        }}-->

}}-->        }}-->TraverseComponent swChildComp, nLevel + 1

}}-->    }}-->Next

End Sub

 

Sub main()

}}-->    }}-->Dim swApp }}-->                      }}-->As SldWorks.SldWorks

}}-->    }}-->Dim swModel }}-->                    }}-->As SldWorks.ModelDoc2

}}-->    }}-->Dim swAssy }}-->                     }}-->As SldWorks.AssemblyDoc

}}-->    }}-->Dim swConf }}-->                     }}-->As SldWorks.Configuration

}}-->    }}-->Dim swRootComp }}-->                 }}-->As SldWorks.Component2

}}-->    }}-->Dim bRet }}-->                       }}-->As Boolean

}}-->    Set swApp = Application.SldWorks

}}-->    }}-->Set swModel = swApp.ActiveDoc

}}-->    }}-->Set swConf = swModel.GetActiveConfiguration

}}-->    }}-->Set swRootComp = swConf.GetRootComponent}}-->}}-->

}}-->    }}-->Debug.Print "File = " & swModel.GetPathName

}}-->    TraverseComponent swRootComp, 1

End Sub

时间: 2024-11-03 15:54:05

solidworks二次开发--10--从example中寻找的相关文章

Solidworks二次开发—06—在装配体中添加配合

Solidworks二次开发-06-在装配体中添加配合     折腾了三天终于完成了计划中的功能模块.在一个装配体中自动判断插入合适的零件,并添加配合. 在前面几篇文章中我已经基本上说明了如何得到零部件的数据信息.如何插入零部件.如何得到已经选择的特征等. 下面只介绍怎样进行配合 在做配合时,需要经常选择到零件的面.线等,这是一个问题,还有就是介绍一下addmate2函数的使用: 一般进行配合我们按照下面的次序来进行:     1-ModelDoc.ClearSelection2  '取消所有选

Solidworks二次开发-05-装配体中插入零部件

插入 Solidworks二次开发--装配体中插入零部件     在往装配体中插入零部件时,我们使用addcomponent 函数.如果需要选定零部件的配置,则需要使用addcomponent4. 先学习下语法:   addcomponent4: retval = AssemblyDoc.AddComponent4 ( compName, configName, x, y, z)   Input:         (BSTR) compName                    Path n

solidworks二次开发-01-录制一个宏

solidworks二次开发-01-录制一个宏 第一步: 我们需要自己录制一个宏,然后看看程序产生了什么代码.当初学习excel时候就是这么干的.只是,solidworks要复杂一些,直接录制的宏不能使用,需要做一些调整.在没有经验的时候我们最好按照下面的建议来做.  Edit or Debug SolidWorks Macro   Edit or debug SolidWorks macros using Microsoft VBA.   使用Microsoft VBA编辑或调试宏 To ed

solidworks二次开发-03-访问特征数据

访问|数据 solidworks二次开发-03-访问特征数据 'coder arden 'filename : getchoosed.swp'date  :2005-03-22'used to get the simple hole infomation dep & dia'finished lucky !!'------------------------------------------------------------ Option ExplicitDim swApp As SldWo

Solidworks二次开发—07—控制草图对象

对象|控制 Solidworks二次开发-07-控制草图对象 Get All Elements of Sketch Example (VB) Solidwork中对草图的控制,下面的例子很详细.特征下的草图在solidwork中其实是特征的子特征,我们可以对特征进行GetFirstSubFeature.及GetNextSubFeature得到. 如果有需要大家可以从中找到对直线.弧线.圆等对象的操作.代码是solidworks的示例文件,里面充斥了debug.print,只是向用户显示程序执行的

sw二次开发-Solidworks二次开发,控制电机旋转

问题描述 Solidworks二次开发,控制电机旋转 在solidworks中的simulation中可以完成电机对滚球丝杠的控制, 现在我想知道能不能通过solidworks的二次开发,通过VB编写程序完成精确控制电机的转速,角位移等. 可通过以下两步来实现,但现在在第二步卡住了: 1.VB发送数据给Solidworks 2.通过SOlidworks上的API来控制电机起停,转过多少度,以及转速... 尤其是第二个步求相关资料,不胜感激. 谢谢大家了,学生一枚,以上功能是论文中的一部分,我尝试

solidworks二次开发-02-用来访问特征的两个API

访问|来访 solidworks二次开发-02-用来访问特征的两个API 来学习两个api: SelectByID2和GetSelectedObject5.这两个函数,第一个通过给出对象的name选择对象.第二个通过启用程序前已经选择的索引得到对象. 看下面程序: Option Explicit Dim swApp As SldWorks.SldWorks Dim Model As ModelDoc2 Dim feature As feature Dim boolstatus As Varian

solidworks二次开发-04-修改数据

数据 solidworks二次开发-04-修改数据 上次已经可以访问特征的各参数了,今天我们来修改它: 要修改前面的步骤不能少,当我们已经可以读取一些特征时,我们就可以给他设定一些值.当然有时需要调用特定的参数.solidworks是ole和com的,所以要习惯这样. 在修改完特征后需要调用函数modifydefinition()来实现变化. 我们给一个例子,这个例子比前面的都要全面,它有很好的容错引导机制,可以直接拿来成为一个稳定的宏程序. This example doubles the l

Solidworks二次开发—08--判断是什么特征

得到了一个特征feature,怎么判断是那种呢? 如果我们定义了一个特征对象: dim curfeature as sldworks.feature 然后又通过SelectMgr得到了这个特征,然后可以使用feature.GetTypeName来判断是那种: Select Case curfeature.GetTypeName Case "Cut"       '一个拉伸切除特征 do sth. Case "HoleWzd"  '一个异型孔特征 do sth. Ca