1

(4 replies, posted in Scripts)

Ich habe meine Zusatzfunktionen geupdated.
funktionelle Updates:
1. Änderung: Ich habe den Verdrahtungsplan von hier https://qelectrotech.org/forum/viewtopic.php?id=3096 direkt integriert.

2. Änderung: Die Kabelliste findet als Ziel nun auch Slave-Elemente.

optische Updates:
Klemmenplan und Kabelliste sehen nun optisch ansprechender aus.
Bilder sind angehangen.

Für die Überschrift in der Spalte oben, muss in den Projekteigenschaften unter Benutzer-Eigenschaften die Rubrik projekt angelegt sein.
Für den Klemmenplan habe ich die Variablen Bestellnummer und Lieferant benutzt um diese automatisiert einzutragen.

Eine Beispielseite ist angehangen.

English:
I have updated my additional functions.
Functional updates:
1st change: I have directly integrated the wiring diagram from here https://qelectrotech.org/forum/viewtopic.php?id=3096.

2. Change: The cable list now also finds slave elements as targets.

Visual updates:
The terminal diagram and cable list now look more visually appealing.
Images are attached.

For the heading in the column at the top, the project category must be created in the project properties under user properties.
For the terminal diagram, I used the variables Order Number and Supplier to enter these automatically.

A sample page is attached.

Translated with DeepL.com (free version)

2

(4 replies, posted in Scripts)

Xander wrote:

Hallo Kellermorph,

ich habe die scripte ausprobiert, sie sollten zusammengefasst werden.

Auserdem musste ich feststellen, das das Einfügen der Seite nur funktioniert, wenn der gleiche Zeichnungskopf eingestellt ist.
Andernfalls wurde meine Test-Kopie total zerschossen!

Bitte beachten, wer das ausprobieren will.

Das zusammenfassen sollte kein Problem sein. Allerdings arbeite ich generell nicht mehr mit dem Programm. Ich versuche gerade einen anderen Weg aus.

Du meinst, dass der gleiche Zeichnungskopf der beim erstellen des Makros im Projekt eingestellt war und wenn dann in dem Projekt ein anderer eingestellt ist?
Das sollte generell auch behebar sein.

3

(4 replies, posted in Scripts)

Mahlzeit.
Entschuldige, ich habe deine Nachricht bisher übersehen.
Ich habe mir schon ein kleines Pythonskript geschrieben, dass ich zum extrahieren verwende. So kann man eindeutig komfortabler die Seiten extrahieren. Ist im Anhang.

Das mit dem generellen Config ist eine gute Idee. Dann muss man dies nicht immer neu machen.
Ich habe im Moment noch einiges anderes zu machen.
Wenn ich dafür mal Zeit überhabe, kann ich das mal machen.

4

(0 replies, posted in Scripts)

Ich habe ein Python-Skript geschrieben, welches aus der .qet Datei die Verbindung, den Anschluss und deren Eigenschaften extrahiert.
Dies funktioniert auch Seiten übergreifend.
Man muss hier nur darauf achten, dass die Verbindungen so gezogen sind, wie sie nachher im Schaltschrank angeschlossen werden.
Als Beispiel:
Man kommt von einem Querverweis. Dieser geht auf das erste Bauteil. Von dem ersten Bauteil geht man dann zum zweiten Bauteil. Vom zweiten Bauteil geht man dann zum dritten Bauteil und vom dritten Bauteil zum Querverweis zur nächsten Seite. Dies ist nötig, damit die Verbindungen in die .qet Datei richtig geschrieben werden.

Optional kann man aktivieren, dass man eine CSV als Debugausgabe sowie eine CSV bekommt, die angibt, welche Verbindungen rausgefiltert wurden, da diese als doppelt erkannt wurden.

Die ausgegebene Datei wird an dem Ort, an dem die QET Datei liegt gespeichert.

Sollte der Wunsch bestehen, diese Funktion direkt in QET zu implementieren, kann ich versuchen hieraus eine C++ Datei zu erstellen.

English:
I wrote a Python script that extracts the connection, port, and their properties from the .qet file.
This also works across pages.
You just have to make sure that the connections are drawn the way they will be connected in the control cabinet.
For example:
You come from a cross-reference. This goes to the first component. From the first component, you then go to the second component. From the second component, you then go to the third component and from the third component to the cross-reference to the next page. This is necessary so that the connections are written correctly in the .qet file.

Optionally, you can enable the option to receive a CSV as debug output and a CSV that specifies which connections have been filtered out because they were recognized as duplicates.

The output file is saved in the location where the QET file is located.

If you would like to implement this function directly in QET, I can try to create a C++ file from this.

Translated with DeepL.com (free version)

ah good to know, that left and right helps too. i just moved up and down. Thanks a lot!

Thank you for your reply, but I don't find your solution very appealing visually.
However, I have found a solution.
You have to move the lines up or down a little so that they have the same grid and therefore look identical. Image attached.

Guten Tag zusammen,

ich arbeite gerade an einem Skript für QET.
Hierfür muss ich jeden Leiter so ziehen, wie dieser nachher auch verdrahtet wird.
Allerdings gibt es hier ein Problem. Vorher habe ich das Problem so gelöst, dass ich alle Leitungen von einem Startpunkt aus gezogen habe. So würde aber das Skript nicht funktionieren.
Jetzt möchte ich, vom Querverweis zum 1. Bauteil eine Linie ziehen, dann vom 1. Bauteil zum 2. und vom 2.Bauteil zum dritten.
Im angehängten Bild bin ich also vom Querverweis zu 101P1, von 101P1 zu 101P2 und von 102P2 zu 101P3 gegangen.
Sobald ich die Linien allerdings als gestrichelt oder Strich-Punkt Linie einstelle, wird daraus eine "durchgehende" Linie.
Die Abstände sind hier einfach nicht identisch, dass dort wo vorher eine Lücke war diese von der 2 Linien überdeckt werden und es wie eine durchgehende Linie aussieht.
Gibt es hierfür eine Lösung, außer dass man jede Linie vom Querverweis zum Bauteil zieht? Dann wird das richtige Format beibehalten.

Please post a few Pics of your Problems. Maybe then i could help you.

9

(156 replies, posted in Code)

Do i understand it correctly that the Problem with Wayland

https://qelectrotech.org/forum/viewtopic.php?id=3058

is gone with QT6?

Ich hatte so ein ähnliches Problem. Ich habe es so gelöst, dass ich eine Klemme erstellt habe, welche unten und oben keinen Anschluss haben.
Danach habe ich einfach nur separat als Bauteil ein Anschluss erstellt. Diesen setze ich auf die Klemme. Dadurch kann ich beidseitig alles definieren wie ich will und die Potentiale und Definitionen werden nicht von der jeweiligen anderen Seite beeinflusst.

Die Funktiondeklarierung der Klemmen kann ich dir nicht erklären, da ich bisher damit nicht gearbeitet habe.

11

(1 replies, posted in Elements)

Bei Etagenklemmen wird immer jeder Klemmpunkt als eigene Klemme dargestellt. So hat man z.B. für eine Etagenklemme L/L/PE oder L/N/PE im Schaltplan 3 Klemmen gezeichnet.

Dein Anhang fehlt aber ich habe dir mal was angehangen.
Das Kabel habe ich als eigenes Bauteil erstellt.
Die Klemmen, die du dort siehst sind dann in echt im Schrank 2 Etagenklemmen.
Dies ist einmal eine L/L Etagenklemme und einmal L/L/PE

12

(156 replies, posted in Code)

You're welcome. Merry Christmas to you too.

13

(156 replies, posted in Code)

are u fine with this?

walter wrote:

Gibt es projektbezogene Einstellungen die dieses Verhalten erklären können?

ich habe rein geguckt und erstmal nichts gefunden.

moin Walter,

achim wrote:

in deinem Master-Element ( io_links.elmt ) hat der Label-Text nur die Göße 1,
aber noch viel wichtiger: er ist weiß.

Das habe ich mit Absicht so gebaut, damit dieser in der DDC-Übersicht nicht stört.

Das ist komisch.
Die sind ja ungefähr wie meine Elemente die ich erstellt habe.

Wenn ich meine eigenen rein ziehe, dann funktioniert dies auch bei deiner markierten OK und bei der markierten nicht Ok auch nicht.

Da bin ich jetzt überfragt, ob irgendwas an der Datei an sich kaputt ist. Das ist was ich jetzt vermuten würde.

16

(156 replies, posted in Code)

scorpio810 wrote:

Yes, we can close out the year by tagging version 0.100 since it's been a while, but it bothers me that we're not providing a detailed changelog... like we used to do for older versions.

It's become something of a habit over the last four or five years, you might say, and critics will point out that three years later, nothing has been noted. The fault lies with a lack of time and perhaps rigour on our part... We have experienced very serious health problems affecting Joshua and myself at the same time, which almost put an end to this magnificent community project used daily around the world.


Of course, future versions built with the Qt6 frameworks will have updated QET version numbering in the qet.h file, but I don't yet know how they will be numbered: 0.200 or 0.600, 2026, etc.

Who knows what has changed since version 0.9?
Is there a summary somewhere, and does this only need to be described in detail once?

Puh das übersteigt meine SQL-Kenntnis.

geht's ums Materialverzeichnis?
Da filtere ich auch Sachen raus.

ich mache es so:
Wenn die Materialen nicht rein sollen, schreibe ich unter der Rubrik Bestellnummer "bauseits" (ohne Anführungszeichen).

Mein Standard SQL-Befehl für die Materialliste sieht dann so aus:


WITH nums(n) AS (VALUES (0),(1),(2),(3),(4))
SELECT
  printf('%-8s', COALESCE(Folio, ''))                   AS Seite,
  printf('%-8s', COALESCE(label, ''))                   AS BMK,
  printf('%-20s', COALESCE(manufacturer, ''))           AS Hersteller,
  printf('%-40s',
    COALESCE(
      CASE n
        WHEN 0 THEN designation
        WHEN 1 THEN designation_auxiliary1
        WHEN 2 THEN designation_auxiliary2
        WHEN 3 THEN designation_auxiliary3
        WHEN 4 THEN designation_auxiliary4
      END, ''
    )
  ) AS Artikelnr,
  printf('%-140s',
    COALESCE(
      CASE n
        WHEN 0 THEN description
        WHEN 1 THEN description_auxiliary1
        WHEN 2 THEN description_auxiliary2
        WHEN 3 THEN description_auxiliary3
        WHEN 4 THEN description_auxiliary4
      END, ''
    )
  ) AS Artikelbeschreibung
FROM element_nomenclature_view
CROSS JOIN nums
WHERE (element_type = 'simple' OR element_sub_type IN ('coil','protection'))
  AND label NOT LIKE '%W%'
  AND (manufacturer_reference IS NULL OR manufacturer_reference NOT LIKE '%bauseits%')
  AND (
       n = 0
       OR (n = 1 AND TRIM(COALESCE(designation_auxiliary1, '')) <> '')
       OR (n = 2 AND TRIM(COALESCE(designation_auxiliary2, '')) <> '')
       OR (n = 3 AND TRIM(COALESCE(designation_auxiliary3, '')) <> '')
       OR (n = 4 AND TRIM(COALESCE(designation_auxiliary4, '')) <> '')
  )
ORDER BY CAST(folio AS INTEGER) ASC, label COLLATE NOCASE ASC, n ASC;

Dort ist dieser Abschnitt drin:
  AND (manufacturer_reference IS NULL OR manufacturer_reference NOT LIKE '%bauseits%')

damit wird es rausgefiltert.

Wenn ich mich nicht irre, muss es so aussehen:

AND (label NOT LIKE '%_%')

19

(156 replies, posted in Code)

I have no idea how difficult it is to program this and whether it is even possible, but wouldn't it be possible to automatically create a backup when a .qet file created with qt5 is opened with a qt6 version?

ja ich hatte ihn mir komplett durchgelesen.

Dadurch kam ich darauf, dass es mit dem Folienverweis geht, diese Attribute auszulesen / anzuzeigen.
Ich habe ein Projekt nur gerne sauber. Das heißt auch, dass eine keine offenen Enden mehr gibt. Deshalb setze ich für jeden Folienverweis nachher das Nebenstück neben die Folie um diese zu verbinden. So habe ich nachher in der Übersicht kein offenes Ende mehr.

ja die Elemente habe ich gesehen. Ich habe sie auch probiert allerdings sind diese, meiner Meinung nach, zu mächtig. Ich mag lieber das feine kleine Detail, wie ich es erstellt habe.
Es ist ja nur ein kleiner Hinweis über die Farbe und den Querschnitt und sollte, in meinen Augen, nicht so krass ins Auge stechen.

Nochmal vielen Dank an dich Achim. Dadurch habe ich eine Lösung gefunden.

Ich habe jetzt noch einmal etwas rum gespielt.
Mit den Klemmen geht's wohl nicht,  was auch nachvollziehbar ist.

Jetzt habe ich ein eigenes Bauteil erstellt, welches sich, in meinen Augen, sanfter in die Schaltplanseite integriert. Ich habe dieses mal angefügt.

Damit ich nachher in Übersicht der Folienverweise offene Enden habe, werde ich einfach neben der Schaltplanseite die gegenteile platzieren und verbinden. Ich vermute, dass das die für mich beste Lösung ist.

Ich glaube ganz richtig hast du mich nicht verstanden, habe mich aber, glaube ich, auch etwas doof ausgedrückt.

Die Textformel bzw der Text ist soweit klar.

Das die Folienverweise an sich nur einen Anschluss haben dürfen ist auch logisch. Ich wollte nur testen, einen 2. zu machen um bei der Elipse die der Kollege erstellt hat, links und rechts einen Anschluss zu haben. Dies sieht auf dem Bild in dem Post auch so aus, dass es links und rechts von der Elipse angeschlossen ist.

Das dies nicht ging, habe ich das Bauteil als Klemme definiert. So konnte ich beide Anschlüsse rein bringen.
Aber eine Klemme kann dann nicht auf die Definition für Farbe und Querschnitt von dem Leiter gucken, das ist richtig oder? mir wurde dann nichts angezeigt.

Sonst müsste ich entweder ein Bauteil erstellen, bei dem ich den Querschnitt und die Farbe selbst eintrage oder ich trenne die Elipse auf, damit dies einmal ein ankommender und ein abgehender Folienverweis ist. So habe ich das nachher im Projekt auch sauber, dass eine keine offenen Enden gibt.

Perfekt. Damit kann ich arbeiten. Vielen Dank Achim!

edit:
ist das nur mit einem abgehenden Folienverweis möglich? Wie wurde dort dann die 2. bzw. abgehende Verbindung hergestellt?
Mein Gedanke war, dass ich jetzt mit 2 Anschlüssen arbeite, damit ich direkt beide Verbindungen habe.
Dann kam die Fehlermeldung, dass ein abgehender Folienverweis nur einen Anschluss haben darf.
Wenn ich es als Klemme definiere, dann kommen diese Infos nicht.

Guten Tag zusammen,

gibt es eine Möglichkeit, wenn ich bei einem Leiter die Eigenschaften eintrage wie Funktion, Spannung, Leiterfarbe oder Querschnitt diese im Plan anzuzeigen oder zu exportieren?
Wenn ich auf Leiterbeschriftungen exportieren gehe, kommen dort nur die eingetragen Texte an dem Leiter.

Wow, that would be fantastic. Currently, I always do this with xmlcopyeditor.