有人知道如何从python运行vba宏吗?

2024-09-30 22:11:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在vba中使用以下宏在solidworks中制作零件。我有一个问题,从python我是否可以执行宏,而不必转到solidworks并从那里执行它

我试着寻找信息,但没有发现我在寻找什么

如果有人能帮助我,我将不胜感激

Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim BoolStatus As Boolean
Dim swSketchManager As SldWorks.SketchManager
Dim longstatus As Long, longwarnings As Long
Dim Part As Object


Sub Main()

    Set swApp = Application.SldWorks
    
    
    Dim defaultTemplate As String
    
    defaultTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplatePart)
    
    Set swDoc = swApp.NewDocument(defaultTemplate, 0, 0, 0)
    
    BoolStatus = swDoc.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, False, 0, Nothing, swSelectOption_e.swSelectOptionDefault)
    
        
        
    Set swSketchManager = swDoc.SketchManager
    
    Dim mySketchSegment As SldWorks.SketchSegment
    
    swSketchManager.InsertSketch True
    
    Set mySketchSegment = swSketchManager.CreateLine(0, 0, 0, 0, 1, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(0, 1, 0, 2, 1, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(2, 1, 0, 2, 2, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(2, 2, 0, 4, 2, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(4, 2, 0, 4, 1, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(4, 1, 0, 6, 1, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(6, 1, 0, 6, 0, 0)
    
    Set mySketchSegment = swSketchManager.CreateLine(0, 0, 0, 6, 0, 0)
    
    swDoc.ClearSelection2 True
    
    Set Part = swApp.ActiveDoc

    ' Named View
    Part.ShowNamedView2 "*Trimétrica", 8
    Part.ViewZoomtofit2
    BoolStatus = Part.Extension.SelectByID2("Line8", "SKETCHSEGMENT", 2.27939213179474, 0.424565217882254, 0.640103542052883, True, 0, Nothing, 0)
    Part.ClearSelection2 True
    BoolStatus = Part.Extension.SelectByID2("Line8", "SKETCHSEGMENT", 2.27939213179474, 0.424565217882254, 0.640103542052883, False, 16, Nothing, 0)
    Dim myFeature As Object
    Set myFeature = Part.FeatureManager.FeatureRevolve2(True, True, False, False, False, False, 0, 0, 6.2831853071796, 0, False, False, 0.01, 0.01, 0, 0, 0, True, True, True)
    Part.SelectionManager.EnableContourSelection = False
    Part.SetPickMode
    Part.ClearSelection2 True
    
End Sub

Tags: falsetrueasextensiondimsetpartcreateline