Hallo ihr alle
Warum funktioniert ein mit dem Makrorecorder aufgenommenes Makro nicht, wenn Sie es starten?
Mit Excel gibt es in der Regel nie Probleme, aber mit SolidWorks ist es fast das Gegenteil.
Hier ist mein gespeichertes Makro, nachdem es in der Assembly bearbeitet wurde:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
Dim BoundingBox As Object
Set BoundingBox = Part.FeatureManager.InsertGlobalBoundingBox(swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, False, False, longstatus)
Part.ClearSelection2 True
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
' Redraw
Part.GraphicsRedraw2
End Sub
Was meine Aufnahme betrifft, so bearbeite ich mein Teil in der Baugruppe, starte mein Makro, und nichts passiert.
Wozu?
Vielen Dank im Voraus
Der SW-Makrorecorder ist in der Tat nicht der beste, ganz im Gegenteil...
In der Regel wird dies in sehr seltenen Fällen verwendet, um die notwendige Funktion zu identifizieren.
Aber es generiert trotzdem eine Menge nutzlosen und absolut ekelhaftem Code für Sie!
Hier ist Part.GraphicsRedraw2, das wir zu oft finden.
Ich weiß nicht, was Sie versucht haben, vielleicht die Begrenzungsbox?
Aber das Internet ist oft die bessere Lösung für den Rekorder.
3 „Gefällt mir“
Hallo.
Ich stimme @sbadenis zu ... Der Recorder kann stark verbessert werden.
…
Versuchen Sie stattdessen:
https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertglobalboundingbox.html?verRedirect=1
nahestehend:
https://help.solidworks.com/2021/english/api/sldworksapi/redraw_graphics_example_vb.htm
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long
Option Explicit
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swModel = swApp.ActiveDoc
' Display the Bounding Box sketch
boolstatus = Part.SetUserPreferenceToggle)swViewDispGlobalBBox, True)
Dim BoundingBox As SldWorks.Feature
Set BoundingBox = Part.FeatureManager.InsertGlobalBoundingBox(swBoundingBoxType_BestFit, True, False, longstatus)
Part.ClearSelection2 True
' Hide the Bounding Box sketch
boolstatus = Part.SetUserPreferenceToggle)swViewDispGlobalBBox, False)
swModel.GraphicsRedraw2
End Sub
Herzliche Grüße.
3 „Gefällt mir“