Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Funktion beenden unmöglich

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 Autodesk Produkte
Autor Thema:  Funktion beenden unmöglich (1371 / mal gelesen)
Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13115
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 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

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



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

Beiträge: 3543
Registriert: 21.06.2001

erstellt am: 27. Jun. 2017 00: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 Nur für Roland Schröder 10 Unities + Antwort hilfreich

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


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

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 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 Roland Schröder 10 Unities + Antwort hilfreich

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



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

Beiträge: 35
Registriert: 17.02.2016

Inventor 2019
Win7 64Bit

erstellt am: 27. Jun. 2017 14: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 Nur für Roland Schröder 10 Unities + Antwort hilfreich

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



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

Beiträge: 13115
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 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

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



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

Beiträge: 35
Registriert: 17.02.2016

Inventor 2019
Win7 64Bit

erstellt am: 27. Jun. 2017 16:42    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 Roland Schröder 10 Unities + Antwort hilfreich

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

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