Ich bin auf der Suche nach einem Makro, um ein Stück automatisch alle 5 Sekunden zu rekonstruieren.
Im Moment habe ich ein Makro, mit dem ich ein Teil neu erstellen kann, aber ich kann keine Schleife hinzufügen, die mit VBA identisch ist.
Hier ist der Code zum Neuerstellen:
Dimmen swApp als Objekt Teil als Objekt dimmen Dim boolstatus als boolescher Wert Dim longstatus As Long, longwarnings As Long Sub main() swApp = _ setzen Anwendung.SldWorks Set Part = swApp.ActiveDoc boolstatus = Teil.EditRebuild3() Ende Sub
Hier ist meine Schleife (VBA-Typ):
Unter-Zeit()
Application.OnTime Now + TimeValue("00:00:0"), "main"
Application.OnTime Now + TimeValue("00:00:05"), "Zeit"
Ende Sub
Wie kann ich diese Schleife an Solidworks anpassen, oder gibt es einen anderen Weg?
Ich glaube nicht, dass ich der Einzige sein werde, der sich diese Frage stellt, aber was bringt es, alle 5 Sekunden neu aufzubauen?? weil es keinen Raum / keine Zeit lässt, um an dem Stück zu arbeiten.
Persönlich bevorzuge ich die B-Taste (standardmäßig Alt+B) und die Strg + Q, die vollständiger ist.
Ich verwende Solidworks als Steuerungsbildschirm, um eine Maschine fernzusteuern, die nicht "sichtbar" ist.
Ich möchte die Position und die Bewegungen dieser Maschine kennen , also habe ich eine gleichungsgesteuerte Kinematik entwickelt, die es mir ermöglicht, alle Bewegungen zu visualisieren . Meine Zwischensequenz wird alle 5 Sekunden aktualisiert, aber ich muss jedes Mal auf "Neu erstellen" klicken, um die Bewegungen zu sehen , und ich möchte, dass es automatisch geschieht.
Ok, es ist in gewisser Weise eine Ablenkung der Software, da SW nicht als HMI an der Basis gedacht ist, aber warum nicht, solange Sie es schaffen, die realen Positionen wiederherzustellen.
Übrigens , wie macht man das, zum Beispiel über die Vernunft am Maschinenautomaten?
Entschuldigung für diese Fragen, aber es geht mehr darum, das Warum und Wie zu verstehen und diejenigen, die später in Ihrem Beitrag erscheinen werden.
Achten Sie darauf, den Speicher nicht zu überlasten, da die Gefahr eines Absturzes besteht. Wenn eine SW zu lange mit Kinematik und häufigen Neuerstellungen verwendet wird, stürzt die SW ab und beschädigt dabei oft die ASM-Datei. Sie sollten besser ein Duplikat Ihres ASM haben. ;-)
Sagen Sie uns gelegentlich, ob es auf Ihrem Gerät das tut, was ich beschreibe.
Um alle 5 Sekunden eine Schleife zu erstellen, schlage ich diesen Code vor:
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
Ich glaube jedoch nicht, dass es möglich ist, mit SOLIDWORKS zu interagieren, wenn ein Makro in einer Schleife ausgeführt wird.
Bei einer kleinen Datei gibt es dieses, das in der Lage sein muss, zu funktionieren:
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
Aber ich habe es noch nicht mit einer großen Datei versucht, die länger als 5 Sekunden zum Wiederherstellen benötigt ...