Autor
|
Thema: Verschluckte Zahlen!!!! (392 mal gelesen)
|
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 13. Aug. 2009 11:25 <-- editieren / zitieren --> Unities abgeben:
Ich habe hier (meiner Meinung nach) ein sehr skuriles Problem. Ich entwickle ein Makro mit dem ich zuvor eingepflegte Daten aus einer Baugruppe auslese. diese werden dann sortiert und anschließend in Excel geschrieben. Das Makro entwickel ich im VBA Editor und das Ergebnis sieht aus wie in Bild1. Soweit funktioniert alles wunderbar. Wenn ich den gleichen Program Code aber in ein CATScript Makro einfüge sieht das Ergebnis aus wie in Bild2. Der rote Rahmen zeigt einmal die Zahl vorhanden (Bild1) und nicht vorhanden (Bild2) an. Da das Problem nur im CATScript auftaucht hab ich keine Chance einen debugger zu nutzen. Somit ist es für mich als Anfänger unmöglich den Grund zu finden. Anmerkungen: -die Zahlen wo das Problem auftauchen setzen sich aus den Zahlen der Spalte links daneben und einer laufenden Zahl zusammen -das Problem taucht nur auf wenn die Zahlen, in der Spalte links daneben, unterschiedliche Anzahlen an Stellen aufweisen. Bsp. wenn alle Zahlen 3stellig sind funktionierts, wenn 1stellige und 3stellige vorhanden sind kanns funtkonieren, tut es aber nicht immer. Ich hab kontrolliert ob es davon abhängig ist an welcher Position im Strukturbaum das Teil ist dessen Zahl verschluckt wir. Aber hab da keine Abhängigkeiten entdecken können. Ich hab euch noch den Programmcode angehängt. Bitte nich wundern, bin noch Anfänger und das muss für euch Chaoss ohne Ende sein. Ausserdem sind Funktionen drin die mit absicht noch zu kommentaren gesetz sind. Ich hoffe, dass mir irgendeiner nur annähernd einen Hinweis gebn kann!!! Bin dankbar für wirklich jede Hilfe!!!! ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Aug. 2009 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo, ich habe gerade kein CATIA zur Hand und kann nichts testen ich könnte mir aber vorstellen das es an der Deklaration von Variablen liegt. CATvba deklariert mache Variablen scheinbar anders als ein CATScript. Beispiel: Ich deklariere ein Objekt in CATvba als "HybridBody" und übergebe einen Body an die Variable => Fehler weil falscher Typ (CATvba erwartet ein geometrisches Set) Ich machen das selbe in CATScript => kein Laufzeitfehler aber das Objekt bleibt leer Ich hätte aber einen ev. sogar einen schnelleren Vorschlag (falls der Fehler nicht gefunden wird weil er nicht reproduzierbar ist): Wenn sich der Wert immer aus der Spalte links daneben und einer fortlaufenden Zahl zusammensetzt dann könntest du doch diese Spalte gleich in Excel füllen lassen und nicht die Variable von CATIA nach Excel mitschleppen. Du brauchst ja nur eine Abfrage ob der Wert in der linken Spalte schon mal existiert. Wenn ja dann ist der Index eins höher als der letzte wenn nein ist der Index 1 (bzw. wenn es nicht sortiert ist (soll heißen die Werte nicht nacheinander stehen) kannst du ja ein Array füllen und die uBound auslesen um den nächsten Index zu bekommen) ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 13. Aug. 2009 11:54 <-- editieren / zitieren --> Unities abgeben:
Hi Daniel, danke schon mal für deine Mühen. Das mit der Deklaration würd ich ausschließen. Meiner Meinung nach dürfte es dann ja gar nicht funktionieren. Ich habe es gerade einem Mitarbeiter zeigen wollen und da hat es in jeglicher Kombination funktionert. Ich dacht schon die Katja will mich verarschen und plötzlich hat wieder eine Zahl gefehlt. Ich will das nicht im Excel machen. Ich muss das in ein BFW einpflegen. Das ist ein Excel Dokument, das voll von Makros und Zeugs ist. Ich will nur reinschreiben und sonst nix im Excel machen. Wenn ich allerdings einmal eine Kombination habe bei der eine Zahl fehlt, dann fehlt sie auch wenn ich das Makro mehrfach laufen lass. ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Aug. 2009 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo, nein ich glaub du hast mich falsch verstanden. Du sollst kein neues Makro in Excel schreiben sondern das vorhandene Excel Objekt (aus deinem CATScript benutzen) um damit in Excel die Operation durchzuführen und nicht die schon fertigen zahlen mit dem CATscript erstellen und auf einmal übergeben. Ein ähnliches Beispiel währe wenn du die Zahlen nach Excel übergibt und anschließend die Excel-Spaltenbreite mit dem CATScript änderst. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 13. Aug. 2009 13:23 <-- editieren / zitieren --> Unities abgeben:
Nein, ich habe dich schon richtig verstanden. Nur sind in so nem Excel Dokument soviele Sachen hinterlegt, dass man keine Zellen verschieben darf und solche Sachen. Deswegen möchte ich alle Operationen aus Excel heraus lassen. Aber im Grunde verlangt deine Methode ja nur das lesen der vorherigen Zelle...... Ich werde jetz noch ne etwas ausführlicherre Untersuchung starten. Wenn ich dann immer noch nicht weis woran es liegt dann versuch ich es mit deiner Variante. Ich danke dir recht herzlich!!! ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Aug. 2009 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo, ja wie gesagt das war der Vorschlag wenn man du den Fehler nicht reproduzieren kannst. Ich denke auch es sollte kein Problem sein die vorherige Spalte auszulesen (ich mein ist ja ein eindeutig definierter Bereich ) ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 13. Aug. 2009 14:39 <-- editieren / zitieren --> Unities abgeben:
Ich habe die Lösung des Problems!!! Anfangs dacht ich es kommt durch den Sortier-Algorithmus den ich eingefügt habe. Dann hab ich gemerkt, dass der Fehler schon vorher auftrat. Also das ältere Programm durchsucht. Ich konnte es dann auf einen kleinen Bereich begrenzen. Da konnte aber kein Fehler auftreten außer, dass ein Wertevergleich nicht funktionieren könnte. Da lag das Problem. Ich hatte die Zahlen als String Parameter hinterlegt und da bestand dann wohl manchmal ein Problem die Werte zu vergleichen. Wenn ich die Zahlen als Integer hinterlege Funktioniert es einwandfrei. ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Aug. 2009 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
|
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 13. Aug. 2009 15:07 <-- editieren / zitieren --> Unities abgeben:
Stimmt und deswegen sollte man nie an den Weisen zweifeln Bitte verzeih mir oh Guru der Makros *verneig* ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |