Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Mathcad
  Berechnungsergebisse in Datei schreiben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von uger an!   Senden Sie eine Private Message an uger  Schreiben Sie einen Gästebucheintrag für uger

Beiträge: 1115
Registriert: 25.02.2003

NX2015
OPTIMUS MOTUS
VSCode

erstellt am: 26. Mrz. 2015 10:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von rmix22 an!   Senden Sie eine Private Message an rmix22  Schreiben Sie einen Gästebucheintrag für rmix22

Beiträge: 146
Registriert: 13.09.2013

erstellt am: 26. Mrz. 2015 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uger 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von uger an!   Senden Sie eine Private Message an uger  Schreiben Sie einen Gästebucheintrag für uger

Beiträge: 1115
Registriert: 25.02.2003

NX2015
OPTIMUS MOTUS
VSCode

erstellt am: 26. Mrz. 2015 14:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


mathcad001.png

 
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



Sehen Sie sich das Profil von rmix22 an!   Senden Sie eine Private Message an rmix22  Schreiben Sie einen Gästebucheintrag für rmix22

Beiträge: 146
Registriert: 13.09.2013

erstellt am: 26. Mrz. 2015 20:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uger 10 Unities + Antwort hilfreich


WRITEBIN1.png

 
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


Sehen Sie sich das Profil von uger an!   Senden Sie eine Private Message an uger  Schreiben Sie einen Gästebucheintrag für uger

Beiträge: 1115
Registriert: 25.02.2003

NX2015
OPTIMUS MOTUS
VSCode

erstellt am: 31. Mrz. 2015 16:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von rmix22 an!   Senden Sie eine Private Message an rmix22  Schreiben Sie einen Gästebucheintrag für rmix22

Beiträge: 146
Registriert: 13.09.2013

erstellt am: 01. Apr. 2015 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uger 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz