0 Replies Latest reply on May 22, 2015 5:27 AM by Yong Ning

    InsertBomTable2→How to use Configuration?

    Yong Ning

      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