plc-user wrote:

Absehbar wird daran aber erstmal nix geändert: Habe (leider) andere Sachen zu tun...

Das stimmt dann doch nicht nomicons/wink:
Habe das Programm ein wenig erweitert, um die ausgegebene Tabelle soweit wie möglich anpassen zu können!
Die vollständige Beschreibung ist im anderen Post geändert und sowieso im github-repository verfügbar.
Wie bislang sind die Brücker in der Tabelle (vgl. Anhang) nachträglich per Hand eingetragen.

@achim:

Ich möchte hier nur meine Beobachtung und eine Vermutung kundtun.
Vielleicht hast Du ja dasselbe festgestellt und bist dem "auf der Spur"...

Beim Kopieren von dynamischen Texten tritt der gleiche Effekt auf, den wir auch bei der nachträglichen Ausrichtung von Texten sehen:
Qt-intern wird die Text-Position unabhängig von der Ausrichtung des (dynamischen) Textes immer an der sogenannten "Bounding-Box" links oben verwendet und die Information "Ausrichtung" wird intern nicht weiter verwendet.
Deswegen ist es auch nicht möglich, nachträglich die Ausrichtung von Texten zu ändern!

Dieser Effekt betrifft selbstverständlich auch z.B. die Verweis-Position von Querverweisen.
Wird der Querverweis mit einem Gegenstück verbunden und der Positionstext eingetragen, verändert sich intern die Position des Textes! Wird dieser Querverweis dann kopiert und wieder eingefügt, steht die Textposition auf dem Wert, als ob der Text mitkopiert wurde ... wird er aber nicht!
Also stimmt die Textposition bei dem eingefügten Teil nicht mehr.

Nachtrag:
Anhang vergessen, mit Beispiel für den beschriebenen Effekt.

Moin Marcel,
glaubst du ernsthaft, dass sich jemand zurückhalten würde, um eine Lösung zu veröffentlichen?!?
Dass es blöd ist, um einen Fehler herum arbeiten zu müssen, weiß ich auch!
Achim arbeitet (in seiner Freizeit!) an einer Lösung und da sollten wir ihn nicht bedrängen!

acolomb wrote:

Wunderbar, vielen Dank!

Bitteschön! nomicons/smile

Gib' gerne mal Bescheid, was Du damit anstellst!
Bin ja neugierig, wo meine Sachen Einzug finden!

Absehbar wird daran aber erstmal nix geändert: Habe (leider) andere Sachen zu tun...

acolomb wrote:

Wäre es zu viel verlangt, den Quellcode auf GitHub oder ähnlich bereitzustellen?

Der Quellcode zum Kommandozeilen-Tool QET_Klemmenplan liegt nun in meinen github-repository:
https://github.com/plc-user/QET_Klemmenplan

Das Compilieren sollte keine besondere Herausforderung für euch sein:
Es liegt die Code::Blocks - Projekt-Datei bei und zusätzlich Shell-Skript und Batch-Datei zum Compilieren auf der Kommandozeile!

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

UPDATE 07.07.2025
Binary hier entfernt: Eine aktualisierte Version liegt auf dem github-repository.

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         
   -n | --number    add column with consecutive number
   --NoJumpers      suppress jumper-columns
   --NoFunction     suppress function-column
   --NoText         suppress text-column
   --NoProtocol     suppress protocol-column
   -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.

Anmerkung:
Damit QET_Klemmenplan die Leitereigenschaften "Function", "Text" und "Protocol" den Klemmen zuordnen kann, müssen die verwendeten Elemente mit einer QET-Version erstellt bzw. bearbeitet sein, die den Anschlüssen UUIDs zugewiesen hat! Dies ist mit aktuellen QET 0.100-dev - Versionen und den Elementen der offiziellen Sammlung der Fall.

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


UPDATE 07.07.2025
Binary hier entfernt: Eine aktualisierte Version liegt auf dem github-repository.

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!