Autor
|
Thema: Laufzeitfehler (Überlauf) bei CATvbs-Makro (1767 mal gelesen)
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003 Windows 7 Prof. 64-Bit CATIA V5-6 R2014 SP04
|
erstellt am: 07. Jul. 2009 15:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hab ein Problem mit einem Makro, das mir immer wieder auf einigen Rechnern einen Überlauf-Laufzeitfehler produziert. Laut fehlermeldung tritt der fehler bei Zeile 41 (Zeile 41: ViewScale = "1:" 1 / ScaleDezimal) auf. Da ist eine Rechenoperation drin. Hier noch das Script (vieleicht nicht die sauberste lösung, aber normalerweise).
Code: Sub CATMain() '**************************************************************** '*** Blatt-Nr. ermitteln *** '****************************************************************
Set drawingDocument1 = CATIA.ActiveDocument Set drawingSheets1 = drawingDocument1.Sheets Set drawingSheet1 = drawingSheets1.ActiveSheet For i = 1 To drawingSheets1.Count If drawingSheet1 Is drawingSheets1.Item(i) Then Exit For Next SheetNumber = i If SheetNumber >9 Then SheetNumberForm = SheetNumber Else SheetNumberForm = 0 & SheetNumber End if 'MsgBox SheetNumber '**************************************************************** '*** Maßstab ermitteln *** '**************************************************************** ScaleDezimal = drawingSheet1.Scale If ScaleDezimal = 1 Then ViewScale = "1:1" ElseIf ScaleDezimal < 1 Then ViewScale = "1:" 1 / ScaleDezimal Else ViewScale = ScaleDezima & ":1" End if 'MsgBox ScaleDezimal 'MsgBox ViewScale
'**************************************************************** '*** Blatt-Nr. und Maßstab in Zeichnungskopf eintragen *** '**************************************************************** Set oDraw = CATIA.ActiveDocument oFileName = SheetNumber Set oSheets = oDraw.Sheets Set oSheet = oSheets.ActiveSheet oSheet.Activate
Set oViews = oSheet.Views oSheet.Views.Item(1).Activate Set OView = oViews.Item(1) OView.Activate Set ocText = OView.Texts If s <> 1 Then Set oViews = oSheet.Views oSheet.Views.Item(2).Activate Set OView = oViews.Item(2) OView.Activate
Set ocText = OView.Texts For i = 1 To ocText.Count Set oText = ocText.Item(i) If oText.Text = oFileName Then t = 2 Exit For ElseIf oText.Name = "Kopf_BalttNr" Then oText.Text = oFileName t = 2 End If Next For i = 1 To ocText.Count Set oText = ocText.Item(i)
If oText.Text = ViewScale Then t = 2 Exit For ElseIf oText.Name = "Kopf_Massstab" Then oText.Text = ViewScale t = 2 End If Next End If Set oViews = oSheet.Views oSheet.Views.Item(1).Activate ' BLATT001 aktivieren Set OView = oViews.Item(1) OView.Activate '************************************************************************************************************************** '********Blatt umbenennen '************************************************************************************************************************** Set oDraw = CATIA.ActiveDocument Set oSheets = oDraw.Sheets Set oSheet = CATIA.ActiveDocument.Sheets.Item(SheetNumber) SheetName = SheetNumberForm
If oSheet.Name <>SheetName Then oSheet.Name = SheetName oSheet.Activate End If
oSheets.Item(SheetName).Activate End Sub
Kennt das Problem einer von euch? mfg n4426 ------------------ MfG N4426 [Diese Nachricht wurde von n4426 am 07. Jul. 2009 editiert.] [Diese Nachricht wurde von n4426 am 07. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 07. Jul. 2009 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
Zitat: Original erstellt von n4426:
Laut fehlermeldung tritt der fehler bei Zeile 41 (Zeile 41: ViewScale = "1:" 1 / ScaleDezimal) auf. Da ist eine Rechenoperation drin.
Das kann IMHo so auch nicht gehen. Du versuchst Text und Rechenoperationen miteinander zu verknüpfen ohne entsprechende Umwandlungen zu machen. Viewscale soll eine Textvariable sein und wenn Du da was anhängst solltest Du erst das was Du anhängst in Text konvertieren (z.B. CStr(..) und dann das Anhängen mit der richtigen Operation "&" durchführen.
Axel ------------------ Inoffizielle deutsche CATIA Hilfeseite Netiquette von cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003 Windows 7 Prof. 64-Bit CATIA V5-6 R2014 SP04
|
erstellt am: 07. Jul. 2009 15:57 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 07. Jul. 2009 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003 Windows 7 Prof. 64-Bit CATIA V5-6 R2014 SP04
|
erstellt am: 07. Jul. 2009 17:01 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 07. Jul. 2009 18:15 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003 Windows 7 Prof. 64-Bit CATIA V5-6 R2014 SP04
|
erstellt am: 07. Jul. 2009 19:55 <-- editieren / zitieren --> Unities abgeben:
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 08. Jul. 2009 10:35 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 08. Jul. 2009 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 08. Jul. 2009 11:17 <-- editieren / zitieren --> Unities abgeben:
Hi Axel, der fehler tritt bei Code: ViewScaleRech = 1 / ScaleDezimal
auf. Der Wert für ScaleDezimal ist 0,2. ------------------ MfG N4426 [Diese Nachricht wurde von n4426 am 08. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Jul. 2009 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 08. Jul. 2009 13:58 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Tritt es bei allen Dezimalzahlen auf? Ist im Makro das Dezimaltrennzeichen ein Punkt? (zB 0.2)
Hi Bernd, die Dezimalzahl wird im Script über den Befehl "ScaleDezimal = drawingSheet1.Scale" aus den Blatteingenschaften ausgelesen. Wenn ich die Variable über eine MsgBox ausgeben lassen, schreibt er 0,2 ------------------ MfG N4426 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 08. Jul. 2009 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
Schreib mal CDbl() um dein Scale, vielleicht wird es ja zu Int konvertiert. Von welchem Typ sind deine Variablen denn? ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 09. Jul. 2009 07:20 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 09. Jul. 2009 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 09. Jul. 2009 11:19 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 09. Jul. 2009 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für n4426
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003
|
erstellt am: 09. Jul. 2009 14:10 <-- editieren / zitieren --> Unities abgeben:
|
n4426 Mitglied CAx-Administration, Technischer Zeichner (Maschinen- und Anlagentechnik)
Beiträge: 65 Registriert: 17.01.2003 Windows 7 Prof. 64-Bit CATIA V5-6 R2014 SP04
|
erstellt am: 10. Jul. 2009 06:09 <-- editieren / zitieren --> Unities abgeben:
Hi Axel, ich habs versucht, nur leider aktzeptiert mein Script den "." nicht als Dezimaltrennzeichen. Wir haben gestern nochmal getestet den fehler auf einem 32-Bit und einem 64-Bit Windows XP System zu provozieren. Auf dem 64-Bit-System hatten wir den fehler schnell bekommen, dagengen auf dem 32-Bit-System hat es keine probleme gegeben. Kann das irgendwie mit dem 64-Bit-System zusammen hängen (CATIA ist aber auf beiden 32-Bit)? ------------------ MfG N4426 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |