AnsweredAssumed Answered

InsertBomTable2→How to use Configuration?

Question asked by Yong Ning on May 21, 2015

retval = View.InsertBomTable2 ( UseAnchorPoint, X, Y, AnchorType, BomType, Configuration, TableTemplate)

Input:   (BSTR) Configuration    Name of the configuration for this BOM table


Why follow code

    Configuration =“”

→ Hope

    Configuration = "A2"








' Preconditions:

'       (1) Drawing file is open.

'       (2) View is selected.


' Postconditions: A BOM is inserted at the anchor

'       point or the specified point, if the drawing

'       view does not already contain a BOM.



Option Explicit


Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swSelMgr As SldWorks.SelectionMgr

Dim swFeatMgr As SldWorks.FeatureManager

Dim swView As SldWorks.View

Dim swBomAnn As IBomTableAnnotation

Dim swBomFeat As SldWorks.BomFeature

Dim AnchorType As Long

Dim BomType As Long

Dim Configuration As String

Dim TableTemplate As String

Dim Names As Variant

Dim Visible As Variant

Dim boolstatus As Boolean


Sub main()


Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swSelMgr = swModel.SelectionManager

Set swFeatMgr = swModel.FeatureManager


' Select view

Set swView = swSelMgr.GetSelectedObject6(1, 0)


    AnchorType = SwConst.swBOMConfigurationAnchor_BottomRight

    BomType = SwConst.swBomType_e.swBomType_TopLevelOnly

    Configuration = ""

    TableTemplate = "e:\a.sldbomtbt"

    ' Insert BOM table

    Set swBomAnn = swView.InsertBomTable2(False, 0.4, 0.05, AnchorType, BomType, Configuration, TableTemplate)

    swModel.ClearSelection2 True

    ' Because BOM type is swBomType_TopLevelOnly, then work with BomFeature to get and set configurations

    Set swBomFeat = swBomAnn.BomFeature

    Names = swBomFeat.GetConfigurations(False, Visible)

    Visible(2) = True

    boolstatus = swBomFeat.SetConfigurations(False, Visible, Names)

    'Update FeatureManager design tree



End Sub






Function A3InsertBom(SwView As View, Xx, Yy, BomPath)

  Dim AnchorType, BomType

    AnchorType = SwConst.swBOMConfigurationAnchor_BottomRight

    BomType = SwConst.swBomType_e.swBomType_TopLevelOnly

    Configuration = ""

    Set swBomAnn = SwView.InsertBomTable2(False, Xx / 1000, Yy / 1000, AnchorType, BomType, Configuration, BomPath)


  Dim SwBomFeat As BomFeature, Names, Visible

    Set SwBomFeat = swBomAnn.BomFeature

    Names = SwBomFeat.GetConfigurations(False, Visible)

    For jj = 0 To UBound(Names)

       If Names(jj) = SwView.ReferencedConfiguration Then

          Visible(jj) = True

          Exit For

       End If

    Next jj

    boolstatus = SwBomFeat.SetConfigurations(False, Visible, Names)


End Function


Private Sub ll()

   Dim SwApp As SldWorks.SldWorks, SwDraw As DrawingDoc

      Set SwApp = Application.SldWorks

      Set SwDraw = SwApp.ActiveDoc

   Dim SwView As View

      Set SwView = SwDraw.GetFirstView

      Set SwView = SwView.GetNextView

      A3InsertBom SwView, 400, 5, "e:\a.sldbomtbt"

End Sub