Hi, I'm running SW 2013 64-bit , and despite being new to API in Solidworks. I've managed to put together a macro that works pretty well, although I'm sure it's a hack job in terms of proper code. Now I'm trying to run it in SW 2010 64-bit, and I get a problem with the userform window hiding behind the other windows when I initiate macro with a button. I've tried the following solution form angelsix but without results:
Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongB
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim res As Long
Dim lRet As Long
Global Const SWP_NOMOVE As Long = 2
Global Const SWP_NOSIZE As Long = 1
Global Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Global Const HWND_TOPMOST As Long = -1
Global Const HWND_NOTOPMOST As Long = -2
Sub main()
Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
Set modeldoc2 = swApp.ActiveDoc
If modeldoc2 Is Nothing Then ' Is doc loaded
MsgBox "Please Open a Part or Assembly.", vbOKOnly, "Error", False, False ' Nothing - Warn user
Exit Sub
Else ' Else check doc loaded
filetyp = modeldoc2.GetType
If filetyp = swDocPART Or filetyp = swDocASSEMBLY Then
'Center part on screen
Part.ShowNamedView2 "*Front", 1
Part.ViewZoomtofit2
' show form
SelectNamedView.Show (False)
lRet = FindWindow(vbNullString, SelectNamedView.Caption)
res = SetWindowPos(lRet, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
This works when I run the debugger, but doesn't seem to bring the userform window forward with the button initiated macro. Any Suggestions? Thanks
SolidworksApi macros