| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Funktion beenden unmöglich (1462 / mal gelesen)
|
Roland Schröder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13408 Registriert: 02.04.2004 AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot DellM4600 2,13GHz 2GB FxGo1400 1920x1200 am Dock Dell2711
|
erstellt am: 26. Jun. 2017 17:02 <-- editieren / zitieren --> Unities abgeben:
Moin! Wenn ich den unten stehenden Code ausführe, ist es nicht möglich, die Funktion wieder zu verlassen. Kann das vielleicht mal bitte jemand anschauen und mir sagen, was fehlt? Code: Sub CheckOffset()Offset.Show While Offset.Visible = True Dim oOcc As ComponentOccurrence Set oOcc = ThisApplication.CommandManager.Pick(kAssemblyOccurrenceFilter, "Komponente wählen") If Not oOcc Is Nothing Then Offset.TextBox1.Text = Round(oOcc.Transformation.Translation.X * 10, 1) Offset.TextBox2.Text = Round(oOcc.Transformation.Translation.Y * 10, 1) Offset.TextBox3.Text = Round(oOcc.Transformation.Translation.z * 10, 1) End If Wend End Sub
------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3743 Registriert: 21.06.2001
|
erstellt am: 27. Jun. 2017 00:45 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hi Roland. In Deinem geposteten Code ist nichts, was die Sichtbarkeit des Dialogs 'Offset' negieren, und Dich dadurch aus dem while-loop herausholen würde. Ich hoffe mal, der Dialog hat irgendwelche Steuerelemente (Ok- und Cancelbutton) deren gefeuerte Events Dich aus der Sichtbarkeit und damit aus der Schleife befreien. Aber nur mit dem Codeschnipsel ist das schwierig zu beurteilen. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 27. Jun. 2017 09:08 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hallo Roland, ich kann dort Torsten nur zustimmen... Bist du sicher, dass du überhaupt eine Schleife brauchst? Aus dem gegebenen Kontext hätte ich darauf geschlossen, dass hier eine Wenn-Verzweigung sinnvoller wäre: "If Offset.Visible = True Then" ------------------ Mit Besten Grüßen Ruzy5624 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ticky72 Mitglied
Beiträge: 35 Registriert: 17.02.2016 Inventor 2019 Win7 64Bit
|
erstellt am: 27. Jun. 2017 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hallo Roland, wenn die Pick Methode abgebrochen werden soll wenn UserForm Offset geschlossen wird (z.B. über das Kreuzchen) probier mal das Terminate Event vom UserForm zu verwenden. Code:
Private Sub UserForm_Terminate() ThisApplication.CommandManager.StopActiveCommand End Sub
Grüße Helmut Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13408 Registriert: 02.04.2004 AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot DellM4600 2,13GHz 2GB FxGo1400 1920x1200 am Dock Dell2711
|
erstellt am: 27. Jun. 2017 15:21 <-- editieren / zitieren --> Unities abgeben:
Moin! Und vielen Dank schon mal! Der Dialog hat zwar die erwähnten Steuerelemente, aber da passiert nix. Gehört zu diesem Code vielleicht noch die Definiotion der Dialogbox, die auch zu betrachten wäre? Schleife? Ich bin nicht der Autor dieses Codes. Den hat mir mal jemand geschickt, als ich eine Lösung für diese Aufgabe (Abfragen der Raumposition in der iam) suchte; vermutlich auch unter dem Vorbehalt, dass das nur ein erster Ansatz und noch nicht fertig ist. Ich vermute, dass durch die Schleife immer neue Komponenten geklickt werden können, deren Koordinaten dann angezeigt werden. Das funktioniert auch und ist auch sinnvoll. Das Terminate Event vom UserForm zu verwenden, klingt gut. Werde ich dann mal probieren. Wobei.... -> Wo füge ich das ein? ------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ticky72 Mitglied
Beiträge: 35 Registriert: 17.02.2016 Inventor 2019 Win7 64Bit
|
erstellt am: 27. Jun. 2017 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für Roland Schröder
Hallo, ich hab deinen Code ausprobiert und der funktioniert soweit. Dein UserForm darf nicht modal gestartet werden, sonst kannst du im Inventor nicht weiterarbeiten. Entweder die Eigenschaft ShowModal vom UserForm im VBA-Editor auf False stellen oder die Code Zeile
Code: Offset.Show
um Code: Offset.Show vbModeless
erweitern. UserForm Offset kann man über das Kreuzchen beenden und mit der Esc-Taste kommt man aus der Pick-Methode. Mittels
Code:
Private Sub UserForm_Terminate() ThisApplication.CommandManager.StopActiveCommand End Sub
würde das drücken der ESC-Taste beim Schließen der UserForm wegfallen. Der Code muß im UserForm eingefügt werden: Im ProjektExplorer im VBA-Editor die UserForm mit der rechten Maustaste auswählen => View Code und dort einfügen. Schöne Grüße Helmut Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |