Szukam makra do automatycznej rekonstrukcji utworu co 5 sekund.
Na razie mam makro, które pozwala mi odbudować część, ale nie mogę dodać pętli identycznej jak w VBA.
Oto kod do odbudowania:
Dim swApp As Object Przyciemnij część jako obiekt Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Ustaw swApp = _ Aplikacja.SldWorks Ustaw część = swApp.ActiveDoc boolstatus = Part.EditRebuild3() Koniec subwoofera
Oto moja pętla (typu VBA):
Czas podrzędny()
Application.OnTime Now + TimeValue("00:00:0"), "main"
Application.OnTime Now + TimeValue("00:00:05"), "czas"
Koniec subwoofera
Jak mogę dostosować tę pętlę do Solidworks, czy jest inny sposób?
Myślę, że nie będę jedynym, który zada sobie to pytanie, ale jaki jest sens odbudowywania co 5 sekund? ponieważ nie pozostawia miejsca / czasu na pracę nad utworem.
Osobiście wolę używać B (domyślnie alt + B) i Ctrl + Q, który jest bardziej kompletny.
Używam Solidworks jako ekranu sterującego do zdalnego sterowania maszyną, która nie jest "widoczna".
Chcę poznać położenie i ruchy tej maszyny, więc stworzyłem kinematykę opartą na równaniach, która pozwala mi wizualizować wszystkie ruchy. Moja scenka przerywnikowa aktualizuje się co 5 sekund, ale za każdym razem muszę kliknąć odbuduj, aby zobaczyć ruchy i chciałbym, aby było to automatyczne.
Ok, jest to w pewnym sensie odwrócenie oprogramowania, ponieważ oprogramowanie nie jest stworzone jako HMI u podstawy, ale dlaczego nie, o ile uda Ci się odzyskać rzeczywiste pozycje.
Nawiasem mówiąc , jak to zrobić , na przykład za pomocą rozumu na automacie maszynowym?
Przepraszam za te pytania, ale bardziej chodzi o to, aby zrozumieć dlaczego i jak oraz tych, którzy później pojawią się w Twoim poście.
Uważaj, aby nie przepełnić pamięci, ponieważ istnieje ryzyko awarii. W przypadku zbyt długiego korzystania z oprogramowania z kinematyką i częstymi przebudowami, oprogramowanie kończy się awarią i często uszkodzeniem pliku ASM. Lepiej mieć duplikat swojego ASM. ;-)
Od czasu do czasu powiedz nam, czy robi na twoim komputerze to, co opisuję.
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim oldTime As Date
Dim newTime As Date
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
oldTime = Time
newTime = Time
Do While 1 = 1:
If newTime > oldTime + "0:00:05" Then
boolstatus = Part.EditRebuild3()
oldTime = Time
Else: newTime = Time
End If
Loop
End Sub
Nie sądzę jednak, aby możliwa była interakcja z solidworks, gdy makro działa w pętli.
Na małym pliku jest to, co musi być w stanie działać:
Dim swApp As Object
Dim Part As ModelDoc2
Dim boolstatus As Boolean
Dim PauseTime, Start
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
If Part Is Nothing Then
MsgBox "Aucun fichier n'est chargé dans SW."
Exit Sub
End If
Do While Part.GetTitle <> ""
PauseTime = 5
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Set Part = swApp.ActiveDoc
If Part Is Nothing Then
MsgBox "Traitement terminé."
Exit Sub
Else
boolstatus = Part.EditRebuild3()
End If
Loop
End Sub
Ale nie próbowałem dużego pliku, którego odbudowanie zajmuje więcej niż 5 sekund...