Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Stempel Makro

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
Autor Thema:   Stempel Makro (519 mal gelesen)
remtc
Mitglied



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

Beiträge: 33
Registriert: 18.09.2017

Solidworks Prof. 2018SP5 x64 auf Win 10

erstellt am: 05. Jul. 2019 11:25    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 liebe Gemeinde,

ich möchte ein Makro erstellen um in Zeichnungen "Stempel"-Markierungen (wiederholt auf einem Sheet eines Dokumentes) zu setzen

das Makro hat 4 Auswahlmöglichkeiten um den Block (bzw. 4 verschieden Blöcke die gespeichert sind [jeweils um 90° gedreht]) einzufügen. was ich gefunden habe war ein Makro bei dem der Block an eine bestimmte Position gesetzt wird.
Wie bekomme ich es nun hin dass der Block während des Makros am Mauszeiger "kleben" bleibt ich "stempeln" kann und danach einen anderen Block aus dem Makro auswähle.

bisher habe ich mir folgendes dabei gedacht:

Code:

Private Sub OptionButton1_Click()
    Dim swapp As Object
    Dim Sheet As Object
    Dim DrawingDoc As Object
    Dim boolstatus As Boolean
    Dim part As Object
    Dim drawing As Object 'SldWorks.DrawingDoc
    Dim SketchManager As Object 'SldWorks.SketchManager
    Dim Block
    Dim newBlockInstance As Object
    Dim SelMgr As Object
    'Dim XCord As Double                                    'X Koordinate für Einfügepunkt
    'Dim YCord As Double                                    'Y Koordinate für Einfügepunkt
    'Dim swMathUtil As Object 'SldWorks.MathUtility
    'Dim swMathPoint As Object 'SldWorks.MathPoint
    Dim swBlockInstance As Object 'SldWorks.SketchBlockInstance
    Dim pt(2) As Double
    Dim newBlockDefinition As Object

Set swapp = CreateObject("SldWorks.Application")
Set part = swapp.ActiveDoc
Set SelMgr = part.SelectionManager
Set DrawingDoc = swapp.ActiveDoc '* prüfen, ob überhaupt ein Dokument offen ist ...

        If DrawingDoc Is Nothing Then
            MsgBox "Kein Dokument offen"
            Exit Sub
        End If
   
        If (DrawingDoc.GetType <> swDocDRAWING) Then '* ... und ob das auch eine Zeichnung ist
            MsgBox "Nur für Zeichnungen sinnvoll"
            Exit Sub
        End If

'Block einfügen
'Set swMathUtil = swapp.GetMathUtility
'XCord = 0.148
'YCord = 0.078
'Set swMathPoint = swMathUtil.CreatePoint((pt))
Set newBlockDefinition = part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "F:\Solidworks\Vorlagen\Bloecke\Pruefkennzeichen_45_o_li.SLDBLK", False, 1, 0)
            'pt(0) = XCord
            'pt(1) = YCord
            pt(2) = 0
End Sub


ebenso stehe ich vor dem Problem, dass in dem Moment wo die Userform geöffnet ist ich nicht ins Solidworks Dokument rein klickern kann...

kann mir bitte jemand helfen oder einen Denkanstoß geben

Danke

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

nahe
Mitglied



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

Beiträge: 1497
Registriert: 18.01.2001

arbeite mit:
HP Z440 Workstation
Xenon (12-Kern) 3.5GHz
32GB RAM
238GB SSD
------------------------
SWX-2016 SP5.0
DBWorks-R15 SP2.17
----------------
Windows 7 64 bit
----------------
VB
VBA
Lotus Notes Datenbanken
erste Schritte mit Swift

erstellt am: 05. Jul. 2019 12:00    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 remtc 10 Unities + Antwort hilfreich

Hallo remtc,

könnte ev. über den Maus-Event funktionieren
(ich hab so etwas aber selbst noch nie gemacht)

Siehe dazu auch in der Onlinehilfe unter
Run SOLIDWORKS Commands and Synthesize Mouse Events Example (VBA)
DMouseEvents_MouseSelectNotifyEventHandler

Anmerkung:
- ich hab bis jetzt immer die Finger davon gelassen
- bei einem meiner Makros frage ich einfach den zuletzt mit der Maus geklickten Punkt ab
  ist zwar nicht besonders schön, weil die Position dann doch oft nicht passt
  die Eventprogrammierung, war mir dann aber dafür zu aufwendig
- aber wenn Du da was machst, wäre ich auch sehr daran interessiert


------------------
Grüße
Heinz

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: 2215
Registriert: 18.07.2012

-Solid Works 2019 SP3
-Pro Engineer WF 3

erstellt am: 05. Jul. 2019 15:07    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 remtc 10 Unities + Antwort hilfreich

Hallo remtc

Zitat:
ebenso stehe ich vor dem Problem, dass in dem Moment wo die Userform geöffnet ist ich nicht ins Solidworks Dokument rein klickern kann...

kann mir bitte jemand helfen oder einen Denkanstoß geben


ich glaub du brauchst ein ungebundens Form für dein vorhaben, schau dir hierzu mal die ShowModal-Eigenschaft der Form an.

Gruß
Bernd

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

Staatlich anerkannte Deutschniete 

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

remtc
Mitglied



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

Beiträge: 33
Registriert: 18.09.2017

Solidworks Prof. 2018SP5 x64 auf Win 10

erstellt am: 08. Jul. 2019 07:58    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 miteinander,

ich hätte nicht gedacht, dass es so kompliziert werden könnte :/
Vielen Dank für die Hinweise. Ich werde mal versuchen etwas auf die Beine zu stellen- mal sehen ob es klappt.
Falls noch jemand input haben sollte - immer her damit  und über Programmierbeispiele würde ich mich auch nicht ärgern ^^'

Grüße remtc

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

remtc
Mitglied



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

Beiträge: 33
Registriert: 18.09.2017

Solidworks Prof. 2018SP5 x64 auf Win 10

erstellt am: 08. Jul. 2019 10:36    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


MouseClickHandler.swp.zip

 
Hallo nochmal
habe ein Stück Makro gefunden um das Klickevent der Maus abzufragen - ähnlich wie es Heinz bei sich macht
Zitat:
einfach den zuletzt mit der Maus geklickten Punkt ab[fragen]

jedoch erhalte ich völlig falsche Punkte... ich scheine mich in einem falschen Koordinatensystem zu befinden... aber in welchem und wie änder ich das?!

Code:

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swView As SldWorks.ModelView
Dim WithEvents swMouse As SldWorks.Mouse
Dim X_, Y_ As Double
Dim listenForClick As Boolean

Private Sub CommandButton1_Click()
   
    Set swModel = swApp.ActiveDoc
   
    Set swView = swModel.ActiveView
   
    Set swMouse = swView.GetMouse
   
    listenForClick = True
   
End Sub

Private Function swMouse_MouseLBtnDownNotify(ByVal X As Long, ByVal Y As Long, ByVal WParam As Long) As Long
   
    If listenForClick Then
        X_ = X
        Y_ = Y
        MsgBox (X & "; " & Y)
        listenForClick = False
       
        Unload UserForm1
    End If
   
End Function

Private Sub UserForm_Initialize()

    Set swApp = Application.SldWorks

End Sub


Ich möchte mich gerne im Dokumenten Koordinatenssystem bewegen und klicken (bsp.: [0,0] befindet sich links unten in der ecke)

bezüglich der Modaleigenschaften reicht es wenn man die Userform über   

Code:
UserForm1.Show vbModeless
aufruft

[Diese Nachricht wurde von remtc am 08. Jul. 2019 editiert.]

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

remtc
Mitglied



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

Beiträge: 33
Registriert: 18.09.2017

Solidworks Prof. 2018SP5 x64 auf Win 10

erstellt am: 11. Jul. 2019 11:55    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


mouse.zip

 
Hallo,
da sich doch einige diesen Threat hier ansehen wollte ich einen möglichen Lösungsansatz posten:

über Klassen Definition einen Mausklick abwarten und an dieser Stelle einen Block einfügen
... siehe anhang...

Grüße remtc

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)2019 CAD.de | Impressum | Datenschutz