選択



オブジェクト選択

Function SelectObject(obj As Object, Optional isApend As Boolean = False) As Boolean
    Dim objApp As SldWorks.SldWorks
    Dim objModelDoc As SldWorks.ModelDoc2
    Dim objSelectionMgr As SldWorks.SelectionMgr
    Set objApp = Application.SldWorks
    Set objModelDoc = objApp.ActiveDoc
    Set objSelectionMgr = objModelDoc.SelectionManager
    If isApend = False Then
        Call objModelDoc.ClearSelection2(True)
    End If
    SelectObject = objSelectionMgr.AddSelectionListObject(obj, Nothing)
End Function
 


フィーチャー選択

  • 平面選択
Sub SelectPlane()
    Dim objApp As SldWorks.SldWorks
    Dim objModelDoc As SldWorks.ModelDoc2
    Dim objExtension As SldWorks.ModelDocExtension
    Dim objFeatureMgr As SldWorks.FeatureManager
    Dim objFeature As SldWorks.Feature
    Dim arrayFeatures As Variant
    Dim varFeature As Variant
    Dim objSelectionMgr As SldWorks.SelectionMgr
    Dim objSelectData As SldWorks.SelectData
    '平面のタイプネーム
    Const swTnRefPlane As String = "RefPlane"
 
    Set objApp = Application.SldWorks
    Set objModelDoc = objApp.ActiveDoc
    Call objModelDoc.ClearSelection2(True)
    Set objExtension = objModelDoc.Extension
    Set objFeatureMgr = objModelDoc.FeatureManager
    Set objSelectionMgr = objModelDoc.SelectionManager
    Set objSelectData = objSelectionMgr.CreateSelectData
 
    arrayFeatures = objFeatureMgr.GetFeatures(True)
    For Each varFeature In arrayFeatures
        Set objFeature = varFeature
        If objFeature.GetTypeName2() = swTnRefPlane Then
            Call objSelectionMgr.AddSelectionListObject(objFeature, objSelectData)
        End If
    Next
 
    '処理 ToDo
    
    'Call objModelDoc.ClearSelection2(True)
End Sub
 


構成部品選択

  • 指定コンポーネント以下のすべてコンポーネントを選択
Sub SelectAllComponent(objAssyComponent As SldWorks.Component2, Optional isApend As Boolean = False, Optional isApendSuppressed As Boolean = False)
    If isApend = False Then
        Dim objApp As SldWorks.SldWorks
        Dim objModelDoc As SldWorks.ModelDoc2
        Set objApp = Application.SldWorks
        Set objModelDoc = objApp.ActiveDoc
        Call objModelDoc.ClearSelection2(True)
    End If
    Dim arrayObjComp As Variant
    Dim objCompVariant As Variant
    Dim objComponent As SldWorks.Component2
    If isApendSuppressed Or (objAssyComponent.IsSuppressed = False) Then
        Call objAssyComponent.Select4(True, Nothing, False)
        arrayObjComp = objAssyComponent.GetChildren()
        For Each objCompVariant In arrayObjComp
            Set objComponent = objCompVariant
            Call SelectAllComponent(objComponent, True, isApendSuppressed)
        Next
    End If
End Sub
 



コメント

最終更新:2013年12月17日 00:19