Wstawianie zestawienia komponentów za pomocą makra VBA

Witam wszystkich,
Pracuję na solidworks 2021 i aby zaoszczędzić czas na niektórych zadaniach, zamierzam wstawić zestawienie materiałów do planu przeglądowego za pomocą makra VBA.
Mam dobrą bazę, ale jest problem, ten kod tak naprawdę nie działa, ani nie wstawia nazwy, ale pojawia się kod błędu 13, albo go nie wstawia i mam kod błędu 91. Czy możesz mi pomóc?

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim swActiveView As Object
Dim swBOMTable As Object
'Dim swBOMAnnotation As SldWorks.BomFeature


Dim swModelDocExt           As SldWorks.ModelDocExtension
Dim swDrawing               As SldWorks.DrawingDoc
Dim swView                  As SldWorks.View
Dim swBOMAnnotation         As SldWorks.BomTableAnnotation
Dim swBOMFeature            As SldWorks.BomFeature
Dim swNote                  As SldWorks.Note
Dim BomBalloonParams        As SldWorks.BalloonOptions

Dim AnchorType              As Long
Dim BomType                 As Long
Dim nErrors                 As Long
Dim nWarnings               As Long
Dim Configuration           As String
Dim TableTemplate           As String

Sub main()

' F5 exécution code
' F8 pas à pas

    ' Je rentre dans solidworks
Set swApp = Application.SldWorks
    ' Je rentre dans mon doc actif
Set Part = swApp.ActiveDoc

'boolstatus = Part.ActivateView("Vue de mise en plan1")
    ' Je sélectionne ma vue
boolstatus = Part.Extension.SelectByID2("Vue de mise en plan1", "DRAWINGVIEW", 0.121991020408163, 0.145772448979592, 0, False, 0, Nothing, 0)
    ' La vue séléctionnée est activée
Set swActiveView = Part.ActiveDrawingView

AnchorType = swBOMConfigurationAnchor_TopLeft
BomType = swBomType_e.swBomType_TopLevelOnly
Configuration = "Défaut"
TableTemplate = "X:\Biblio\BIBLIO MECA\BASE DE DONNEES\NOMENCLATURES\NOM_ROBAUT.sldbomtbt"
'Hidden = False
'IndentedNumberingType = swNumberingType_Flat
' J'insère une table
swBOMAnnotation = swActiveView.InsertBomTable4(False, 0, 0, AnchorType, BomType, Configuration, TableTemplate, False, swNumberingType_Detailed, False)

boolstatus = Part.EditRebuild3()
boolstatus = Part.ActivateSheet("Feuille1")
End Sub

Witam serdecznie;

Kilka błędów w twoim makrze (prawdopodobnie z nagrania?):

Zainspiruj się poniższym przykładem: Wstawianie zestawienia komponentów za pomocą makra VBA

'-----------------------------------------------------
' Preconditions: Open a drawing document and select
' a drawing view.
'
' Postconditions:
' 1. Inserts a BOM at the anchor point, if the
'    drawing view does not already contain a BOM.
' 2. Examine the drawing and FeatureManager design tree.
'-----------------------------------------------------
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 BomTableAnnotation
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    

    ' Get selected drawing view
    Set swView = swSelMgr.GetSelectedObject6(1, 0)
    AnchorType = swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_BottomLeft
    BomType = swBomType_e.swBomType_TopLevelOnly
    Configuration = ""
    TableTemplate = ""    

    ' Insert BOM table
    Set swBomAnn = swView.InsertBomTable2(True, 0.4, 0.3, 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(0) = True
    boolstatus = swBomFeat.SetConfigurations(True, Visible, Names)    

    ' Update FeatureManager design tree
    swFeatMgr.UpdateFeatureTree

End Sub

lub z innymi przykładami:

Pozdrowienia.

2 polubienia