151

(17 replies, posted in Elements)

Yes, I think you are right, Laurent!
In the function starting here:
https://github.com/qelectrotech/qelectr … y.cpp#L189
The ELSE branches ensure that only the start and end points of the ARC are used for the calculation of the surrounding RECT size. In this case, this is counterproductive!

Is there anything against always assuming an "ellipse" for the determination of the surrounding rectangle?
(But please don't expect me to adopt this today: Before I have managed to get familiar with QT-programming and the IDE it will be Christmas again... nomicons/wink)

Another thought for ARCs:

For the determination of the surrounding rectangle, it might be easier to limit the number of case distinctions. For this it might be helpful if (at the latest when saving the XML file) we always keep the angles of the ARC in the positive range?
These arcs are identical:

Start = -10 / Angle =  30
Start =  20 / Angle = -30
Start = 350 / Angle =  30

For case distinctions in internal calculations, however, it might help...

Implemented normalisation for start and angle of ARCs in QET_ElementScaler and just released a new version on github.
Maybe it helps...

152

(17 replies, posted in Elements)

Maybe here?

https://github.com/qelectrotech/qelectr … c.cpp#L165

/**
 * @brief PartArc::sceneGeometricRect
 * @return the minimum,
 * margin-less rectangle this part can fit into in scene coordinates.
 * It is different from boundingRect() because it is not supposed
 * to imply any margin,
 * and it is different from shape because it is a regular
 * rectangle, not a complex shape.
 */
QRectF PartArc::sceneGeometricRect() const
{
    return mapToScene(QetGraphicsHandlerUtility::rectForArc(m_rect, m_start_angle/16, m_span_angle/16)).boundingRect();
}

... or at least in that file?

153

(17 replies, posted in Elements)

I use the same code in QET_ElementScaler:

    // calculation taken from QET-sources:
    int upwidth = ((width/10)*10)+10;
    if ((width%10) > 6) upwidth+=10;

    int upheight = ((height/10)*10)+10;
    if ((height%10) > 6) upheight+=10;

Just a thought, Laurent:
Can it be that ARCs aren't taken into account for calculating Element's size?
The other graphical elements seem to be used for calculating size...

154

(17 replies, posted in Elements)

Vbxler wrote:

Nothing changes if I open the component with the component editor and then save it again.

You are right, too, Vbxler!

The definition-line of your Start-Element has these values:

hotspot_y="14" height="40" width="90" hotspot_x="45"

and shows the graphical errors.
The corrected version of the file from QET_ElementScaler has these values:

hotspot_y="15" height="40" width="110" hotspot_x="55"

and shows perfect graphics.

When I re-open the corrected file in Element-Editor and save it again, the false values are written to file again.
It seems that the calculation of hotspots and size of the element is broken in Element-Editor at the moment...

155

(17 replies, posted in Elements)

scorpio810 wrote:

This element are a wrong hostspot, just open in editor and save again.

You are perfectly right, Laurent!

Corrected the files from packed file with QET_ElementScaler and added here as *.tar.gz

156

(18 replies, posted in Elements)

Hallo zusammen!

Meiner Meinung nach sollten wir ein gemeinsames Konzept für alle Symbole und Elemente bezüglich Größe, Aussehen, etc. erstellen.

Hatte das bereits in anderen Threads angesprochen, dass wir ein paar Regeln für die Erstellung von Symbolen brauchen und auch Vorschläge dazu gemacht. Die waren bislang überwiegend für Eigenschaften von Front-Ansichten. Wenn wir das auch für Schaltplan-Symbole hinbekämen ... umso besser!

Ich konnte mich noch nicht dazu durchringen, die vorhandenen Symbole zu überarbeiten, weil es viel manuelle Arbeit bedeutet. Mitstreiter zu haben, motiviert natürlich! 

Hier Links zu vorhandenen Diskussionen hier im Forum:
https://qelectrotech.org/forum/viewtopi … 247#p14247
https://qelectrotech.org/forum/viewtopi … 224#p14224

via online-translator:

Hello all!

In my opinion, we should create a common concept for all symbols and elements in terms of size, appearance, etc..

I had already mentioned in other threads that we need some rules for the creation of icons and also made suggestions. So far these have been mostly for front view properties. If we could do the same for schematic symbols ... all the better!

I have not yet been able to bring myself to revise the existing symbols because it means a lot of manual work. Having fellow campaigners is motivating, of course! 

Here are links to existing discussions here in the forum:
https://qelectrotech.org/forum/viewtopi … 247#p14247
https://qelectrotech.org/forum/viewtopi … 224#p14224

Salut Mathieu,

QElectroTech ist ein Open-Source-Projekt, das von der Mitarbeit der Benutzer lebt.
Wir nehmen deswegen jede Hilfe gerne an, damit QET zum besten und umfangreichsten Schaltplan-Editor wird, das es gibt! Sollte es irgendwelche Schaltplansymbole zur Zeit nicht in der Sammlung geben, darfst Du sie gerne selber erstellen. Dazu stellt QET dir einen Konverter von vorhandenen DXF-Dateien und einen Element-Editor zum (Nach-)Bearbeiten von Schaltplansymbolen zur Verfügung.

via Online-Translator:

QElectroTech est un projet open source qui vit de la collaboration des utilisateurs.
Nous acceptons donc volontiers toute aide pour que QET devienne le meilleur et le plus complet des éditeurs de schémas électriques ! Si certains symboles de schémas électriques ne sont pas encore disponibles dans la collection, n'hésite pas à les créer toi-même. Pour cela, QET met à ta disposition un convertisseur de fichiers DXF existants et un éditeur d'éléments pour (ré)éditer les symboles de schémas électriques.

Hallo Olaf,

die Anleitung ist ins Programm integriert: Rufe es einfach ohne Parameter oder mit "--help" als Parameter auf:

QET_ElementScaler --help

Wenn Du einfach nur eine einzelne Element-Datei mit einem Skalierungsfaktor bearbeiten willst, ist der Aufruf ganz einfach. Zum Beispiel:

QET_ElementScaler BeispielElement.elmt 0.75

Dabei wird eine neue Datei "BeispielElement.SCALED.elmt" mit dem skalierten Element erstellt. Wenn der Speicherort der Element-Datei in der Benutzersammlung liegt, lädst Du anschließend die Benutzersammlung neu und kannst das Bauteil benutzen.

Wenn Du eine Menge Dateien in einem Verzeichnis mit demselben Faktor bearbeiten willst, benutzt Du die Batch-Datei "scale.cmd" und passt darin die Speicherorte für das Programm, die Elemente und den Faktor an.

scorpio810 wrote:

(...)

Another Thread, Laurent? nomicons/wink

Hallo Olaf,

schau doch mal in diesem Thread
https://qelectrotech.org/forum/viewtopi … 286#p17286
oder direkt auf meinem github-account:
https://github.com/plc-user/QET_ElementScaler

Dort gibt es eine Linux- und eine win-Version als Binary, oder Du kannst es für "Dein" System aus den Quellen selbst kompilieren.

Bei Fragen oder Anregungen:
Fragen oder anregen!  nomicons/wink

galexis wrote:

It's not possible to integreted it directly on QET like it's C++?

There are several new topics for me at once:
For the beginnings in Pascal I only needed to add a little XML to the Pascal knowledge. The change to C++ was then already bigger. But then to integrate that into an existing, grown QT project, that's quite another matter...
For the moment I have put together a small (and from my point of view) usable package. There is no question that in the foreseeable future it will make sense to integrate scaling and mirroring directly into QET's Element-Editor!

Salut Laurent,

there is no need to compile QET_ElementScaler for windows, because that is available in the releases.
I compile my programs for Windows on ReactOS and mention it that way to support another open source project at least by advertising it a bit!
https://reactos.org

Salut Laurent!

Thank you for the Link to the other thread!

Hello everybody!

Please have a look at the new version:  https://github.com/plc-user/QET_ElementScaler

I now implemented the calculation of values for definition-line and tried with some Elements:
To me, this looks pretty good!  nomicons/smile

In the attached file you find some samples.

Salut Laurent,

is it a "bug" if I already write exactly that in todays introductory post? nomicons/wink

plc-user wrote:

(...) For the values of the definition line (hotspots, ...) the way of calculation is not yet clear to me. But you have to open the new file with the element editor anyway to check or correct the positions of the texts. Then the definition line will be corrected. (...)

Maybe you (someone) can give me a hint where I can find the place in the QET source code where the values for the hotspots, width and height for the definition-line are determined? Or is it somewhere described, how to determine the correct values? Then I could perhaps implement this in the short term...

scorpio810 wrote:

Hello plc-user,

what is the command line to use it?
(...)

Just call it without any options or use "--help":

me@notebook:~/Projekte/c_c++/QET_ElementScaler$ ./QET_ElementScaler --help

"QET_ElementScaler" version 0.4beta5 needs some arguments!

usage for simple mode:
"QET_ElementScaler"  [options]  FILENAME  ScalingFactor

In extended mode the scaling-factors for X and Y may differ and it is
allowed to specify only one direction for scaling. In each case the
Font-Sizes and Circle-Diameters are scaled by the smaller value.

usage for extended mode:
"QET_ElementScaler" [options] [-x FactorX] [-y FactorY] -f FILENAME


available options:
 -i | --stdin     input-data is read from stdin, a given filename is 
                  ignored and scaled element will be written to stdout
 -o | --stdout    output will be written to stdout
 -x VALUE         or
 --factorx VALUE  factor for x-values (x, rx, width, ...)
 -y VALUE         or
 --factory VALUE  factor for y-values (y, ry, height, ...)
 -f FILENAME      or 
 --file FILENAME  the file that will be used
 -h | --help      show this help


there are also some "long-opt"-only options:
"--RemoveAllTerminals" removes all terminals from the element
                       (useful for front-views or "thumbnails")
"--FlipHorizontal"     flips all graphical elements horizontally
                       (useful during creation of elements)
"--FlipVertical"       flips all graphical elements vertically
                       (useful during creation of elements)
"--OverwriteOriginal"  the original file is replaced by scaled one
                       (CAUTION: Be careful with this option!)

without parameters or with "-h" or "--help" this help is displayed


The most simple call:
"QET_ElementScaler" -f FILENAME
A new file is created with all values rounded to two decimal places
and all font sizes are set to integers - some kind of cleanup... 

As always with free software: Use it at your own risk! 

laurents-iMac-Pro:elements laurent$ ./QET_ElementScaler --FlipVertical pylone.elmt 
could not convert "pylone.elmt" to a float-number!
laurents-iMac-Pro:elements laurent$ ./QET_ElementScaler pylone.elmt --FlipVertical 
could not convert "pylone.elmt" to a float-number!

when using Options other than scaling-factor and filename, you have to add the filename with "-f filename"
For example:

./QET_ElementScaler --FlipVertical -f pylone.elmt 

Salut Laurent!

Thank you for the feedback!
GCC on Debian unstable and TDM-GCC on ReactOS did not show this warning.
Otherwise I would have corrected that line:
Don't like warnings when compiling code, too!

You may change Line 92 in main.h to
    {0,0,0,0}

Then the warning should be gone.
EDIT (29.12.22 11:58 CET):
already changed at github - no new binaries needed for this code-change

at github I uploaded binaries for Linux and ReactOS. The ReactOS-binary works also on win.
If you compile it on other systems like macOS, etc. it will run there, too!

here a screenshot of an element:

Today I uploaded a new version of "QET_ElementScaler" to github: https://github.com/plc-user/QET_ElementScaler

It's not perfect yet, but it's getting better and better!

All graphic elements are now taken into account when mirroring!
The mirroring is done at the coordinate axes.

The texts are not (yet) in the right position, because the text-length, -width and -orientation must also be taken into account for the new position. For the values of the definition line (hotspots, ...) the way of calculation is not yet clear to me. But you have to open the new file with the element editor anyway to check or correct the positions of the texts. Then the definition line will be corrected. Take a look at the sample-file I created in the attachment.

In any case, this is already very useful as a starting point for the further processing of the component!  nomicons/smile

171

(10 replies, posted in Elements)

I do not understand your question because it is not in English and secondly, from where do you want to download it?
Download QET, install it and all the elements available from this manufacturer are in the QET Collection.
If you want to participate and create elements, we will be happy to include them in the QET collection.
Just create them in the element editor, or use the DXF to QET converter beforehand.

jhonathan disner wrote:

no, I did the installation from the ''.exe'' file

It does not matter, how you installed QET. The question was how you start QET to use it.
Do you double-click on the executable file or do you start QET from the batch-file "Lancer QET.bat"?

When starting from the batch-file it reads some environmental settings and then it will start QET with the appropriate settings for language, etc.

Just tried on a fresh installed win10 and "ReadyToUse - QET":
Created Sub-Directories under "c:\tools\qet\conf\elements\"
placed some elmt-files in the sub-sub-directory and created a file "qet_directory" for each sub-dir.
Here it works as expected. See screenshot.
Maybe the language is not set correctly on your system?
Did you start QET from the batch-file "Lancer QET.bat"?

The folder-names are the loclised texts taken from the file "qet..." lying in that directory and not from the file-directory-name itself.
Please compare with the other directories in the QET-collection.

Just created a pull-request with your Symbol, Vbxler, and a RCBO from manufacturer "Hager".