Autor
|
Thema: Fehler in Schleife zurück setzen (421 mal gelesen)
|
dusches Mitglied
Beiträge: 26 Registriert: 26.03.2010
|
erstellt am: 04. Mai. 2010 15:33 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mein Problem liegt in der zweiten do while schleife, also die, die nach dem "else" steht. Wenn ich die Syntax so lasse, und mein Makro in die else Anweisung geht, dann findet es kein Ende. Obwohl es eigentlich irgendwann keinen Fehler mehr gibt, wenn sich "vstart2" immer weiter erhöht. was muss ich ändern? welche Bedingung fehlt mir? Vielen Dank schon einmal! Viele Grüße ________________________________________ do while Messung1.value > 0 koord.value = vstart1 part1.UpdateObject Messung1 if Err.Number = 0 Then vstart1 = vstart1 + 2 else do while Err.Number <> 0 vstart1=vstart1.value + 2 part1.UpdateObject Messung1 loop Exit Sub end If loop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 04. Mai. 2010 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für dusches
|
dusches Mitglied
Beiträge: 26 Registriert: 26.03.2010
|
erstellt am: 04. Mai. 2010 16:13 <-- editieren / zitieren --> Unities abgeben:
oh ok...ich geb zu da hat es mir ein bisschen was verhauen beim rüberkopieren . hier noch mal neu: ___________________________________ dim vstart1 vstart1=0 do while Messung1.value > 0 Punktkkord.value = vstart1 part1.UpdateObject Messung1 if Err.Number = 0 Then vstart1 = vstart1 + 2 else do while Err.Number<>0 vstart1=vstart1 + 2 part1.UpdateObject Messung1 loop Exit Sub end If loop ____________________________________ die Punktkoordinate bezieht sich auf den Punkt, der verschoben werden soll. Dieser Punkt wird auf eine Linie projiziert. hat diese Projektion keine Lösung, soll der Punkt trotzdem weiter verschoben werden. und das so lange bis die erste Projektion wieder auf die Linie trifft. Dann soll die Schleife aufhören. Wenn die Messung aktualisiert wird, dann wird auch das Project aktualisiert. Deshalb ist hier das lokale update. Bei mir läuft das Makro bisher aber komplett bis zum Ender der Linie( wo die Projektion natürlich auch keine Lösung hat). Allerdings hat die Projektion schon viel weiter vorne eine Lösung, nur hört das Makro da nicht auf... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 04. Mai. 2010 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für dusches
Zitat: Original erstellt von dusches: ___________________________________ dim vstart1 vstart1=0do while Messung1.value > 0 Punktkkord.value = vstart1 part1.UpdateObject Messung1 if Err.Number = 0 Then vstart1 = vstart1 + 2 else do while Err.Number<>0 vstart1=vstart1 + 2 part1.UpdateObject Messung1 loop Exit Sub end If loop ____________________________________
Ich sehe aber keinerlei Auswirkung von vstart1 bzw. wird error nicht zurückgesetzt. Wenn könnte es so gehen...
Code:
dim vstart1 vstart1=0do while Messung1.value > 0 Punktkkord.value = vstart1 part1.UpdateObject Messung1 if Err.Number = 0 Then vstart1 = vstart1 + 2 else do while Err.Number<>0 err.clear vstart1=vstart1 + 2 Punktkkord.value = vstart1 part1.UpdateObject Messung1 loop Exit Sub end If loop
------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dusches Mitglied
Beiträge: 26 Registriert: 26.03.2010
|
erstellt am: 04. Mai. 2010 17:50 <-- editieren / zitieren --> Unities abgeben:
|