Chcę utworzyć makro, aby uruchomić axemble smartproperties i zweryfikować je, aby móc aktualizować niektóre właściwości sterowane tylko przez smartproperties.
Problem polega na tym, że nie znam vba i że rejestrator makr nie wydaje się działać dla tego makra, które wydaje się być dość proste.
Celem jest następnie włączenie tego makra, aby stało się makrem funkcji, które będzie aktualizować właściwości części przy każdej zmianie.
Bez względu na to, jak bardzo szukam w google i innych, nie muszę wpisywać odpowiednich elementów wyszukiwania, aby uruchomić makro z makra SW...
Za każdym razem plik jest modyfikowany, ponieważ automatycznie pobieramy oznaczenie pomieszczenia do składania naszych zamówień za pomocą naszego ERP i przepustowość jak również długość w oznaczeniu muszą być aktualizowane i odbywa się to tylko przy uruchamianiu smartproperties.
EDIT: Stąd chęć włączenia tego makra do makra funkcji
Problem polega na tym, że tylko 1 moneta na 500 ma to makro, więc nie mogę go uruchomić za pomocą niestandardowego paska narzędzi / lokalnej pomocy
Widzę funkcję makra, ale w tym celu musiałbym utworzyć makro, które uruchamia inne makro:SmartProperties 2014-Auto.swp i które nie znajduje się w tym samym katalogu co pierwsze makro
Przykład bieżącego katalogu makr C:\Macro i właściwości inteligentnych w C:\Smartproperties
Znalazłem to samo, z wyjątkiem RunMacro zamiast RunMAcro2, próbuję tego, a potem wracam, aby opowiedzieć o wyniku.
W przeciwnym razie, skąd mogę mieć pewność, że osoba uruchomi makro, wykonując funkcję makra, ponieważ uruchamia się ręcznie po raz 1, jeśli dobrze zrozumiałem, a następnie uruchamia się przy każdej modyfikacji, patrz przykład: dołączony środek ciężkości makra (ale kod jest zablokowany przez autora ->Axemble)
EDYCJA: dla właściwości, które mają zostać zaktualizowane, jest ich wiele w zależności od typu części
1-) Długość i szerokość blachy do blachy
2-) Długość paska obliczona w zależności od rodzaju paska
- PVC = Lgbelt+4‰
- Modułowy = Lgbelt+100mm
- .....
3-) Oznaczenie, które czasami zajmuje niektóre z wyżej wymienionych właściwości
Samo makro działa dobrze, uruchamia się, wstawia makro do drzewa pomieszczenia, uruchamia smartproperties, weryfikuje je. Następnie, jeśli dokonasz najmniejszej modyfikacji wybrzeża, dobrze się uruchamia, z drugiej strony mam problem, w zależności od użytej metody się zawiesza.
Jeśli zmodyfikuję wymiar i zatwierdzę w oknie dialogowym, a następnie nacisnę Ctrl+Q lub przebuduję, nie ma problemu.
Z drugiej strony, jeśli zmodyfikuję wymiar i przebudowuję go w oknie dialogowym przed walidacją, smartproperties ulega awarii.
Jeśli ktoś ma pomysł, aby to obejść, kod makra jest dołączony w pliku tekstowym (nie można go umieścić w odpowiedzi, ponieważ odpowiedź jest zbyt długa)
O awarii serwis nie ma pojęcia, dlatego zwracam się do społeczności!
Oto odpowiedź od konserwacji:
"Problem musi polegać na tym, że próbujemy uruchomić dodatek, a Solidworks nie może tego lubić, gdy funkcja makra jest uruchomiona."
Na razie szukam w smartproperties, próbując dodać właściwość run z opcją oczekiwania na koniec aplikacji lub z właściwościami aktualizacji.
Witam; Pozwalam sobie na grzebanie w tym temacie (w każdym razie 7 lat)... możliwe jest wywołanie Smartproperties z innego makra (opcjonalnie można go używać z narzędziem do integracji. W katalogu instalacyjnym Visiativ Tools: Wyszukiwanie i edycja (za pomocą Edytora makr Solidworks) SmartProperties.swp Poszukaj identyfikatora paska narzędzi ToolbarID i numeru skojarzonego z "Set swDCAddIn = swApp.GetAddInObject"{...}")
Następnie, aby zainicjować i uruchomić Smartproperties:
Sub main()
Dim swApp As Object
Dim swModel As Object
Dim swDCAddIn As Object
Dim strDllFileName As String
Dim strExecutablePath As String
Dim strRegFileName As String
Dim lStatus As Long
Dim retval As Long
Dim ToolbarId As Long
On Error Resume Next
ToolbarId = ***Le N° du ToolBarID*** 'Attention, il faut recuperer le numero de la toolbar SmartProperties depuis la macro "Smarproperties_Auto.swp" la plus recente
'On récupére l'application SW
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
MsgBox ("Pas de document actif")
End
Else
Dim stPathMacro As String
stPathMacro = swApp.GetCurrentMacroPathName
strRegFileName = Replace(stPathMacro, "-Auto.swp", ".dll")
strDllFileName = strRegFileName
'on initialise l'Add-ins
lStatus = swApp.LoadAddIn(strDllFileName)
'on récupére l'Add-ins (Attention, il faut recuperer le numero de l'app SmartProperties depuis la macro "Smarproperties_Auto.swp" la plus recente)
Set swDCAddIn = swApp.GetAddInObject("{***XXXXX-XXX-XXXX***}")
....
'on lance SmartProperties
swDCAddIn.OpenAndValidateSmartProperties
End If
End Sub
Ostrzeżenie: numery ToolBarID i AppSmarproperties zmieniają się z każdą nową aktualizacją narzędzi MyCad... (I ich lokalizacja też).