|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Exklusives EDU-Programm für RTX PRO Blackwell, eine Pressemitteilung 
 | 
| Autor | Thema:  Event Watcher Liste verwenden (1964 mal gelesen) | 
 | Colli123 Mitglied
 Maschinenbau Student
 
  
 
      Beiträge: 32Registriert: 18.10.2014
 Inventor 2013Visual Studio 2010
 |    erstellt am: 18. Nov. 2014 23:33  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Zusammen! Nachdem ich den Artikel über den Event Watcher bei Mod the Machine gelesen habe, (http://modthemachine.typepad.com/my_weblog/2009/03/running-commands-using-the-api.html)wollte ich mich selber daran machen die Klicks die ich als Inventor End-User ausführe, über die Liste die der Event Watcher parallel erstellt, in ein Programm umzuschreiben.
 Allerdings versteh ich noch nicht so ganz, wie man die Ergenisse aus der Event Watch Liste im Code verpackt.
 Hätte jmd eine Idee oder ein einfaches Bsp? (z.B. der User wählt eine Fläche aus und darauf öffent sich die Fläche im Sketch Modus)
 Schöne GrüßeColli
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | rkauskh Moderator
 Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
        
 
  
 
      Beiträge: 2933Registriert: 15.11.2006
 Windows 10 x64, AIP 2020-2025 |    erstellt am: 19. Nov. 2014 00:32  <-- editieren / zitieren -->    Unities abgeben:           Nur für Colli123   
  Hallo 1. Der EventWatcher ist kein Makrorekorder.2. Der EventWatcher liefert im besten Fall den Namen eines Befehls, den du über den ControlDefinition.Execute-Befehl im VBA aufrufen kannst. Viele Befehle erwarten weitere Eingaben, so das auf die Art keine vollständige Automatisierung möglich ist.
 3. Eine Fläche kann nicht im Sketch Modus geöffnet werden. Du kannst auf einer selektierten Fläche eine neue Skizze erstellen. Der Aufwand über ein Makro ist der gleiche wie rechte Maustaste auf die Fläche und neue Skizze im Kontextmenü auswählen bzw. Fläche anwählen und im Kreisdingensmenü die Befehl neue Skizze auswählen.
 4. Ein einfaches Beispiel das den Inhalt einer Skizze kopiert:
 Code:Public Sub CopySketch()
 ' Set a reference to the active document.
 ' This assumes a part document is active.
 Dim oDoc As PartDocument
 Set oDoc = ThisApplication.ActiveDocument
 
 ' Set a reference to the component definition.
 Dim oDef As PartComponentDefinition
 Set oDef = oDoc.ComponentDefinition
 
 ' Set a reference to the first sketch in the part.
 Dim oSketchToCopy As PlanarSketch
 Set oSketchToCopy = oDef.Sketches.Item(1)
 
 ' Select the sketch to copy.
 Call oDoc.SelectSet.Clear
 Call oDoc.SelectSet.Select(oSketchToCopy)
 
 ' Execute the copy command.
 Dim oCopyControlDef As ControlDefinition
 Set oCopyControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AppCopyCmd")
 oCopyControlDef.Execute
 
 ' Create a new sketch on the XY plane.
 Dim oNewSketch As PlanarSketch
 Set oNewSketch = oDef.Sketches.Add(oDef.WorkPlanes.Item(3))
 
 ' Put the sketch in edit mode.
 oNewSketch.Edit
 
 ' Execute the paste command.
 Dim oPasteControlDef As ControlDefinition
 Set oPasteControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AppPasteCmd")
 oPasteControlDef.Execute
 
 Dim oSketchEnts As ObjectCollection
 Set oSketchEnts = ThisApplication.TransientObjects.CreateObjectCollection
 
 Dim oSketchEnt As SketchEntity
 For Each oSketchEnt In oNewSketch.SketchEntities
 Call oSketchEnts.Add(oSketchEnt)
 Next
 
 ' Translate all sketch entities in the new sketch.
 Call oNewSketch.MoveSketchObjects(oSketchEnts, ThisApplication.TransientGeometry.CreateVector2d(1, 0))
 End Sub
 
 ------------------MfG
 Ralf
  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Colli123 Mitglied
 Maschinenbau Student
 
  
 
      Beiträge: 32Registriert: 18.10.2014
 Inventor 2013Visual Studio 2010
 |    erstellt am: 19. Nov. 2014 09:09  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Ralf, danke für deine Antwort!Das man die Befehle nicht so einfach automatisierend aneinander hängen kann stand auch im ModtheMachine Artikel. Ist aber gar nicht so schlimm in meinem Fall.
 Kann man also den Event Watcher nur benutzen um Befehle herauszufinden die man dann mit ControlDefinition.Execute über ein AddIn ausführen kann? Ich hatte gehoft das sich damit noch mehr anstellen lässt.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | rkauskh Moderator
 Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
        
 
  
 
      Beiträge: 2933Registriert: 15.11.2006
 Windows 10 x64, AIP 2020-2025 |    erstellt am: 19. Nov. 2014 13:03  <-- editieren / zitieren -->    Unities abgeben:           Nur für Colli123   
  Hallo Der EventWatcher macht was der Name sagt. Er wartet auf das Eintreten der selektierten Events und spuckt die dazu verfügbaren Informationen aus. Das ist manchmal hilfreich, wenn man in seinem Programmcode auf eine bestimmte Useraktion reagieren möchte, aber nicht genau weiß welches Event dabei auftritt. ------------------MfG
 Ralf
  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |