Es gibt doch bestimmt einen Weg Elemente zu spieglen?
Spiegeln geht im Moment nur im Element-Editor mit dem Shortcut <M>
Du brauchst also mehrere Elemente.
You are not logged in. Please login or register.
QElectroTech → Posts by plc-user
Es gibt doch bestimmt einen Weg Elemente zu spieglen?
Spiegeln geht im Moment nur im Element-Editor mit dem Shortcut <M>
Du brauchst also mehrere Elemente.
English is not my native language, too, but French would be even worse!
Ich würde auch lieber auf Deutsch antworten, aber das verstehen hier auch nur wenige...
So we stick to English! (I guess, you know how to use online-translators?)
As I wrote in the first few words in first answer:
It is not QElectroTech that is the problem,...
To be neutral:
It's the Operating-System!
The one you use, changes standard-fonts from version to version, from country to country, from...!
Install the same font you used on the other system and keep your fingers crossed, that this is the solution!
On the other hand, you can use a text-editor to change the font and font-size in the qet-file as the other user suggested in the thread I linked above.
Wenn Du gerade frisch mit QET angefangen bist, empfehle ich auf jeden Fall die 0.10-dev-Version!
Die 0.9 ist inzwischen ein wenig ...
In der 0.10-dev ist seit kurzem die Rotier-Funktion im Element-Editor so überarbeitet, dass alle Teil-Elemente um den Nullpunkt rotiert bzw. gespiegelt werden!
Also kein Kleinholz mehr beim Rotieren!
Ein Grund mehr, Elemente rund um den Nullpunkt zu konstruieren.
(Hilft auch später beim Platzieren im Schaltplan!)
Elemente kannst Du im Element-Baum per Drag-and-Drop zwischen den Sammlungen hin- und her-kopieren!
Die Elemente in der Firmen- oder Benutzer-Sammlung kannst Du per Doppelklick editieren.
Von wo willst Du Elemente importieren?
Ein Import aus anderen Formaten in den Element-Editor ist zur Zeit nur für DXF vorgesehen.
So in der Form nicht.
Du kannst aber auch im Schaltplaneditor Rechtecke in verschiedenen Farben und mit verschiedenen Füllmustern einfügen, um sowas zu kennzeichnen.
This must be the 0.10-dev - version in which we have introduced a new function so that dynamic texts of the elements are not accidentally moved when the element as a whole shall be moved.
Since then, the dynamic texts of the elements are only moved if the Shift key is pressed at the same time!
Remark:
You should also replace "your" language-file, for the case, that new texts are introduced for example in config-page.
Toll gefallen tut mir das nicht, mich als Anwender einer CAD-Software mit SQL-Abfragen auskennen zu müssen, um ein Inhaltsverzeichnis oder eine Stückliste zu generieren...
Habe im Moment nur keine Idee, wie das Nutzerfreundlicher in QET eingebaut werden kann.
Auch, wenn Du den Text als Link markierst und den Text als Ziel-Adresse definieren kannst:
Das Ziel muss auch wissen, daß es Ziel ist, soweit ich PDFs richtig verstanden habe!
Bei HTML und LaTeX ist es jedenfalls auch so, daß es eine Stelle gibt, die den Link enthält und ein Sprungziel, wohin verlinkt ist.
Ergänzung:
Wenn ein Verweis auf eine andere Seite im Schaltplan geht, was meist die Regel ist, müsste das Dokument also (mindestens) zweimal komplett durch alle Seiten durchgegangen werden, um alle Verweise und Sprung-Ziele einzufügen.
Wie ich das sehe, ist diese Stelle beim Ausdruck im Ablauf zu spät, weil hier jede Seite nur einmal verarbeitet wird.
Es müßte also eine Vorverarbeitung mit zwei Durchgängen eingefügt werden, wenn PDF als Ausgabe gewählt wurde.
Bevor Du Dir an den XRef-Texten einen Wolf suchst...
Schau' Dir mal eine qet-Datei im Texteditor an:
Die Verlinkungen hängen nicht am Text, sondern an separaten Tags "link_uuid" der Referenz der Referenz-Elemente.
Einen Ausschnitt gibt's im Anhang.
Beide Varianten können nicht funktionieren, weil:
/home/ich/Projekte/c_c++/QET/sources/print/projectprintwindow.cpp:720: Fehler: ‘class DiagramTextItem’ has no member named ‘isCrossReference’
../../sources/print/projectprintwindow.cpp: In member function ‘void ProjectPrintWindow::addPdfLinks(QPainter*, Diagram*)’:
../../sources/print/projectprintwindow.cpp:720:39: error: ‘class DiagramTextItem’ has no member named ‘isCrossReference’
720 | if (textItem->isCrossReference()) {
| ^~~~~~~~~~~~~~~~
Vielleicht solltest Du doch mal versuchen, selber zu kompilieren:
Es macht nur begrenzt Spaß, für andere einen Code zu compilieren, der von einer "Intelligenz" entworfen wurde, die die Rahmenbedingungen von QET nicht zu kennen scheint!
Die Funktion wird deshalb nicht aufgerufen, weil sie in der if (fit_page) nur im else-Zweig aufgerufen wird, aber die if-Bedingung (fit_page) erfüllt ist!
Habe auch mal die Funktion "void ProjectPrintWindow::addPdfLinks" geleert und nur eine qInfo()-Ausgabe eingefügt.
Die Funktion wird nicht aufgerufen!
Nicht beim Ausdruck in PDF und auch nicht beim PDF-Export.
Laß uns zu Deutsch wechseln ... liegt uns beiden wahrscheinlich besser!
Die Warnungen habe ich behoben.
Der Fehler ist immer noch drin!
Tried the code with Debian GNU/Linux stable and Qt 5.15.8
There was a Warning about deprecated calls (fixed that) and an Errror:
(...)/QET/sources/print/projectprintwindow.cpp:798: Fehler: cannot ‘dynamic_cast’ ‘item’ (of type ‘class QGraphicsItem*’) to type ‘class DiagramTextItem*’ (target is not pointer or reference to complete type)
../../sources/print/projectprintwindow.cpp: In member function ‘void ProjectPrintWindow::addPdfLinks(QPainter*, Diagram*)’:
../../sources/print/projectprintwindow.cpp:798:29: error: cannot ‘dynamic_cast’ ‘item’ (of type ‘class QGraphicsItem*’) to type ‘class DiagramTextItem*’ (target is not pointer or reference to complete type)
798 | if (auto textItem = dynamic_cast<DiagramTextItem *>(item)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
removed the double #include "projectprintwindow.h", too.
Hallo Achim,
auch weil wir gerade heute das Thema *-Verzeichnis hatten...
Insgesamt haben wir ähnliche Lösungsansätze.
Deine Variante hat nur einem "Haken": Jeder einzelne "Kontakt" taucht separat in der BOM auf. Siehe Anhang!
Eine Kombination aus beiden wäre es wahrscheinlich!
@tigerbeard:
Gib' doch mal Bescheid, für welche Lösung Du Dich entschieden hast!
Vielleicht ist Dir ja noch was viel Schlaueres eingefallen!
Moin!
Das Inhaltsverzeichnis und auch das für die Betriebsmittel werden dynamisch durch SQL-Abfragen der Projekt-internen Datenbank erzeugt. Daher wirst Du nicht umhin kommen, dich damit zu beschäftigen.
Die interne DB ist eine SQLite-Datenbank und auf deren Seite gibt es auch Informationen zur formatierten Ausgabe mit "printf":
https://www.sqlite.org/printf.html
Dazu gab es auch schon vereinzelt Posts in diesem Forum, aber eine gute Zusammenfassung oder gar Anleitung steht noch aus, fürchte ich...
Im Anhang habe ich mal ein Beispiel angefügt, mit dieser SQL-Abfrage:
SELECT printf("%10s", folio) Folio, printf("%-170s", title) Beschreibung, indexrev, printf("%-50s", author) Bearbeiter, date FROM project_summary_view
Vielleicht hilft Dir das schon weiter für die Erstellung eines schönen Inhaltsverzeichnis und einer noch besseren Anleitung?
Hier die zugehörige qet-Datei, aus der Du die Elemente in deine Benutzersammung ziehen kannst.
Bei der Gestaltung der Master- bzw. Slave-Elemente bist du ziemlich frei!
Habe mal fix einen Master und einen Slave erstellt, die Deiner Vorstellung schon ziemlich nahe kommen könnten:
Am Master definiert man das Betriebsmittelkennzeichen, das von den Slaves übernommen wird.
Damit die Zeichnug dann nicht mit -zig "-X27" überfrachtet wird, weil bei es an jedem Slave steht:
Kein Dynamisches Textfeld mit dem BMK in die Slave-Elemente einfügen! Siehe Beispiel.
Ansonsten bist Du wirklich sehr frei in der Gestaltung!
Ein Rechteck kannst Du dann im Schaltplaneditor separat drüber ziehen...
... but I'm repeating myself:
https://qelectrotech.org/forum/viewtopi … 443#p19443
Echte dynamische Elemente suchst Du hier leider (noch) vergebens!
Alternativ kämen vielleicht Master-Slave-Lösungen in Frage?
Du kannst jedenfalls eine (unbegrenzte?) Zahl an Slave-Elementen an einen Master hängen.
Das wäre auch mein Vorschlag für sehr umfangreiche Geräte:
Bevor ich ein sehr komplexes Element mit mehreren -zig I/O erstelle, mache ich lieber ein Master-Element (z.B. den Teil mit der Einspeisung oder der CPU) und hänge daran die Funktionsgruppen als Slave-Elemente an.
PS:
Ein aussagekräftiger Betreff passend zum Thema wäre besser:
Begeisterte Nutzer haben wir hier viele!
It is not QElectroTech that is the problem, but the fonts you have installed on your systems and which you used for the texts!
QElectroTech only shows, that the font you chose on one system to use for texts is not available on the system, you opened the QET-Project later!
Example:
"Sans Serif" or "ms_shell_dlg" are just placeholders for the real font the system uses. If you want, you can set a Greek font as replacement for them in system-settings.
When you want, that texts look alike on all systems you use:
Install and use the same font (*.ttf) everywhere!
Deleted double-post in English Forum!
I use the versions coming with Debian GNU/Linux unstable to compile for Qt6: 6.8.2
I see that your knowledge of Qt goes much further than mine! That's why I have no problem with you staying on the subject of “SingleApplication”: You've already read up on it in docs and sources...
As I learned to know you so far, I guess you'll find a solution for the crash, too!
Hello everybody!
Did someone notice this:
While trying elevatorsmind's "Autosave" I killed the execution of QET and it cannot be started again!
This only is the case with the Qt6-Build and has nothing to do with "Autosave"!
It seems that singleapplication prevents a new re-start, because something is left behind, when killed!
I already try to find a solution (and it seems, I have found!), but before I waste too much time: Did someone notice this effect, too?
@elevatormind:
I haven't paid much attention to the stalefiles so far, but now that “we” want to organize them completely ourselves as “ Autosave”, I tried out your source code directly and am quite impressed!
Only two comments on the source code:
All other directory names are written in lower case.
If “QETApp::dataDir()” were also used here as the base directory, we would still have only one place in the source code where these base directories (dataDir, configDir, pictureDir...) are managed. The line lengths would also be much shorter
(...)
#include "qetapp.h"
(...)
setFileTemplate(QETApp::dataDir() + "/autosave/qet_autosave_XXXXXX");
(...)
auto asf_dir = QDir(QETApp::dataDir() + "/autosave");
(...)
@Re-searcher:
You still did not explain, what you think does "not work" with bigger grid-points.
You need to explain, what you expect to see with bigger points!
QElectroTech → Posts by plc-user
Powered by PunBB, supported by Informer Technologies, Inc.
Generated in 0.046 seconds (40% PHP - 60% DB) with 6 queries