Laden...
JuergenG
myCSharp.de - Member
2
Themen
5
Beiträge
Letzte Aktivität
vor 10 Monaten
Dabei seit
09.03.2024
Erstellt vor 10 Monaten

Moin Gü,

Entschuldigung dass meine Frage nicht so klar dargestellt wurde. Ich bin mir ja selbst nicht so im Klaren, wo eigentlich mein Problem liegt.

In etwa so:

Wie wird ein Ergebnis, zusammengestellt als Sting zu einem Dokument - möglichst .docx- gebracht, unter Berücksichtigung der mathematischen Formatierung.

Meine Anwendung ist in Angular2/TypeScript geschrieben und über meine Homepage zugänglich.

Die Ergebnisse können per paste/copy in ein Worddokument gelegt werden - ohne mathematische Formatierung, jedoch schönes MathJax auf der Homepage ist im Worddokument nur noch Zahlensalat.

Daher der Versuch mit C# näher an der Windows Weld heranzukommen.

Die Hauptteile des Angular Projektes habe ich nun auf GitHub unter

https://github.com/angulartool-de/Scaffold-framework-for-interactive-formula-collection-/tree/main

als MIT veröffentlich.

Dein Demoprojekt werde ich mir sehr gerne ansehen und hoffentlich etwas mehr Klarheit bekommen.

Grüße

JuergenG

Erstellt vor 10 Monaten

Es geht tatsächlich, wie gezeigt, um diese

A) Erstellung der Strings (was noch einfach ist) und

B) wie ich die "String-Ansammlung" in einer Datei schreiben kann, evtl. nicht nur als .txt / .pdf über file.

C) oder gleich eine DOCx?  Datei mit den formatierten Formeln und Ergebnissen erstellen kann.

Hintergrund:

Ich möchte die Teilberechnungen über eine Formelsammung erstellen und dann die Einelschritte in einem Hashtable speichern  (so ähnlich wie eine TODO), wobei der Schlüssel eine ID wird. Das nachträgliche (Neu) Sortieren wird dann über ein Property "Kapitel-Nr." erfolgen.

Dann soll der gesamte Inhalt des Hashtable (Liste) in einer Datei ausgegeben werden.

Das klingt wie immer einfach, hat aber dann in der Umsetzung so seine Tücken.

Daher meine Frage nach der Best-Praxis, oder einen Hinweise, wie das ganze prinzipiell sinnvoll angegangen werden kann.

Grüße

JuergenG

Erstellt vor 10 Monaten

Moin,

eigentlich geht es darum, dass bei festgelegten Berechnungen die Eingabe- und Ausgabewerte in einer Docx oder notfalls PDF Datei gespeichert werden. Hier das Beispiel im JavaScript zum Erstellen des Ergebnisausdruckes:

<!--BERECHNUNGEN UND ERGEBISSE DRUCKEN -->

<table *ngFor``="``let variable of  variableObjList; let i =   index ">
<tr 
<div>
{{ variable``.varLabel }} [{{ variable``.varSymbol }}
<sub>{{ variable``.subtext }}</sub><sub>{{ variable``.subindex }}</sub>
]: {{ variable``.showValue | number``: '1.0-2' }} {{ variable``.unit }}  <br>
</div>
<tr>

Naja, es werden also alle Variablen mit Ihren Bezeichnungen, Werten und Einheiten "ausgedruckt". Die dazu gehörige Formel  für ein Rechenergebnis sollte dann mit den entsprechenden Werten befüllt werden. Siehe Pdf-Anhang. Im Grunde nichts mit höheren Ansprüchen, aber nur einfach ein Text in der Form:

100mm²*PI/4=0.785cm² oder

Wurzel( (100N/mm²)²+ 3*((15 N/mm²)²) = 103.32 N/mm²

ist nicht schönen.

Das Gute ist, ich habe feste Formel und Ergebnisse im Programm "hinterlegt", nur die Werte innerhalb der Formel ändern sich.

Grüße

Jürgen

Erstellt vor 10 Monaten

Ich möchte meine Berechnung mit Latex dokumentieren. Mein Fernziel ist MathCAD Prime (Basis) für den Bereich technische Mechanik zu ersetzen.

Ich habe über Latex eine grobe Vorstellung, aber im Detail, gerade was die Matheausdrücke betrifft, große Lücken.

Mit Mathjax habe ich gute Ergebnisse erhalten.

Ich bin dankbar für jeden Tipp, sei es ein Buch oder Tutorial oder ein Artikel im Web.

Grüße Jürgen

Erstellt vor 10 Monaten

Moin,

ich habe ein Programm in TypeScript (Angular) erstellt, bei dem innerhalb von Formeln Werte und Einheiten eingegeben werden könnten. Das Projekt ist auf angulartool.de zu sehen.

Der Programmaufbau ist kurz umrissen:

Jede Variable ist eine Klasse mit den Properties, welche zur Anzeige im HTML notwendig sind.

Das HTML für einzelnen Pages der jeweiligen Formeln ist immer die gleiche html-Datei.

Bei der Benutzereingabe (KeyDown und Up) wir die Werteingabe geprüft und dann diese anhand des Variablenname (Property-Name) und einem String zu ein Funktionsaufruf "gebaut" - also imperativ. Innerhalb der Funktion(en) wird dann die entsprechende Berechnung durchgeführt und das im Ergebnis veränderte Variablen-Objekt entsprechend bei den Properties geändert.

Die Einheiten werden über Button anhand eines Switch/Case umgeschaltet und der entsprechende Faktor auf den nominalValue für den showValue multipliziert.

Eine Liste bei der Initialisierung der Seite erstellt dann die notwendigen HTML Bausteine automatisch.

Ich habe hierzu ein bisschen Klassen (Variablen) und viel Funktionen und Discrepancy Injection für die statischen shared Kontroll-Funktionen genommen.

So werden einfach neue Variable im Code mittels einem Constructors generiert:

...

public W = new VariableUnitBuilder('W', 'mm³', 0, 'Widerstandsmoment', 'W', false, 'xW', true, 'Wx', 'Wy');
public Euler = new VariableUnitBuilder("Euler", "+", [1, 2, 3, 4], "Eulerfallzahl 1-4", "Nr.", false, 'E', true, '-', '-')

...

der HTML Aufbau bestimmt:

this.variableList.push(
this.F,
this.L,
'---Momente und Spannungen------',
this.Mt,
this.Szul,

'br'

....

So weit so lala...

Nun muß ich die Ergebnisse mit LATEX in einem verwertbaren Bericht darstellen und nicht nur eine Ergebnisliste ohne den Rechenschritte.

Hier kommt m.E. der Internetbrowser mit Javascript ans Limit, daher will ich eine Desktop Version mit einem LATEX Generator schreiben und dabei insbesondre für die Gesamtanwendung  OOP konsequent verwenden. Und natürlich in C#!

In der üblichen Doku und Tutorial wird gerne von Person and ToDo gesprochen, aber nicht wie ich ein Variablenobjekt mit Funktionen sinnvoll verknüpfen kann. GETer und SETer klingen schon einmal gut, aber der Code für eine neue Formel (Kreis oder Anderes) sollte schnell nach Schema! programmiert werden.

Wer kann mir ein gutes GitHub Project, Buch oder Tutorial (auch Englisch) hierzu empfehlen. Die Grundlagen von C# kann ich einigermaßen verstehen.

Insbesondere frage ich mich, ob der Weg über die Variable(Klasse) mit den allen steuernden Properties der richtige Weg ist:

public varName: string = '';
public varLabel: string = '';
public varSymbol: string = '';

public unitBase: string = '0';
public unit: string = '0';
public scaleSelect: number = 1;

public inputStr: string = '0';
public inputValue: number = 0;
public nominalValue: number = 0;
public ergebnis: boolean = false;
public showStr: string = '0';
public showValue: number = 0;
public nominalValueOld: number = 0;

public fixActiv: boolean = false;
public fixGroup: string = '';
public fixStatus: boolean = false;

public fixLabelStr: string = '';
public fixTrueLabel: string = 'fix';
public fixFalseLabel: string = 'var';

public selectBox: boolean = false;
public inputValueString: number | string | (number | string)[] = ''

public subindex: string = ''
public subtext: string = ''

public keyStr: string = ''
public SelKeyStr 😒tring []= []

public checkNumber = isNaN(this.showValue)

und das "Delegat" zum Funktionsaufruf so sinnvoll ist:

keyup(obj: VariableUnitBuilder): void {
this.validate(obj);

// @Functioncall  keyup_W. Also alles ohne den klassischen Eventlistener

const FunctionCall: string = 'keyup_' + obj.varName;
const Vari: string = obj.varName;

try {
// @ts-ignore
this[FunctionCall](obj);
this.Meldung = FunctionCall;

} catch (e) { // @ts-ignore
this.Meldung = e.toString()
}

this.calc()
}

VIELEN DANK.

JürgenG

angulartool.de