| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Anzahl Parameter (1271 mal gelesen)
|
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 31. Mrz. 2004 17:05 <-- editieren / zitieren --> Unities abgeben:
Hai! Da ergibt sich direkt die nächste Frage: ist die Anzahl der mit dem Befehl übergebenen Parameter begrenzt? Wahrscheinlich doch nicht in der Anzahl? Eher durch eine maximale Befehlslänge oder so? Jedenfalls kriege ich hier kein Ergebnis, wenn ich versuche, 11 Parameter zu übergeben. Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 31. Mrz. 2004 17:19 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
hallo, ist mir nicht bekannt, dass es mit 11 Parametern nicht mehr funktionieren soll. Doch wenn ich so eine grosse Anzahl von Daten verwalten muss, wähle ich den Weg über die Logische Tabellen. Log. Tabellen sind ja global. Damit lassen sich dann auch die Ergebnisse elegant vom Unterprogramm zurück ins Hauptprogramm transportieren. aber wie wäre es mit einer kurzen Grundschulung für ME10-Makros. Die Zeit holst Du dann ganz schnell wieder rein.
------------------ Grüsse aus dem Schwarzwald www.Andreas-Baumgartner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dittrich Mitglied SysAdmin
Beiträge: 388 Registriert: 06.06.2000 Wenn es nicht geht, probier was anderes, vielleicht geht es dann auch nicht.
|
erstellt am: 01. Apr. 2004 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
1.) Mach ruhig mal einen Kurs bei Andreas. @Andreas: Kriege ich jetzt Prozente? 2.) Machmal gibts Probleme mit den Typen. Also STRING oder Zahl. Und Leerzeichen dürfen die Parameter schon garnicht haben. Innerhalb des Makros kannst Du dir mit DISPLAY parametervariable die Belegung wer was bekommen hat ansehen. (Debuging für Arme) Kein Ergebnis kann ja nicht sein. Eine Fehlermeldung sollte schon drin sein. Es sei denn, Du hast immer TRAP_ERROR an. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 01. Apr. 2004 11:22 <-- editieren / zitieren --> Unities abgeben:
Hallo! Zitat: Original erstellt von baumgartner: aber wie wäre es mit einer kurzen Grundschulung für ME10-Makros. Die Zeit holst Du dann ganz schnell wieder rein.
Hihi, ihr habt ja uneigennützige Vorschläge. Okay, ihr habt ja Recht. Aber ich werde nicht dafür Urlaub nehmen und das Ganze noch selber bezahlen. Ausserdem wird sich mein Engagement in dieser Richtung nach wie vor in Grenzen halten. Zitat: Original erstellt von baumgartner: Doch wenn ich so eine grosse Anzahl von Daten verwalten muss, wähle ich den Weg über die Logische Tabellen.
Die Idee gefällt mir. Nur eines daran nicht: Kann es sein, dass man für jeden Wert in einer logischen Tabelle den Befehl WRITE_LTAB verwenden muss? Das wären dann bei geschätzten 100 Wertereihen mit je 11 Parametern 1100 Zeilen...? Ist doch Wahnsinn. Geht das nicht auch eleganter, ausser über externe Tabellen? Viele Grüße Tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fan-ME10 Mitglied DV-Adminstrator, Konstrukteur
Beiträge: 543 Registriert: 21.08.2001 Erare humanum est
|
erstellt am: 01. Apr. 2004 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
|
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 01. Apr. 2004 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Zitat: Original erstellt von Tom R: Die Idee gefällt mir. Nur eines daran nicht: Kann es sein, dass man für jeden Wert in einer logischen Tabelle den Befehl WRITE_LTAB verwenden muss? Das wären dann bei geschätzten 100 Wertereihen mit je 11 Parametern 1100 Zeilen...? Ist doch Wahnsinn.
Ja, ist schon richtig mit dem WRITE_LTAB, aber keine Angst: der nutzt sich nicht ab! So eine logische Tabelle ist Sinnvoll, wenn Du Deine 11 Parameter immer hin und her übergeben willst, wenn Du die nur einmal übergibst, muß das vielleicht nicht unbedingt sein. Und Du kannst die Tabelle ja jedes Mal überschreiben, Du brauchst nicht für jeden Aufruf ne neue Zeile aufmachen. Wenn Du allerdings wirklich alle Daten brauchst, die sich so ansammeln, dann ist das erst recht ein Argument für so eine Tabelle. P.S.: Ich glaub, mir ist grad aufgegangen, was Du meinst: Nein, Du sollst nicht jeden Wert in der Befehlszeile mit WRITE_LTAB eintragen, bau Dir einfach ein Makro, das die Tabelle erzeugt, die Werte abfragt und einträgt! Da kannst Du die zuletzt eingegebenen Werte sogar als Voreinstellung drin lassen, wenn sich einzelne Werte wiederholen! Bsp: READ 'Wert1' DEFAULT wert1 wert1 Gruß
Andreas
[Diese Nachricht wurde von Andreas 253 am 01. Apr. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 01. Apr. 2004 13:00 <-- editieren / zitieren --> Unities abgeben:
Hai! Nee, mir ist nicht bange davor, diese Anzahl Werte einzuhacken. Mir ging es wirklich nur um den Umfang des Makrosfiles. Ich hatte gedacht, man könnte vielleicht die Daten für eine Tabellenzeile mit einem einzigen Befehl übergeben. Es geht darum, dass ich hier Teile, die in unserer Werksnorm bestimmt sind, auf Knopfdruck zeichnen lassen wollte. Also dachte ich, eine Tabelle dahinterzuhängen (die soll nicht mal sichtbar sein, die Auswahl soll über Icons erfolgen), in der für die unterschiedlichen Größen die Werte stehen. Vielleicht wäre es doch einfacher, die Teile zu zeichnen und dann als Einzelteil in die Zeichnung zu laden? Aber da hat man dann haufenweise Zeichnungsdateien, ist auch nicht so toll. Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rhoffmann Mitglied Techniker
Beiträge: 58 Registriert: 22.01.2003
|
erstellt am: 01. Apr. 2004 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Hallo Tom, ich zeichne kompliziertere Baugruppen per Makro. Dort werden abhängig von der Eingabe alle relevanten Daten berechnet. Bei Deiner Problematik müsstest Du ja für jedes Element (Linie, Kreis ect.) alle Werte in einer Tabelle festhalten. Und dies für jede Variante.... Ist es nicht möglich, nur die _Unterschiede_ in einer Tabelle zu vermerken, und abhängig von der Eingabe direkt die entsprechende Zeile der Tabelle zu lesen. Häng doch mal zwei kleine Beispiele an, wo man sehen kann, worin sich diese Zeichnungen unterscheiden. MfG Robert http://home.t-online.de/home/eva-hoffmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 01. Apr. 2004 14:54 <-- editieren / zitieren --> Unities abgeben:
Hallo! Nein, das hab' ich schon so gemacht, dass nur die relevanten Werte in der Tabelle auftauchen, bzw. an das Makro übergeben werden. Die festen oder unmittelbar abhängigen Maße werden im Makro gesetzt oder berechnet. Ich habe also tatsächlich 11 Maße, die ich nicht ableiten kann. Und ich habe gerade Folgendes herausgefunden: sobald ich mehr als 6 Parameter an das Makro übergebe, bekomme ich einen Fehler. Es hängt nicht an der Länge der Befehlszeile, sondern an der Anzahl der übergebenen Parameter. Habt ihr diese Probleme noch nie gehabt? Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas 253 Mitglied
Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 01. Apr. 2004 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
OK, jetzt versteh ich, was Du vor hast! also ich glaub nicht, daß das ME10 ein wesentliches Problem mit einer Tabelle dieser Größe hat. Ich würd mir eine Datei machen in der diese Werte stehen, jeweils eine Zeile mit den 11 Werten, durch ein bestimmtes Zeichen getrennt (z.B. Semikolon) und die Werte für die Tabelle am Anfang aus der Datei lesen. Hab schon öfters sowas gemacht, auch mit relativ großen Tabellen. Wenn Du willst, kannst Du die Werte ja erst beim ersten Aufruf des Makros einlesen, dann stehen sie nur dann im Speicher, wenn sie auch wirklich gebraucht werden. Neue Werte trägst Du einfach in Deine Datei ein, wenn Du es geschickt anstellst, kannst Du Deine Tabelle auch mit Excel verwalten oder per Makro neue Zeilen anhängen, die im ME10 eingegeben wurden. Gruß Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rhoffmann Mitglied Techniker
Beiträge: 58 Registriert: 22.01.2003
|
erstellt am: 01. Apr. 2004 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Hallo Tom, untenstehendes Makro läuft auch mit 20 Parametern... DEFINE Test PARAMETER P1 PARAMETER P2 PARAMETER P3 PARAMETER P4 PARAMETER P5 PARAMETER P6 PARAMETER P7 PARAMETER P8 PARAMETER P9 PARAMETER P10 PARAMETER P11 PARAMETER P12 PARAMETER P13 PARAMETER P14 PARAMETER P15 PARAMETER P16 PARAMETER P17 PARAMETER P18 PARAMETER P19 PARAMETER P20 LOCAL Ergebnis LET Ergebnis (P1+P2+P3+P4+P5+P6+P7+P8+P9+P10+P11+P12+P13+P14+P15+P16+P17+P18+P19+P20) DISPLAY (Ergebnis) END_DEFINE Test 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { bringt bei mir 210 } Also muss der Fehler woanders herkommen (Komma statt Punkt oder ähnliches). MfG Robert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 01. Apr. 2004 16:49 <-- editieren / zitieren --> Unities abgeben:
Hallo! Das Rätsel ist gelöst, bzw. mein Fehler gefunden. Dank eurer Tipps und Beispiele konnte ich das Problem so weit eingrenzen, dass ich dann herausfinden konnte, dass ich in meinen Variablenbezeichnungen wohl eine Systemvariable erwischt habe. So enfach kann es manchmal sein. Und ich halte euch mit dem Quatsch auf Trab. *gg* Sorry. Dann noch einmal an euch alle ein Dankeschön und viele Grüße in alle möglichen Richtungen. Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dittrich Mitglied SysAdmin
Beiträge: 388 Registriert: 06.06.2000 Wenn es nicht geht, probier was anderes, vielleicht geht es dann auch nicht.
|
erstellt am: 02. Apr. 2004 07:12 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
|
baumgartner Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 02. Apr. 2004 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Zitat: Original erstellt von Tom R:
Hihi, ihr habt ja uneigennützige Vorschläge.
uneigennützig wäre gewesen, wenn ich Dich mit Spam vollgehauen hätte, Dir nur zur einen heissen, aber unbrauchbaren Tipp gegeben hätte. Doch wenn ich an die Zeit denke, die ich in Hilfe für andere Kollegen investiere, diese sich die Wartung/Hotline sparen, dann darf auch mal ein Wink mit dem Zaunpfahl enthalten sein. Aber so eine Schulung empfehle ich Dir immer noch. Muss ja nicht bei mir sein. Es gibt viele Anbieter die im Wettbewerb stehen. - ist das jetzt so in Ordnung? Nur meine Schulung ist natürlich die B..te Zitat: Original erstellt von Dittrich: Alte Adminweisheit: 90% der Probleme sitzen vor dem Computer
Stimmt genau! Doch gibt es einen etwas höflichere, elegantere Aussage, sogar mit Rettungsanker, falls jemand beleidigt ist. "90% der Probleme hängen zwischen Tastatur und Rückenlehne" und wenn dann jemand beleidigt ist, kann man immer noch darauf hinweisen, dass dich dort gerade die Maus befindet, die tatsächlich am Kabel hängt. Oder beim Chef bietet sich die Variante an, dass doch die Krawatte auch noch dazwischen hängt. ------------------ Grüsse aus dem Schwarzwald www.Andreas-Baumgartner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anneB Mitglied CAD Applikationsbetreuer
Beiträge: 22 Registriert: 07.04.2004
|
erstellt am: 07. Apr. 2004 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Hallo, viel gereede und keine Antwort... Ein alter Trick aus den Urzeiten... Parameter-Liste in eine ASCII-Datei packen (zeilenweise) und mit OPEN_FILE.. und mit einem READ Befehl in einer Schleife einnlesen auswerten und zuordnen. bis zum END_OF_FILE das hat schon vor den logischen Tabellen funktioniert. ------------------ Gruß Anne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 07. Apr. 2004 16:23 <-- editieren / zitieren --> Unities abgeben: Nur für Tom R
Zitat: Original erstellt von anneB: ...viel gereede und keine Antwort...... das hat schon vor den logischen Tabellen funktioniert...
ja um es genau zu nehmen, ab ME10-V3.x ging das erstmals so, weil damals OPEN_FILE kam. War aber damals wie heute langsam, so dass ich froh war, dass mit ME10-V4.x über eine logische Tabelle eine schnelle Lösung gefunden war. Über globale Variablen gings schon ab Version 1, aber wenn man da nicht sauber programmiert, bzw. diese sofort wieder löscht, verliert man ganz schnell den Überblick. ------------------ Grüsse aus dem Schwarzwald www.Andreas-Baumgartner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
Beiträge: 274 Registriert: 02.11.2003 Solid Edge ST7 mit SMAP Piping OSDD 2006 unter Win 7
|
erstellt am: 08. Apr. 2004 11:48 <-- editieren / zitieren --> Unities abgeben:
|