Für Leute, die keine Probleme mit der Kommandozeile und der Tastatur haben:
Habe das Programm zum Erstellen von Klemmleisten-Tabellen noch um die Möglichkeit erweitert, eine Kommentarspalte hinzuzufügen.
Dafür ist die Anleitung oben angepasst und die angehängten Binaries natürlich geändert:
https://qelectrotech.org/forum/viewtopi … 797#p21797

Viel Spaß mit der Kommandozeile und dem Programm!

Kellermorph wrote:

Die Vorgehensweise ist nur so ziemlich die selbe, (...).

... im Vergleich zu welcher anderen Vorgehensweise?

Kellermorph wrote:

Irgendetwas scheint da halt noch im argen zu sein.

Ja: Deine Vorgehensweise!
Man muss Regeln befolgen, damit etwas wie geplant funktioniert!

Kellermorph wrote:

Ich mache das etwas anders.

Du merkst selber, daß das so wie Du es machst, NICHT funktioniert?!?

Kellermorph wrote:

Ich bin absolut kein Freund vom Terminal.

Dann ist Dir mit Kommandozeilen-Tools nicht zu helfen...!

Ist die Datei "QET_Klemmenplan" ausführbar?
Der Befehl "ls -l QET_Klemmenplan" sollte sowas ausgeben:

-rwxrwxr-x 1 ich ich 422216 27. Jun 18:35 QET_Klemmenplan

Falls nicht:

chmod 777 QET_Klemmenplan

Wenn das Programm nicht "im Pfad" liegt, sondern im aktuellen Verzeichnis, dann muss dem Aufruf ein "./" vorangestellt werden (aber das sind alles Linux-Basics, die ich hier eigentlich als "bekannt" voraussetzen möchte!):

./QET_Klemmenplan -l Schaltplan.qet > Klemmen.txt

Die Dateinamen für Schaltplan und die Ausgabedatei können natürlich variieren.

Welche Ausgabe erwartest Du, wenn die Ausgabe in die Datei "Klemmen.txt" umgeleitet wurde?

Bei demselben Aufruf erhalte ich eine "Klemmen.txt" mit etwa 57kB Inhalt. (vgl Anhang)

Es erfolgt KEINE unnötige Ausgabe auf der Konsole!
Wenn das Programm bei dem gezeigten Aufruf erfolgreich durchläuft, kommt einfach nur das Prompt wieder und die Datei ist mit dem gewünschten Inhalt gefüllt!

Es soll auch noch Leute geben, die das kommerzielle OS benutzen...

Habe meine Programmierübung mal fortgeführt und nun auch Binaries erzeugt, die ich hier anhänge.

Eine kleine Anleitung gibt's dazu auch:

"QET_Klemmenplan" erstellt aus den Klemmen (Terminals) in QElectroTech - Schaltplan-Dateien (*.qet) eine Tabelle pro Klemmleiste im HTML-Format.
Die Ausgabe des Programms kann anschließend mit Hilfe eines Texteditors (Notepad++, Mousepad, Kate, etc.) und dem QET-internen Quelltexteditor in ein Textfeld eingefügt und weiter bearbeitet werden.

allgemeiner Aufruf auf der Kommandozeile mit Ausgabe auf stdout:

QET_Klemmenplan Schaltplan.qet

Eine Ausgabe-Umleitung in eine Datei funktioniert selbstverständlich auch: So kann die Ausgabe mit einem Editor noch angepasst werden, falls nötig:

QET_Klemmenplan Schaltplan.qet > Klemmen.txt

Hier die vollständige Liste der verfügbaren Optionen:

usage:
"QET_Klemmenplan"  [options]  FILENAME

   -i | --stdin     input-data is read from stdin, a given
                    filename is ignored                   
   -f FILENAME      or                                    
   --file FILENAME  the file that will be used            
   -c | --comment   add comment-column to table           
   -l | --label     only add terminals with label         
   -h | --help      show this help                        

Das Einfügen in den Schaltplan von QElectroTech geht wie folgt:

  • Im Schaltplaneditor von QElectroTech ein Textfeld anlegen.

  • Textfeld markieren und "Fortgeschrittener Editor" aufrufen.

  • TAB "Quelltext" öffnen, kompletten Inhalt auswählen <Strg>+A und löschen!

  • Datei "Klemmen.txt" mit externem Texteditor öffnen, den kompletten Inhalt markieren <Strg>+A und in die Zwischenablage kopieren <Strg>+C

  • zum Quelltexteditor von QET zurückwechseln und den Inhalt der Zwischenablage einfügen <Strg>+V

  • Nach Schließen des Dialogs mit "OK" erscheint im Textfeld eine Tabelle mit den Klemmleisten.


Hoffe, dass das Programm auch für andere hilfreich ist!
Anmerkungen (gerne positive! nomicons/smile) und Fragen dazu können gerne hier hinterlassen werden.

Please search the forum for the keyword "overlap"!
You will find the solution!

Ich will hier nemandem auf den Schlips treten ... darum geht es nicht!

Die Sache is nur die:
Der Haupt-Entwickler Joshua fällt leider für eine noch unbestimmte Zeit aus!
Er hat noch viele Ideen, QET strukturierter aufzubauen und da sollten wir ihm nicht in die Quere kommen!

Trotzdem versuche ich, so gut es geht, mich einzuarbeiten (Qt ist schon ziemlich "speziell" und das Projekt ziemlich groß!) und ein paar Dinge auszumerzen.
Die Einführung der eingebetteten Schriften gehörte zum Beispiel dazu.

In den Klemmen-Manager sollten wir nicht reingrätschen:
Der funktioniert zwar schon ziemlich gut, ist aber noch nicht ganz fertig.
Deswegen das Erstellen einer Klemmenliste vorerst mit externem Tool.

Im Moment bin ich dabei, eine schöne Ausgabe vorzubereiten, damit das auch "gefällig" aussieht.
Es wird wie bei acolomb als HTML-Code in den Quelltext-Editor eines Textfeldes eingefügt und das Ergebnis kann dann in QET problemlos nachbearbeitet werden.
Ein Beispiel hängt als Screenshot an.

Was frag' ich auch, was ihr wollt... nomicons/sad

Kellermorph wrote:

Wenn ich mein Programm ganz fertig habe, (...) und dann auf c++ anpassen?

Nicht mit mir!
Ich werde mich bestimmt nicht in generierten Python-Krempel einarbeiten und das dann auf C++ umschreiben!

stefan.helmert wrote:

Also, es würde eine Tabelle aller Betriebmittel rauskommen.

Auch: nein!
Gefragt war nach einer Liste für Klemleisten!
Allein bei Brückern sind wir wieder beim Kleimmleisten-Manager von Joshua: Woanders sind die Brücken nicht definiert!
Wenn es nix zum Auslesen gibt, kann man keine Informationen herzaubern!

Also könnte als "Übergangs-Tool" sowas herauskommen, was acolomb bereits beschrieben bzw. angefangen hat:
Ein Freitext-Feld mit den Informationen, die im Moment nicht vom Klemmleisten-Manager geliefert werden.

Und beim automatischen Herausfinden von "Quelle" und "Ziel" einer Verbindung sind wir wieder an dem Punkt, den ich in einen anderen Post bereits ansatzweise beschrieben habe.
Dazu habe ich mal einen kleinen Plan erstellt und das Problem im Plan beschrieben. Hoffentlich erkennt ihr es!

Zum Thema "Klemmen neu nummerieren":
Das ist etwas, was nicht jeder Anwender braucht oder will! Das sollte eine Funktion sein, die nur auf Anfrage ausgeführt wird und hat erstmal nichts mit der Ausgabe einer Klemmenliste zu tun, finde ich.

Zum Thema "Abzweige", "Verbinder", "Splices", "Sprünge", etc.:
Aus meiner Sicht: Eine Pest!!!
Die sind als Bauteil verfügbar und als Klemmen definiert, sind aber nur für die grafische Darstellung in der Zeichnung nutzbar!
Es sind keine realen Bauteile, die auch das Erstellen eines Kabelplans total unmöglich machen: Wie soll man automatisch unterscheiden, ob das eine reale Klemme ist, oder einfach nur vergessen wurde, ein BMK zu vergeben?
Unter anderem deswegen und wegen der Möglichkeit mehr als einen Leiter an Verweis-Elementen anzubinden, habe ich die Software-Erstellung für einen Kabelplan (vorerst) verworfen: Man bekommt nicht zuverlässig heraus, von wo nach wo ein Draht gezogen werden kann, wenn im Schaltplan z.B. an einem Verweis mehr als ein Leiter angebunden ist und der Ziel-Verweis auch mit mehr als einem Leiter verbunden ist.
Das sollte meiner Meinung nach von QET unterbunden werden, dass dort mehr als ein Leiter angebunden werden kann! Aber das ist ein anderes Thema und Zukunftsmusik...

Abzweige, Splices und Sprünge sollten automatisch von QET erstellt werden und nur grafische Elemente (nicht im Sinne von "eingefügtes Bauteil"!) sein! Aber auch das ist Zukunftsmusik...!

Zurück zum Thema Klemmenliste:
Welche Informationen brauchen wir für die Liste?
Und können wir (vorerst) mit wenig manueller Nacharbeit leben?
Dann würde ich eine html-Tabelle aus den vorhandenen Klemmen erstellen, die dann manuell in ein Textfeld eingefügt werden kann. (vgl. Ansatz von acolomb)

Kellermorph wrote:

Ich habe in meinen Zusatzfunktionen die Funktion von Klemmen durchnummerieren drin.

???
Die Klemmen werden doch vom Benutzer oder einer automatischen Regel innerhalb von QET durchnummeriert.
Erstellst / ersetzt Du das Label (BMK) damit?
Nach welchem Schema nummerierst Du die Klemmen?
Eine laufende Nummer kann ich auch leicht hinzufügen, wenn es das sein sollte...

Mit welchen Programmversionen arbeitet ihr?
Diese Info ist für das Nachstellen und Beheben eines Fehlers essentiell!

Und auch wichtig:
Was muss man tun, um das Fehlerbild nachzustellen?
(Welche Elemente? Wie verbunden? Wie verknüpft? etc. pp.)

@stefan.helmert:
Ich weiß nicht, was Du als Ausgabe errwartest, stefan!
Das liefert mein Programm mit Deiner Datei:

Label | Position | Type | LED | Function | Function | Text | Tension/Protocol
-X1:22 | 1-E5 | generic | 0 | generic |  | -W1 | 
-X1:23 | 1-E12 | generic | 0 | generic |  | -W1 | 

Wie ihr seht, ist inzwischen auch die Position als Folio-/Zeile/Spalte enthalten.
Das wird ohne weiteres zutun als gültige Tabelle von LibreOffice Calc geöffnet, wenn es als *.csv gespeichert ist!

@Kellermorph:
In der qet-Datei liegen die Klemmen unabhängig von der im Programm eingestellten Sprache.
Deswegen sollte esauch für ein solches Tool irrelevant sein, welche Sprache eingestellt ist,..
Das muss jedenfalls das Ziel sein und so bin ich an die Aufgabe rangegangen.

Wir sollten uns nicht darüber streiten, an welcher Position welche Information einer Klemme stehen soll:
Das kann jeder für sich entscheiden, indem er seine Klemmen selber zeichnet und die Texte dort positioniert, wo er will!

Ich möchte lieber auf die Ausgabe einer Klemmenliste zurückkommen, um die es hier ursprünglich ging.

Das kann ja wohl nicht wahr sein:
Da machen mehrere Leute, die auch noch dieselbe Sprache sprechen, unabhängig voneinander Stand-Alone-Tools für die Erstellung von Klemmenlisten, die dann (mehr oder weniger) aufwendig wieder in QET importiert werden.
Sollte es nicht Ziel sein, das alles direkt in QET zu integrieren?
Mit dem QET_ElementScaler hat das ja auch ziemlich gut geklappt...!

Was haltet ihr davon, wenn wir drei (vier) das nun "in Angriff" nehmen und versuchen, das Erstellen einer Klemmenliste in QET einzubauen?

Programmiersprache in QElectroTech ist C++ mit Qt als GUI-Toolkit. Also sollten wir (trotz eurer Anfänge mit Python) auch C++ wählen! Da kommt es mir sehr entgegen, dass in QET_ElementScaler bereits das komplette "drumherum" für das Einlesen und Verarbeiten von XML vorhanden ist!

Das habe ich als Basis genommen, um ein einfaches Tool zu schreiben, das aus der qet-Datei alle Klemmen extrahiert, die Klemmeneigenschaften hinzufügt und die Verknüpfung zum jeweiligen Folio herstellt. Die Position auf dem Folio ist grundsätzlich auch schon verfügbar, aber noch nicht passend aufbereitet. Zusätzlich dazu stehen auch die Funktionstexte des Leiters (function, text, tension/protocol) an der Klemme zur Verfügung.

Zur Zeit sieht eine Beispiel-Ausgabe so aus:

Label | Folio | Type | LED | Function | Function | Text | Tension/Protocol
-X0:PE | 3 | ground | 0 | generic | PE | PE | PE
-X1:1 | 4 | generic | 0 | generic | CAN High | CAN_H | CAN_H
-X1:2 | 4 | generic | 0 | generic | CAN Low | CAN_L | CAN_L
-X1:3 | 4 | generic | 0 | generic | CAN Ground | CAN_GND | CAN_GND
-X1:4 | 4 | generic | 0 | generic | 24V | 24V | 24V
-X1:5 | 4 | generic | 0 | generic | 0V | 0V | 0V
-X2:1 | 7 | generic | 0 | generic |  |  | 
-X2:2 | 7 | generic | 0 | generic |  |  | 
-X2:3 | 7 | generic | 0 | generic |  |  | 
-X2:4 | 7 | generic | 0 | generic |  |  | 
-X2:5 | 7 | generic | 0 | generic |  |  | 
-X2:6 | 7 | generic | 0 | generic |  |  | 

Die nächste Aufgabe besteht nun darin, das entsprechend "schön" auszugeben!
Die Variante von acolomb mit dem Einbetten in einen Freitext gefällt mir dabei schon ganz gut! Das ist für den Normalbenutzer recht einfach mit Bordmitteln des Betriebssystems zu erledigen!

In einem weiteren Schritt muss das in QET integriert werden, damit wir von den Stand-Alone-Tools wegkommen und alles "geschmeidig" innerhalb der GUI von QElectroTech erledigt werden kann!

Das ist so zur Zeit (noch) nicht implementiert,
Die Idee ist aber nicht schlecht und kann vielleicht im Zuge des Klemmleisten-Managers dazukommen. Auch wenn die Tabelle grundsätzlich aus dem Klemmleisten-Manager herauskommt, müssten die Zellen aber auch bearbeitbar sein, oder ist der Funktionstext das was dem Leiter zugeordnet wurde?
Das Thema sollten wir aber Joshua überlassen, der den  Klemmleisten-Manager implementiert, aber zur Zeit wegen privater Themen wenig zu QET beitragen kann.

Hello Michael,

as far as I can see: QElectroTech does not use an authentication service.
The term “Kerberos” cannot be found in the source code and an “88” (Kerberos-Port) can only be found in some color definitions and positions and sizes of the UI.
It looks to me like you should ask your OS-manufacturer what they are trying to do ...

I don't see any particular reason to draw your diagram exactly like that in this example: Is there one?
The attached drawing could just as well be drawn on two folios in horizontal orientation.
However, in QET there is no way to continue the row or column numbering over several folios across the entire circuit diagram.

Ja, stimmt!

Es ist schon ein starkes Stück, daß die Leute, die Dir eine kostenlose Software zur Verfügung stellen, nicht auch noch Deine Pläne zeichnen!

Oh Mann ... Leute gibt's ...!

You ask users and developers of QElectroTech, what software to use for schematics of a control-panel.

What answer do you expect?

QElectroTech of course!

21

(7 replies, posted in Code)

That's fine with me, as I see that the font-files don't change very often!

Fonts to use on all systems are available in QET:
https://qelectrotech.org/forum/viewtopi … 682#p21682

Fonts to use on all systems are available in QET:
https://qelectrotech.org/forum/viewtopi … 682#p21682

We finally did it!  nomicons/smile
The fonts are available in 0.100-dev:
Forum-Post  /  Download at QET-Homepage

25

(7 replies, posted in Code)

Hello everybody!

Thanks to elevatormind for his initial work on including fonts and Laurent (scorpio810) for packaging the binaries we now have a QElectroTech - Version in 0.100-dev with some included fonts:

  • Liberation Mono

  • Liberation Sans

  • Liberation Serif

  • osifont

No effort is required from the user to be able to use the fonts:
The fonts are available in QElectroTech with the installation of QElectroTech!
Of course, all other fonts of the operating system used can still be used in your elements and diagrams!
However, if you think about exchanging of the resulting work between different computers and/or systems, we recommend limiting yourself to the included fonts!

In this context, the default font in QET was set to Liberation Sans and all existing elements were revised so that Liberation fonts are now used everywhere!

With writing these lines, I noticed, that "osifont.ttf" was updated upstream.
This is by no means a problem for users, but it does lead to a question for Laurent:
(How) can we link "fonts/osifont.ttf" and "fonts/osifont-italic.ttf" to the original versions at github?
We already link pugixml and SingleApplication to their github-repos, so it may be possible to link two single files to their position in github-subdirs?
We don't need the whole directory: That would be way too much!
The two ttf-files would be enough: osifont.ttf and osifont-italic.ttf