Hallo
Ich möchte mein Makro über eine "Makro-Schaltfläche" direkt in Solidworks starten. Wenn ich mein Makro von Visual Basic 6 ausführe, habe ich keine Probleme, während nichts funktioniert, wenn ich es über die Schaltfläche starte, die ich in Solidworks erstellt habe. In der Tat möchte ich mehrere Flächen auswählen, aber ich habe keinen Zugriff auf Solidworks, sobald das Makro gestartet ist.
Hier ist ein Teil meines Codes:
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Sun swSelMgr As SldWorks.SelectionMgr
Dim-Matefeature als SldWorks.Mate2
Dim swFace1 As SldWorks.Face2
Dimmen swFace2 als SldWorks.Face2
Dim bool1 als boolescher Wert
Dim bool2 als boolescher Wert
CurFaceName als Zeichenfolge dimmen
FaceName1 als Zeichenfolge dimmen
FaceName2 als Zeichenfolge dimmen
Dim MateName als Zeichenfolge
Dim MateName2 als Zeichenfolge
Teil als Objekt dimmen
Sub Square90XL()
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Legen Sie swSelMgr = swModel.SelectionManager fest
bool1 = Falsch
Ausführen, bis bool1 = wahr ist
If swSelMgr.GetSelectedObjectType3(1, -1) = swSelFACES dann
Festlegen von swFace1 = swSelMgr.GetSelectedObject6(1, -1)
bool1 = Wahr
Ende, wenn
Schleife
swModel.ClearSelection
bool2 = Falsch
Do until bool2 = True
If swSelMgr.GetSelectedObjectType3(1, -1) = swSelFACES dann
Festlegen von swFace2 = swSelMgr.GetSelectedObject6(1, -1)
bool2 = Wahr
Ende, wenn
Schleife
Tun
swFace2.Auswählen (0)
Rotation.Show
Schleife bis Wert2 = Wahr
swFace1.Auswählen (1)
swFace2.Auswählen (1)
Set Part = swApp.ActiveDoc
Set matefeature = Part.AddMate3(swMateCOINCIDENT, swMateAlignCLOSEST, True, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, False, mateError)
matefeature.name = MateName
Part.ClearSelection
...
Danke im Voraus,
Gael