Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Macro anhalten und manuel fortsetzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS
Autor Thema:  Macro anhalten und manuel fortsetzen (2337 / mal gelesen)
4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 08. Jun. 2017 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wie kann ich ein Makro anhalten und per Tastenkürzel fortsetzen?

Hier ein Beispiel. 3 Zoom Ansichten (in der Zeichnung)


Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Part.ViewZoomTo2 1.61428484062526E-02, 0.189996617565803, 0, 5.12796317673755E-02, 0.164106356141817, 0
Part.ViewZoomTo2 0.094174135771501, 0.183293267001821, 0, 0.130731359351257, 0.15605596801058, 0
Part.ViewZoomTo2 0.24137961471948, 8.64905701905415E-02, 0, 0.303846231983413, 5.16282485556224E-02, 0
End Sub

Ich brauche die Pausen da ich jede Ansicht bearbeiten möchte, ist das möglich?
Von mir aus kann man auch ein Timer einbauen z.b 30 Sekunden, dann kommt die nächste Ansicht usw.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 08. Jun. 2017 11:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Hallo

In diesem Fall würde ich ein Formular mit drei Knöpfen machen.

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 08. Jun. 2017 12:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Welches Forumular?

Die 3 Detailansichten sind bei mir unterschiedlich, jede Zeichnung ist etwas anders positioniert.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thisoft
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Thisoft an!   Senden Sie eine Private Message an Thisoft  Schreiben Sie einen Gästebucheintrag für Thisoft

Beiträge: 178
Registriert: 10.04.2010

SWX 2018 Standard SP 3
Win10 Professional 64Bit
Intel Core i7 7700K
16 GB RAM
AMD FirePro W5000
=Beruf
SW 2018 Standard SP0
Win10 Professional 64Bit
Intel NUC Core i5-6260
12GB RAM
Intel Onboard
=Privat

erstellt am: 08. Jun. 2017 13:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Ich mache das manchmal so:

Code:
        Do
            swApp.Frame.SetStatusBarText("Mach was...! Enter = Beenden.")
            System.Threading.Thread.Sleep(1000)
            swApp.Frame.SetStatusBarText("")
        Loop Until GetAsyncKeyState(Keys.Enter)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 08. Jun. 2017 13:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thisoft, dein Code funktioniert nicht.

Oder ich mache was falsch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thisoft
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Thisoft an!   Senden Sie eine Private Message an Thisoft  Schreiben Sie einen Gästebucheintrag für Thisoft

Beiträge: 178
Registriert: 10.04.2010

SWX 2018 Standard SP 3
Win10 Professional 64Bit
Intel Core i7 7700K
16 GB RAM
AMD FirePro W5000
=Beruf
SW 2018 Standard SP0
Win10 Professional 64Bit
Intel NUC Core i5-6260
12GB RAM
Intel Onboard
=Privat

erstellt am: 08. Jun. 2017 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Ich vermute mal du musst noch die Funktion "GetAsyncKeyState" deklarieren bzw. importieren:

#Region "Win32 imports"

    Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short
#End Region

Sagt meine leicht trübe Glaskugel zu deiner Aussage "funktioniert nicht!" - Mit einer konkreteren Fehlermeldung könnte ich vielleicht auch konkretere Hilfestellung geben 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 09. Jun. 2017 10:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

VBA ist nicht meine Welt 


Ich poste mal hier den ganzen Code..

Code:
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc

        Do
            swApp.Frame.SetStatusBarText ("")
Part.ViewZoomTo2 2.29833512322677E-02, 0.190099749959715, 0, 6.64287214703697E-02, 0.155763892836053, 0
            System.Threading.Thread.Sleep (1000)

            swApp.Frame.SetStatusBarText ("")
Part.ViewZoomTo2 0.118716215856383, 0.194312575516218, 0, 0.189867225580949, 0.154290132546149, 0
            System.Threading.Thread.Sleep (1000)

            swApp.Frame.SetStatusBarText ("")
Part.ViewZoomTo2 0.209477552181085, 8.65826510303085E-02, 0, 0.275119692877651, 4.16608830283659E-02, 0

        Loop Until GetAsyncKeyState(Keys.Enter)

           
End Sub



Ergebniss:

"Fehler beim Kompilieren
Sub oder Function nicht definiert"

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thisoft
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Thisoft an!   Senden Sie eine Private Message an Thisoft  Schreiben Sie einen Gästebucheintrag für Thisoft

Beiträge: 178
Registriert: 10.04.2010

SWX 2018 Standard SP 3
Win10 Professional 64Bit
Intel Core i7 7700K
16 GB RAM
AMD FirePro W5000
=Beruf
SW 2018 Standard SP0
Win10 Professional 64Bit
Intel NUC Core i5-6260
12GB RAM
Intel Onboard
=Privat

erstellt am: 09. Jun. 2017 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Ooch - ja, ich fürchte Du weißt zwar was du gern hättest verstehst aber noch nicht wirklich was dein per Rekorder erstellter Code da tut. Ich versuch's mal zusammenzubringen...

Code:

Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc

Part.ViewZoomTo2 2.29833512322677E-02, 0.190099749959715, 0, 6.64287214703697E-02, 0.155763892836053, 0
Do
    swApp.Frame.SetStatusBarText ("Erste Ansicht bearbeiten! Weiter mit Enter-Taste.")
    System.Threading.Thread.Sleep (1000)
    swApp.Frame.SetStatusBarText ("")
Loop Until GetAsyncKeyState(Keys.Enter)

Part.ViewZoomTo2 0.118716215856383, 0.194312575516218, 0, 0.189867225580949, 0.154290132546149, 0
Do
    swApp.Frame.SetStatusBarText ("Zweite Ansicht bearbeiten! Weiter mit Enter-Taste.")
    System.Threading.Thread.Sleep (1000)
    swApp.Frame.SetStatusBarText ("")
Loop Until GetAsyncKeyState(Keys.Enter)

Part.ViewZoomTo2 0.209477552181085, 8.65826510303085E-02, 0, 0.275119692877651, 4.16608830283659E-02, 0
Do
    swApp.Frame.SetStatusBarText ("Dritte Ansicht bearbeiten! Weiter mit Enter-Taste.")
    System.Threading.Thread.Sleep (1000)
    swApp.Frame.SetStatusBarText ("")
Loop Until GetAsyncKeyState(Keys.Enter)

         
End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 09. Jun. 2017 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hmm geht nicht...

"Private Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Integer) As Short" ist in roter Schrift 

Das heißt ich muss nen GetAsyncKeyState Funktion importieren wie du gesagt hast?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 09. Jun. 2017 15:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Hallo,

bei dir funktioniert das u.a. nicht, da das wohl VB.NET Schnippsel sind und noch nicht für VBA umgeschrieben, SWX VBA erwartet z.B. die Declarationen als PtrSafe, genauso wenig ist VBA die Keys-Enumeration bekannt daher funktioniert Keys.Enter als Vergleiswert auch nicht, genauso wenig ist VBA System.Threading.Thread.Sleep (1000) bekannt.

Bevor wir hier aber weiter über das Pausieren des Macros reden, was ist eigentlich dein genaues Ziel, was soll den in dieser "Pause" passieren?

Gruß
Bernd


------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 09. Jun. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thisoft
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Thisoft an!   Senden Sie eine Private Message an Thisoft  Schreiben Sie einen Gästebucheintrag für Thisoft

Beiträge: 178
Registriert: 10.04.2010

erstellt am: 12. Jun. 2017 08:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Ja, stimmt wohl. 4kspeed arbeitet noch mit VBA. Stand zwar nirgends aber hätte ich sehen können...

Hab mein Beispiel mal drauf angepasst:

Code:
Private Declare PtrSafe Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Long

Const VK_RETURN = &HD  ' Enter Taste
Const VK_RBUTTON = &H2 ' Rechter Mausbutton
Const VK_MBUTTON = &H4 ' Mittlerer Mausbutton

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long


Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Part.ViewZoomTo2 2.29833512322677E-02, 0.190099749959715, 0, 6.64287214703697E-02, 0.155763892836053, 0
Do
    swApp.Frame.SetStatusBarText ("Erste Ansicht bearbeiten! Weiter mit Enter-Taste.")
    DoEvents
Loop Until GetAsyncKeyState(VK_RETURN)

Part.ViewZoomTo2 0.118716215856383, 0.194312575516218, 0, 0.189867225580949, 0.154290132546149, 0
Do
    swApp.Frame.SetStatusBarText ("Zweite Ansicht bearbeiten! Weiter mit Enter-Taste.")
    DoEvents
Loop Until GetAsyncKeyState(VK_RETURN)

Part.ViewZoomTo2 0.209477552181085, 8.65826510303085E-02, 0, 0.275119692877651, 4.16608830283659E-02, 0
Do
    swApp.Frame.SetStatusBarText ("Dritte Ansicht bearbeiten! Weiter mit Enter-Taste.")
    DoEvents
Loop Until GetAsyncKeyState(VK_RETURN)

       
End Sub


Wobei die Enter-Taste nicht unbedingt die glücklichste Auswahl dafür ist - kann u.U. je nachdem was du in SWX dann gerade gemacht hast auch andere, an dieser Stelle nicht gewollte Funktionen auslösen. Ich nehme ganz gerne RMB für sowas - hab's oben schon mal mit deklariert...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

SW 2019 SP3.0
Windows 10 Pro 64bit
CPU E3-1220 v5, Quadro M2000, 16GbRAM,
3DxWare 10.4.9, LGS 8.91.48

erstellt am: 12. Jun. 2017 15:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thisoft
danke ich probiers aus...

Hallo  bk.sc
Ziel ist es in der Pausen alle Deitailansichten zu bemaßen (aufgrund einer Änderung).
Weil mein Problem ist es das ich eine Ansicht oft vergesse zu bemaßen, da es sehr viele sind.
Mit einer Zoom Makro Ansicht automatisch springen (nach einer Betätigung) finde ich sehr sinnvoll, dann ist man auf den sicheren Weg dies nicht zu vergessen, ich hoffe du verstehst mich.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

erstellt am: 16. Jun. 2017 07:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thisoft, dein Makro läuft.
Manchmal überspringt er die 2. Zoomansicht, Zoomansicht 1 und Zoomansicht 3 klappt gut, wenn dies noch gelöst werden kann wäre das optimal.
Aber ich bin trotzdem froh auf die 2 Zoomansichten zuzugreifen (mit Pause dazwischen) danke. :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

4kspeed
Mitglied



Sehen Sie sich das Profil von 4kspeed an!   Senden Sie eine Private Message an 4kspeed  Schreiben Sie einen Gästebucheintrag für 4kspeed

Beiträge: 91
Registriert: 27.10.2016

SW 2019 SP3.0
Windows 10 Pro 64bit
CPU E3-1220 v5, Quadro M2000, 16GbRAM,
3DxWare 10.4.9, LGS 8.91.48

erstellt am: 23. Jun. 2017 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hat sich erledigt...
Problem es waren viel zu schnelle Latenzen beim Tastendruck.

Habe jetzt eine neue Tastatur mit Anschlagverzögerung (programmierbar) und kann somit alle Schritte anhalten.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thisoft
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Thisoft an!   Senden Sie eine Private Message an Thisoft  Schreiben Sie einen Gästebucheintrag für Thisoft

Beiträge: 178
Registriert: 10.04.2010

erstellt am: 26. Jun. 2017 08:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 4kspeed 10 Unities + Antwort hilfreich

Ja - ich hatte ja oben schon geschrieben dass die Enter-Taste nicht die beste Wahl dafür ist. Mit der Rechten Maustaste habe ich bessere Erfahrungen gemacht...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz