Witam
Chciałbym uruchomić moje makro z "przycisku makra" bezpośrednio w Solidworks. Kiedy uruchamiam moje makro z Visual Basic 6, nie mam żadnych problemów, natomiast jeśli uruchamiam je z przycisku, który utworzyłem w Solidworks, nic nie działa. Rzeczywiście, chcę wybrać kilka powierzchni, ale nie mam dostępu do Solidworks po uruchomieniu makra.
Oto fragment mojego kodu:
Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Sun swSelMgr jako SldWorks.SelectionMgr
Przyciemnij matefeature jako SldWorks.Mate2
Dim swFace1 jako SldWorks.Face2
Dim swFace2 jako SldWorks.Face2
Dim bool1 As Boolean
Dim bool2 As Boolean
Dim CurFaceName As String (Ciąg znaków Dim CurFaceName)
Dim FaceName1 As Ciąg
Dim FaceName2 As Ciąg
Dim MateName As Ciąg
Dim MateName2 As Ciąg
Przyciemnij część jako obiekt
Sub Square90XL()
Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swSelMgr = swModel.SelectionManager
bool1 = Fałsz
Rób, dopóki wartość logiczna1 = Prawda
Jeśli swSelMgr.GetSelectedObjectType3(1, -1) = swSelFACES Then
Ustaw swFace1 = swSelMgr.GetSelectedObject6(1, -1)
bool1 = Prawda
Zakończ jeżeli:
Pętla
swModel.ClearSelection
bool2 = Fałsz
Rób, dopóki bool2 = Prawda
Jeśli swSelMgr.GetSelectedObjectType3(1, -1) = swSelFACES Then
Ustaw swFace2 = swSelMgr.GetSelectedObject6(1, -1)
bool2 = Prawda
Zakończ jeżeli:
Pętla
Robić
swFace2.Select (0)
Obrót.Pokaż
Pętla do momentu, gdy wartość2 = Prawda
swFace1.Select (1)
swFace2.Select (1)
Ustaw część = swApp.ActiveDoc
Set matefeature = Part.AddMate3(swMateCOINCIDENT, swMateAlignCLOSEST, True, 0, 0, 0, 0, 0, 0, 0, 0, False, mateError)
matefeature.name = NazwaWiązania
Part.ClearSelection
...
Z góry dzięki,
Gael