Ich versuche gerade nochmal die Autonummerierung hinzukriegen.
Ich habe meine Bauteilsammlung einmal in dem Standardpfad hinterlegt und es probiert. Dort hat es nicht geklappt. Dann habe ich es, wie es, in dem Beitrag stand, mit dem Standardpfad probiert. Wo liegt der Fehler?

Meine XML sieht zum testen gerade so aus:

<labels>
    <category name="schutzorgane">
        <prefix>F</prefix>
      </category>
</labels>


Die Verortung der XML und der Bauteile siehe angehängte Fotos.

Die eingestellte Autonummerierung funktioniert bei dem QElectrotech eigenen Bauteilen. Dort wird ein F bei dem Bauteil eingetragen. Also sieht dort das BMK beispielhaft so aus:
-10F3
Bei einer Sicherung aus meiner eigenen Sammlung fehlt das Präfix also steht dort noch
-103

Was mache ich jetzt falsch?

177

(7 replies, posted in Scripts)

plc-user wrote:
Kellermorph wrote:

(...) dass das vorher die falsche Rubrik war (...)

Der andere Thread hat ja mit dem Ansatz angefangen, die PDF-Links direkt in QET zu integrieren, also war das definitiv an der richtigen Stelle!
Wir können dort gerne weiter über PDF-Links innerhalb QET diskutieren, wenn es dazu Ideen gibt:
https://qelectrotech.org/forum/viewtopi … 405#p21405

Richtig. und ich habe auch geschrieben, dass ich im Moment keine Zeit dafür habe mich komplett ins kompelieren etc reinzuarbeiten. Bisher habe ich nur kleine Programme wie  das Appimage geschrieben. Auch noch nicht in C+. Daher bin ich im Moment da leider keine große Hilfe.

178

(7 replies, posted in Scripts)

plc-user wrote:

Da waren noch mehr Fragen in meinem Post!

Der Quellcode hat sich also nicht geändert und hier liegt nun eine weitere Kopie einer knapp 70MB großen Datei, die im anderen Beitrag schon angehängt ist?

Nein, der Quellcode hat sich nicht geändert.
Es ist für Leute einfacher es hier direkt runterzuladen, statt von Github. Deshalb habe ich es hier hochgeladen.
Selbst du und Scorpio waren verwirrt, dass aus der Idee mit dem Quellcode(der nicht geklappt hat) ein separates Programm wurde. Somit können andere es hier leicht verfolgen und runterladen und sind hoffentlich nicht verwirrt und haben einen Nutzen von dem Programm.
In dem anderen Thread liegt das Programm bisher nicht.

179

(7 replies, posted in Scripts)

Ich habe gesehen, dass das mit dem Klemmenplan nach hierhin verlegt wurde.
Ich dachte, dass das vorher die falsche Rubrik war und somit andere da nicht hingucken und es dadurch nicht finden. Es sollte lediglich eine Hilfestellung für andere sein, dass sie evtl davon auch profitieren können. Es war nur nett gemeint.

180

(7 replies, posted in Scripts)

I created an app image.
The program searches the cross-references in the PDF and then links to the page it finds. For example, at 22.7 the program links to p. 22. The drawback here is that you can't have any jumps in the circuit diagram. You can select the cross-reference type at the top. For page.column use X.X and for page.row.column use X.X.X. However, I have only tested X.X, as my cross-references look like this. I hope the program can be useful for some people, as the question about cross-references in the PDF has often been asked in the forum.
I have attached the app image + the source code in a .zip.

Hier ist die Erklärung.
Über Rückmeldungen und Anmerkungen würde ich mich freuen.

Sorry für das Spamen. Ich habe gefunden, dass es die variable Position gibt.
Mit etwas Hilfe konnte ich es auf den ersten Blick hinkriegen, dass die Klemmen nach dem Prinzip
Seite, Position dann Zahl aus der Klemmenbezeichnung dann N und dann PE
sortiert wird.
hier der Code:

SELECT
  printf('%-6s', diagram_position) AS Seite,
  printf('%-10s', label) AS BMK,
  printf('%-6s', position) AS Position,
  printf('%-10s', manufacturer) AS "externes Ziel",
  printf('%-30s', manufacturer_reference) AS Kabel,
  printf('%-80s', supplier) AS Brücke,
  printf('%-15s', designation) AS "internes Ziel"
FROM element_nomenclature_view
WHERE element_type = 'terminal'
  AND label IS NOT NULL
  AND label <> ''
  AND label LIKE '%X2%'
ORDER BY
  diagram_position,
  SUBSTR(position, 1, 1),                -- Sortiere nach dem Buchstaben der Position (z.B. F)
  CAST(SUBSTR(position, 2) AS INTEGER),   -- Sortiere nach der Zahl der Position (z.B. 2, 3, 4 …)
  CASE
    WHEN substr(label, instr(label,':')+1) NOT GLOB '*[^0-9]*' THEN 0  -- ausschließlich Ziffern: numerisch
    WHEN substr(label, instr(label,':')+1) = 'N' THEN 1                -- dann "N"
    WHEN substr(label, instr(label,':')+1) = 'PE' THEN 2               -- dann "PE"
    ELSE 3
  END,
  CASE
    WHEN substr(label, instr(label,':')+1) NOT GLOB '*[^0-9]*'
      THEN CAST(substr(label, instr(label,':')+1) AS INTEGER)
    ELSE 0
  END;

Oder eine X Position statt der Spalte wäre natürlich auch eine Möglichkeit.

Mir ist während dem ausprobieren der Befehle etwas aufgefallen, was es hoffentlich gibt.
Gibt es in der SQL Datenbank einen Eintrag, wo ein Bauteil gespeichert ist?
Also es gibt einmal die Seite auf der die gespeichert ist, was man ja simpel abrufen kann.
Aber gibt es auch, dass das Bauteil beispielsweise in Spalte 1 ist? Also wie im Querverweis das dort im Prinzip 18.1 oder ähnliches steht?
Das könnte für mich äußerst hilfreich sein, dass ich die Klemmen in eine Liste exportieren kann und diese dann die richtige Reihenfolge haben.

Ich wollte die Anleitung hochladen. Allerdings bekomme ich immer folgende Fehlermeldung:


Warning! The following errors must be corrected before your message can be posted:

    The server was unable to save the uploaded file. Please contact the forum administrator at scorpio@qelectrotech.org.

186

(41 replies, posted in Code)

Maybe it's also due to my poor English. I apologize for that.
I had first tried the source code via chatgpt. That was not successful. PLC-User then asked me to compile the code myself and give it a try. But in my current situation this is too complicated / time-consuming. That's why I've been looking for an alternative that can at least temporarily help me and possibly some others. I have written a small Python program (with the help of ChatGPT), which searches a finished exported circuit diagram (PDF) for cross-references and then links them. However, only to the page and not directly to the component.

Translated with DeepL.com (free version)

187

(41 replies, posted in Code)

The Code ist there. Its called "Querverweise.py".

Or did i Miss understand Something?

Btw i'm using Linux Mint.

188

(41 replies, posted in Code)

i got a bit of time. Here is the link

https://github.com/Kellermorph/QuerverweiseAppImage

i hope that i've done evertything right and it's working. It's my first time.

189

(41 replies, posted in Code)

Still this warning:

Warning! The following errors must be corrected before your message can be posted:
The selected file was too large to upload. The server didn't allow the upload.

190

(41 replies, posted in Code)

Erforderliche Python-Pakete:

PyMuPDF (wird über fitz importiert) → Verarbeitung von PDF-Dateien
tkinter → Grafische Benutzeroberfläche (GUI)
re → Reguläre Ausdrücke für die Querverweis-Suche
os → Dateiverwaltung und Pfade
sys → Zugriff auf Systemvariablen

Reicht das erstmal oder braucht ihr noch mehr Infos?

191

(41 replies, posted in Code)

Thanks Laurent.
That is much easyer for me. i upload it here.
If you or PLC-User still want a Github upload i will do it but it has to wait till next week.

Edit:
Theres still this Message:
Warning! The following errors must be corrected before your message can be posted:
The selected file was too large to upload. The server didn't allow the upload.

The File is .zip

192

(41 replies, posted in Code)

Einen Github Account zu machen ist kein Problem, auch wenn ich keine Ahnung habe, was eine PullRequests ist. Wie ist das mit den Abhänigkeiten? Ich habe extra ein Appimage gewählt, damit alle Abhänigkeiten direkt vorhanden sind. Für die Leute, die sich dort rum treiben, sollte es aber kein Problem sein die passenden Abhänigkeiten zu laden oder?

193

(41 replies, posted in Code)

Verdammt die Datei ist zu groß zum Uploaden. Sie ist 70mb groß. Habt ihr eine Alternative, wie ich euch die zukommen lassen kann?

Translate:
Damn the file is too big to upload. It is 70mb in size. Do you have an alternative how I can send it to you?

194

(41 replies, posted in Code)

Hi Laurent auch von mir gute besserung.

Das komplette kompelieren war mir für den jetzigen Zeitpunkt noch zu kompliziert / aufwendig mich da rein zu fuchsen. Mit 2 kleinen Kindern und Kleingewerbe gründen hat man leider nicht so viel zeit zur Verfügung.
Deshalb habe ich mich darauf konzentriert eine Übergangslösung zu schaffen. Ich hoffe die kann auch jemand anderem behilflich sein.
Ich habe ein Appimage erstellt.
Das Programm sucht die Querverweise in der PDF ab und verlinkt dort dann die Seite, die er findet. Beispiel bei 22.7 verlinkt das Programm auf S. 22. Das Manko hierbei ist, dass man jetzt keine Sprünge in dem Schaltplan haben darf. Man kann oben den Querverweistyp auswählen. Bei Seite.Spalte nutzt man X.X und bei Seite.Zeile.Spalte nutzt man X.X.X. Allerdings habe ich nur X.X getestet, da meine Querverweise so aussehen. Ich hoffe das Programm kann für einige Leute nützlich sein, da im Forum bereits des öfteren die Frage nach Querverweise in der PDF kam.
Ich habe im Anhang das Appimage + den Quellcode in einer .zip.

Translate:
Hi Laurent, get well soon from me too.

The complete compiling was still too complicated / time-consuming for me to get to grips with at the moment. Unfortunately, with 2 small children and starting a small business, you don't have that much time available.
That's why I concentrated on creating a temporary solution. I hope this can also be helpful to someone else.
I created an app image.
The program searches the cross-references in the PDF and then links to the page it finds. For example, at 22.7 the program links to p. 22. The drawback here is that you can't have any jumps in the circuit diagram. You can select the cross-reference type at the top. For page.column use X.X and for page.row.column use X.X.X. However, I have only tested X.X, as my cross-references look like this. I hope the program can be useful for some people, as the question about cross-references in the PDF has often been asked in the forum.
I have attached the app image + the source code in a .zip.

Translated with DeepL.com (free version)

195

(41 replies, posted in Code)

Ok schon mal danke für die Hilfe. Aber als aller erstes muss ich mich erst noch mit dem kompilieren auseinander setzen und wie das alles geht. bis jetzt klappt es noch nicht so ganz. Ich werde mich die Tage, wenn ich Zeit haben sollte nochmal dran wagen.

196

(41 replies, posted in Code)

Ok dann werde ich mich einmal schlau machen, wie ich das selbst kompilieren kann und ich werde versuchen die Funktion zu testen.

197

(41 replies, posted in Code)

plc-user wrote:

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.

ok kann ich als nächstes nach gucken. Sollen wir erst gucken, ob durch die Änderungen in der vorherigen Nachricht der Fehler entfällt?

Allerdings sollte diese, wenn ich es richtig verstanden habe, wenn dann beim Ausdruck kommen, da ich in der Datei gearbeitet habe.

198

(41 replies, posted in Code)

Ja auf jeden Fall nomicons/grin ich wusste nicht ob es hier im Code-Bereich evtl anders gehandhabt wird.

Chatgpt hat mir 2 Lösungsvorschläge gegeben. Ich habe beide einmal eingearbeitet.

V1:
Ich sollte den Teil hinzufügen, muss allerdings evtl noch angepasst werden.
#include "diagramtextitem.h"  // Falls dies die Datei ist, in der DiagramTextItem definiert ist

V2:

Die Zeile
if (auto textItem = dynamic_cast<DiagramTextItem *>(item)) {

gegen diese
if (auto textItem = qgraphicsitem_cast<DiagramTextItem *>(item)) {

ausgetauscht.

199

(41 replies, posted in Code)

so you already fixed the error or do i have to do that with chatgpt? Chatgpt already gave me 2 different types of solutions. if u already fixed it, was there the function given?

200

(41 replies, posted in Code)

This feature makes cross-references in the PDF export of QElectroTech clickable, allowing users to jump directly to the corresponding locations in the circuit diagram. The feature was developed with the help of ChatGPT and has not been tested yet.
Note:
I dont know how to compile so i hope someone can do it. Feedback and testing are welcome.