| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Berechnungsergebisse in Datei schreiben (1538 mal gelesen)
|
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX2015 OPTIMUS MOTUS VSCode
|
erstellt am: 26. Mrz. 2015 10:12 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich möchte folgendes erledigen: MathCAD (Prime 3.1 z.Z. Express) soll (beispielsweise) die Maße eines Quaders berechnen. Am Ende des MathCAD-Blattes habe ich die Ergebisse b=10 h=22.87 l=102.5 Diese Werte möchte ich jetzt in eine Datei schreiben so, dass sie ein anderes Programm (unser CAD-System) wieder einlesen kann. Die Datei muss dann so aussehen: b=10 // Breite h=22.87 // Hoehe l=102.5 // Laenge (Die Kommentare sind nicht zwingend nötig.) Frage: wie kann ich MathCAD dazu bekommen so ein Ausgabeformat zu erzeugen? Die Kommandos zur Ausgabe wie z.B. WRITEFILE oder WRITETEXT, WRITECSV usw. schreiben ein Array bzw. eine Matrix in die Datei. Kann ich ein Array so befüllen, dass die erste Spalte b h l enthält, die zweite Spalte = = = und die dritte 10 22.87 102.5 ?? Wie müsste ich das angeben? uger
------------------ Deine Wahrnehmung bestimmt deine Realität! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rmix22 Mitglied
Beiträge: 146 Registriert: 13.09.2013
|
erstellt am: 26. Mrz. 2015 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für uger
Zitat: Original erstellt von uger: Kann ich ein Array so befüllen, dass die erste Spalte b h l enthält, die zweite Spalte = = = und die dritte 10 22.87 102.5?? Wie müsste ich das angeben?
Ganz geht es nicht so wie du das gern hättest. Die b,h,l und die Gleichheitszeichen müssten Strings sein, also "b", "h", "l" und "=". Mit ein wenig mehr Aufwand und ein paar Konversionsroutinen wie str2vec, etc. sollte es aber vermutlich auch möglich sein, beliebigen ASCII-Code zu schreiben. Ich glaube, dass ich das vor Urzeiten schon einmal gemacht habe und vermute, dass das auch in Prime funktionieren könnte. RMix RMix22
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX2015 OPTIMUS MOTUS VSCode
|
erstellt am: 26. Mrz. 2015 14:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Rmix, ich habe schon etwas mehr in Erfahrung gebracht. Das Ergebnis zeigt das Bild. Ich denke die Tabulatoren zwischen den Werten wegzubekommen wird auch klappen. Aber wie bekomme ich die Anführungszeichen weg? uger ------------------ Deine Wahrnehmung bestimmt deine Realität! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rmix22 Mitglied
Beiträge: 146 Registriert: 13.09.2013
|
erstellt am: 26. Mrz. 2015 20:11 <-- editieren / zitieren --> Unities abgeben: Nur für uger
Zitat: Original erstellt von uger: Hallo Rmix,ich habe schon etwas mehr in Erfahrung gebracht. Das Ergebnis zeigt das Bild. Ich denke die Tabulatoren zwischen den Werten wegzubekommen wird auch klappen. Aber wie bekomme ich die Anführungszeichen weg? uger
Das einzige, was mir dazu einfällt ist ein wenig aufwändig. Vor allem auch deshalb, weil es sich anbieten würde, sich hier die eine oder andere Funktion zu schreiben, die zB Variablennamen als string und den Variablenwert als Argumente hat und den Rest automatisch erledigt. Damit könnte man dann auch etwas basteln, um an eine bestehende Datei etwas dranzuhängen und nicht die ganze Datei am Stück schreiben zu müssen. Aber leider ist die dazu nötige "Programmier"funktion in der Express Version gesperrt. Was ich mir ausgedacht habe ist, alles, was in die Datei rein soll in einen Vektor von UNICODE codes zu konvertieren und diesen dann mittels WRITEBIN in eine Datei zu schreiben. str2vec konvertiert Zeichenketten nach UNICODE, num2str wandelt Skalare in Strings um, die dann wieder mit str2vec behandelt werden. Das Einfügen der codes 13 und 10 bewirkt einen Zeilenwechsel. Mir fällt jedenfalls ad hoc keine andere Möglichkeit ein, mit Prime Texte ohne die Hochkommatas in eine Datei zu schreiben. Siehe beigefügtes Bild. Gruß RMix
[Diese Nachricht wurde von rmix22 am 26. Mrz. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX2015 OPTIMUS MOTUS VSCode
|
erstellt am: 31. Mrz. 2015 16:11 <-- editieren / zitieren --> Unities abgeben:
Hallo rmix, die von Dir vorgeschlagene Methode funktioniert. Ich würde mir da zwar etwas einfacheres wünschen, aber wenn es anders nicht geht kann (muss) ich damit leben. Leider wird damit einer der Vorteile von MathCAD, nämlich dass ich die Formeln so "wie im Mathe-Buch" schreiben kann, durch diese kryptischen Befehlskombinationen wieder getrübt. Danke jedenfalls für die Tipps, uger ------------------ Deine Wahrnehmung bestimmt deine Realität! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rmix22 Mitglied
Beiträge: 146 Registriert: 13.09.2013
|
erstellt am: 01. Apr. 2015 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für uger
Es wäre sicher kein Problem, die "Kryptik" in einem selbsterstellten Befehl zu verstecken, so dass du nur mehr zB Schreibe("h",h,Dateiname) tippen musst. Du siehst, den Dateinamen als String müsstes du nach wie vor selbst beisteuern, da es keine Möglichkeit gibt, automatisch den Dateinamen in eine Zeichenkette zu verwandeln. Das kann hier aber auch ein Vorteil sein, wenn die Variable im Blatt nicht unbedingt so heißen muss wie später in der Datei. Man könnte das sicher so realisieren, dass die ersten beiden Funktionsargumente auch Listen (Vektoren) sein können, sodass auch eine ganze Gruppe von Variablen in einem Schwung geschrieben werden können. Diese selbstgeschriebene Funktion versteckst du dann am Beginn des Arbeitsblattes in einen zusammengeklappten Bereich zusammen mit anderen Routinen und Konstantendefinitionen, die du ständig benötigst. Dieser Bereich kann als Ganzes leicht von Arbeitsblatt zu Arbeitsblatt kopiert werden. Oder noch besser ist du integrierst ihn in die Vorlagendatei, sodass die Routinen in jedem neu erstellten Blatt verfügbar sind. In Mathcad 15 haben wir bei diesen Bereichen mehr Möglichkeiten (wen wunderts). Ihr Aussehen ist dort modifizierbar und sie könnten vollständig und spurlos versteckt werden. Wichtig ist in MC15 vor allem die Möglichkeit, diese Bereiche durch ein Passwort zu schützen. So kann man Kunden etwa Funktionen zu Verfügung stellen, ohne das KnowHow preisgeben zu müssen. ODer man lässt den Bereich offen für alle einsehbar stehen und schützt ihn. Dann können alle Mitarbeiter die Standarddefinition und Konventionen die in der Firma gelten sollen einsehen, können (und sollen) sie aber in dem Blatt nicht verändern. Mal sehen was davon in Prime 6,7,8 noch umgesetzt wird. In deinem Fall ist das mit der selbstgeschriebenen Routine nicht möglich, weil in der Express-Version das "Programmieren" gesperrt ist. Gruß RMix
[Diese Nachricht wurde von rmix22 am 01. Apr. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|