You're right Laurent, I should make a sample of these elements and how I use them. Maybe I can extract some folios from my current project at $work which use a Beckhoff PLC and each component is handled this way.

Will try to find some time the next months and post back here.

EDIT: Scratch that, I already did upload an example in 2023:
https://qelectrotech.org/forum/viewtopi … 617#p18617

That label is the cross-reference back to the "master" device, which can be double-clicked to jump there. It is automatically attached to the "label" dynamic text of the element. So you need to be careful where you place that text.  For the master, it will extend to a list of bound slaves, with one folio reference per slave, also showing the slave's "contact type" property symbolically.

As for contributing the elements, sure you can make a pull request to include it in the standard library, if the quality / consistency is acceptable. However, this pattern of master-slave relationships between the physical and logical symbols is not common among existing library elements.  If you have for example mostly circuit breakers, for which the official library symbol already defines an according element type (master / organ of protection), then it would be kind of useful. But imagine someone not wanting to link it, they could not even give your element a label (as that is not independently possible for slaves). So it would limit the utility of the whole element.

To explain concisely what the issue is: The default library elements are mostly of type "simple".  In order to link different symbols together, you need to change on to be of type "master", then any other symbol of type "slave" can be linked to it.  There are different categories (organ of protection, contactor, etc.) for the master, but the slave just has a "contact type" property which influences how the xrefs are displayed on the master.

You can import the element from the library and then edit it in your project, switching to a different type.  Or better save it to your user collection for later re-use.  Note that you need to import (place) it again after making changes in the user collection, but the properties on already placed symbols will only change after the project is closed and re-opened.

I usually do this for most of my parts, using the "physical view" for the master element. But I also create most elements myself, such as PLC components comprised of different logical groups, all linked to a physical view of the component.

I started doing some experiments using the new terminal block functionality as well.  I really like the new workflow and looking forward to making use of it.  So first a big thank you to Joshua and keep up the good work!

But there are some basic conceptual / design issues where I simply don't see how this can be applied to my schematics.

For connections to external equipment, where one terminal block has the outside cabling 1:1 on the bottom row, with connections to internal ports on the top row, I think this works pretty well already.  But beside the numbering / sorting issues here, I think we should consider how the terminal symbol's label is handled / parsed.  I put some terminals on the folio, e.g. "X10:1" to "X10:12".  These need to be labelled on the folio itself, at least once with the block (X10) and each terminal with the number.  So each terminal symbol already has all the info contained, where the block and number are separated by a colon ":".

The way it is shown in the last video link, each terminal only has its number as the label.  But this means that on the folio where it is placed, there is no actual hint on which one it is, as the number could appear on any block (e.g. "X10:1", "X21:1", "X25:1").  In addition, not having the block naming in each terminal's label makes it impossible to automatically process them, like generating overviews (as with my qet_terminal_tables script) from the database.  So I think the traditionally used labels like "X10:1" are the better approach.  I could see the terminal manager to automatically parse the first part (prefix) to move the terminals to the correct group.  Then the label *within* this group should just be the number (suffix).  At that point, sorting would work again as with simple numeric labels.

The second problem I see is that each terminal symbol generates its own entry in the manager.  There is some special handling for multi-level terminals, which is nice.  But what about potential distribution, where you need a central GND or +24V terminal block to connect all the equipment, each device with one wire.  The devices will be shown on different folios.  I'll use both connection points of one terminal (or even 3 or 4 points with the larger ones) in very different places.  So the terminal "X10:1" will be placed twice, on two different folios, with the same label.  What I usually do is to put a "1a" or "1b" text on each, to show which connection point (top or bottom) the wire ends at.  Even worse, with four connection points there will be "1c" and "1d" as well.

In that case, there will be four terminals shown in the terminal block manager, which really all represent the same physical element.  Just that its four connection points are used for wires to independent devices.  How would I handle that, so the generated terminal block drawing has only one column for all four of these connections?  Ideally, it should show the cross-reference (folio number) for each associated symbol, but only one physical "slot".

This is really about the data model used by the terminal manager.  I guess several terminal *symbols* with the same label should be grouped automatically and only result in one generated *physical* terminal.  Properties like terminal kind and function should be synced among the group, unless the entries are assigned to different levels.

@Joshua, what do you think about this?  Are there plans already to handle such cases?  Frankly I don't see how the current data model maps to anything but the most basic schematics with only a handful of terminals.  Failing to sort by numbers is only one symptom of this, because the labels are not "interpreted" in any way.

Hallo mistro, das kannst du entweder erreichen, indem du die Ausgabe als PDF machst und dann entsprechend skalierst. Oder durch ein benutzerdefiniertes Schriftfeld (Titelblock).

EDIT: Sorry, das mit dem Schriftfeld hilft nicht weiter, da der Rahmen nicht darin enthalten ist.

Wunderbar, vielen Dank!

Ich werde es mir bei Gelegenheit anschauen, was aber noch länger dauern könnte. Jedenfalls aber mal abonnieren, was in dem Repository vonstatten geht.

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

Klingt in Summe ziemlich nützlich und ich bin froh, dass hier Bewegung in die Sache kommt. Auch, dass meine Idee mit den HTML-Tabellen Anklang findet. Leider habe ich momentan viel anderes um die Ohren, im privaten Leben und anderen Open-Source-Projekten. Zudem in letzter Zeit kein Projekt, wo ich überhaupt mit QET arbeite.

Ich wünsche euch daher erst mal viel Erfolg. Stehe gern auch für Rückfragen und Meinungen zur Verfügung, aber leider eben nicht zum weiter daran coden.

Vielleicht auch interessant:

https://qelectrotech.org/forum/viewtopic.php?id=2511
bzw.
https://github.com/acolomb/qet_terminal_tables

Funktioniert komplett unabhängig von den anderen Plugins und liest die Informationen direkt aus der Datenbank. Bei Rückfragen dazu gerne melden.

The question was more about the mechanical CAD part I suppose.  In that case, have a look at LibreCAD or FreeCAD.  For some easy cases, SolveSpace might also be convenient.

Should be supported according to this resource from the underlying QT implementation:

https://doc.qt.io/qt-6/richtext-html-subset.html

Have you tried settings the width to 100% on the paragraphs?  You have three distinct paragraphs, which should align wrapped lines centered.  But if each paragraph only contains one line, it will not wrap.  And each paragraph is probably left-aligned within its parent, not even taking the full width into account.

Ein Tutorial weiß ich leider nicht auf die Schnelle, aber wenn es eines gibt, hilft Google bestimmt beim Finden.

Zur Benutzung generell: Die Klemmen müssen bereits im Schaltplan gezeichnet sein. Die entsprechenden Bibliothekssymbole vom Elementtyp "terminal" müssen platziert sein und ein BMK in der Form X00:1 haben. Sprich, eine Bezeichnung des Klemmenblocks und nach dem Doppelpunkt die Nummer der Klemme. Daraus werden dann die Blöcke im qt-terminal-generator erzeugt.

As for the first problem, I don't know unfortunately.  It usually works for me.

The cross reference will show its labels and coordinate when connected to its counterpart.  Try connecting it to another pin as well using a wire on either end, that seems to be needed sometimes.

The HTML support is limited by the Qt toolkit.  You might want to check https://doc.qt.io/qt-5/richtext-html-subset.html for the tags and styling it supports.

Zugschlus wrote:

Ich muss also wirklcih ernsthaft das Element mit einem externen Tool bearbeiten bis es zufällig passt?!?

So ist das mit der vorgefertigten Symbolbibliothek. Manche Teile passen gut zusammen, andere weniger. Es ist ein großes Sammelsurium von unterschiedlichen Nutzern zusammen getragen. Jeder hat dabei etwas andere Vorstellungen und Design-Regeln. Es gibt keinen großen Masterplan, nach dem die Bibliothek aufgebaut ist und auch "sauber" gehalten wird.

Am besten zeichnest du einfach ein eigenes Symbol für die Anwendung. So schön es auch ist, immer auf den Standard zurückzugreifen - egal mit welcher CAE-Lösung erreicht man schnell den Punkt, wo man selbst zeichnen muss. Gewöhn dich lieber an den Gedanken. Zum Glück ist das Symbol ja nicht gerade komplex und damit schnell nachgezeichnet / angepasst.

Hi there,

you didn't actually attach any file.  But I suspect you simply need to edit the "title block" used for your folios.  The defaults contain translatable labels usually.  Could be missing a Portuguese translation there, however.

Kind regards
André

You mean the table with clickable cross-references?  That is inserted automatically as part of the designator text.  You need to include a dynamic text item with the source "Element information" - "Annotation".

Da kannst du wahrscheinlich nur ein eigenes Bauteil erstellen, das nicht vom Typ Klemme ist. Damit verliert es aber auch die Eigenschaft, dass alle angeschlossenen Drähte gemeinsam aktualisiert werden, also eine logische Verbindung der Potenziale in QET erfasst wird.

In einer kommenden Version werden die Felder auch bei Klemmen-Bauteilen verfügbar sein, wenn ich das letztens richtig gelesen habe.

Hallo Fabian,

ich glaube es ist eher so, dass das Feld "+Ort" für Bauteile ausgeblendet wird, deren Typ als "Klemme" definiert ist. Das kommt wohl aus der Philisophie der Schaltplanzeichner, dass Drähte und Klemmen zum Verbrauchsmaterial gehören und der Ort nur für andere Geräte aufgelistet wird. Wäre auch ein Haufen Arbeit, für jedes Klemmensymbol den Ort einzutragen. Stattdessen passiert das dann für die ganze Schaltplanseite.

Hoffe das hilft weiter.

Schöne Grüße
André

20

(10 replies, posted in Import DXF)

Open it in QCAD (or LibreCAD, almost the same) - not in QElectroTech.  Then the instructions apply.

To save this step in the future, teach your Illustrator to not make DXF "blocks" from grouped elements or shapes.

21

(10 replies, posted in Import DXF)

Your sample file seems pretty much empty.  Tried to open it with LibreCAD and Inkscape on Linux.  It shows a circle with a vertical line through it, sometimes also some kind of arc on the right side.  I suppose your Illustrator export is broken.

Sorry die Bilder schaffen mir keine zusätzliche Klarheit. Was genau willst du erreichen? Das ist doch ein Relais und alle Kontakte sind normalerweise völlig unabhängig?

Making it a terminal element, however, has the effect of *ALL* pins having the same potential. I don't think there is a proper way to declare only a subset of pins to be connected.

Hallo Muecke,

wenn du dein modifiziertes Bauteil ein weiteres Mal aus der Bibliothek platzierst, wird es im Projekt angepasst und beim nächsten Öffnen siehst du überall die neue Version.

Das funktioniert allerdings nicht für die Texte. Diese werden für jedes platzierte Bauteil separat gespeichert und nicht mehr aus dem Template Element aktualisiert. Eine Möglichkeit, das zu umgehen, wäre die Texte einer neuen Instanz als Textkonfiguration zu speichern. In den alten Instanzen kann diese dann wieder geladen werden, wobei die Option "alte überschreiben" (oder so ähnlich) aktiv sein sollte. Sofern die Bauteile sich nur in Texten unterscheiden, die über Attribute definiert sind, geht das recht problemlos. Jedenfalls müssen keine Verbindungen neu gezogen werden.

Viel Erfolg und schöne Grüße!
André

Hallo Muecke,

das geht nicht nur dir so. Ich hatte genau dieselben Startschwierigkeiten. Habe mich dann daran gewöhnt, dass es eben nur ein "besserer Bleistift" zum Zeichnen ist, kein Werkzeug zur semantischen Interpretation dessen, was man da zeichnet. Es gibt einige kleine Features in die Richtung, die sind auch ausbaufähig, aber es muss jemand die Zeit aufbringen um das in die Realität umzusetzen. Insbesondere die Anpassung der bestehenden Bibliotheken auf neue Programmfunktionen ist eine schier unendliche Aufgabe.

Ich frage mich, wie es im Vergleich zu anderer Software da aussieht. Ich hatte schon EPLAN-Schaltpläne vorliegen, wo Verweise nicht gestimmt haben (also ein "Label", was woanders hin verbinden soll, aber nirgendwo wieder auftaucht) und Signale auf unterschiedlichen Seiten unterschiedlich benannt waren. Keine Ahnung, ob der Zeichner bloß geschlafen hat, oder oder ob tatsächlich auch der Marktführer da nicht viel mehr als einen Bleistift bietet und eben keine logische Verknüpfung intern, so dass auf Konsistenz automatisch kontrolliert werden kann und die Daten strukturiert ausgewertet werden können. Für Letzteres (Beschriftung für Klemmenpläne) habe ich mir deshalb mein eigenes Skript gebaut und es wird auch fleißig am Klemmengenerator gearbeitet. Beides wurde dir im anderen Topic (https://qelectrotech.org/forum/viewtopi … 779#p18779) auch verlinkt.

Bei KiCAD funktioniert das mit der semantischen Kontrolle schon deutlich besser, da ist das A und O die "Netzliste" um später auch die Platine abzugleichen. Dafür wird man dort z. B. keine Ansichten von Schaltschränken zeichnen, wofür QET als reines "Zeichenprogramm" eben auch taugt.

Die Probleme mit der Bibliothek und eigenen Teilen zeichnen kann ich gut nachvollziehen. Egal bei welchem CAE-Tool, meiner Erfahrung nach muss man sich relativ schnell vom Gedanken verabschieden, alles aus bestehenden Bibs bestreiten zu können. Selbst zeichnen ist an der Tagesordnung. Etwas mehr Standardisierung würde da helfen, beispielsweise Steckverbinder männlich und weiblich mit Polzahl 1 bis 30, am besten automatisch generiert. KiCAD hat da enormen Aufwand in entsprechende Regelwerke und Generatoren gesteckt und deren Standardbibliothek wird laufend aufgeräumt und systematisch erweitert. Das ist aber eine Monsteraufgabe, insofern muss man froh sein, dass überhaupt so viele Nutzer ihre Elemente für QET offen zur Verfügung stellen. Auch wenn es dadurch sehr chaotisch ist im aktuellen Zustand. Letztlich muss jeder seinen eigenen Weg und Stil finden und für sich definieren, inkl. entsprechende Elemente entwerfen.

Ich habe meinen Weg in Bezug auf die Verknüpfung von Elementen z. B. hier beschrieben: https://qelectrotech.org/forum/viewtopic.php?id=2548. Es wäre natürlich toll, wenn solche Workflows standardisiert würden und die Bibliothekselemente dann gleich darauf angepasst. Aber zumindest aktuell ist es eben eher ein Zeichenprogramm mit Schablonen, die Andere dankenswerterweise geteilt haben.

Die Plattform für Fragen und Kontakt zu den Entwicklern ist schon ganz richtig hier das Forum. Ich würde allerdings Posts auf Englisch empfehlen. Die Hauptentwickler sind aus Frankreich, leider reicht mein Französisch aber sehr selten, um den aktuellen Entwicklungen zu folgen. Bevor jeder ständig den Übersetzer anwerfen muss, wäre mein Ansatz, wie in der Softwarewelt üblich, sich auf Englisch zu einigen.

Hoffe das hilft dir weiter und weiterhin gutes Gelingen mit der Einarbeitung!

André