Sortie de QElectroTech 0.8

Posté par  (site Web personnel) . Édité par palm123, Bruno Ethvignot, scorpio810, BAud, Ysabeau, Yves Bourguignon et Benoît Sibaud. Modéré par Ysabeau. Licence CC By‑SA.
Étiquettes :
40
23
fév.
2021
Science

Un peu plus d’un an après la dernière version stable de QElectroTech (QET), la version 0.8 est maintenant disponible en téléchargement.

QElectroTech est un logiciel libre multi plate-forme, permettant de réaliser des schémas de circuits électriques. QET est disponible sous licence GNU GPL v2. Le développement du logiciel se fait en C++ et Qt5.

Sommaire

Version 0.8

Bien que le développement ait été plus long que pour la version précédente, la liste des changements, quant à elle, est plus mince.
Les trois grandes nouveautés sont :

  • nomenclature intégrée au projet ;
  • nouveau sommaire ;
  • chargement de la collection d’éléments plus rapide.

Éditeur de diagramme

Nouvelles fonctionnalités

Nouveau sommaire et nomenclature intégrée

Nomenclature

Un nouvel outil nomenclature fait son apparition dans le menu : projet -> Ajouter une nomenclature.
La nomenclature se présente sous la forme d’un tableau configurable séparé en deux parties : l’affichage (la forme) et le contenu (le fond).
- Affichage : la taille et position du tableau, les marges entre texte et cellule du tableau, l’alignement du texte dans les cellules et la police d’écriture. La configuration des en-têtes du tableau et du tableau lui-même sont distinctes.
- Contenu : les informations à afficher dans le tableau et l’ordre dans lequel elles doivent être affichées.

dialogue nomenclature

Afin d’accélérer la mise en place d’une nomenclature il est possible d’exporter/importer les configurations d’affichage et de contenu séparément. C’est la partie « Configuration » que l’on peut voir sur les photos ci-dessus.

En arrière-plan, c’est une base de données SQLite qui fait le travail, ainsi la configuration du contenu n’est ni plus ni moins qu’une requête SQL créée à l’aide d’un dialogue (capture d’écran de droite).
La requête SQL se configure ainsi (de haut en bas sur la capture d’écran) :

  • « Informations disponibles » : les informations à afficher ;
  • « Filtre » : filtrer les informations (n’est pas vide, est vide, contient, ne contient pas, est égal à, n’est pas égale à) un seul filtre peut être appliqué par information, il n’est pas possible d’en combiner plusieurs ;
  • « Type d’éléments » : permet de filtrer sur quel type d’élément l’on veut obtenir des informations.

Tout en bas une coche « Requête SQL » permet d’éditer une requête personnalisée, si les options de base ne sont pas suffisantes.

Lorsqu’une nomenclature est trop grande pour être contenue dans un seul folio, il est possible de la séparer sur plusieurs folios, les tableaux de chaque folio sont alors liés entre eux. Lors de la création d’une nomenclature cette option est activée par défaut, ce qui a pour effet d’ajouter le nombre de folios nécessaire, ajouter un tableau dans chacun d’eux et les lier ensemble.

Enfin deux boutons sont disponibles dans le panneau de propriété :

  • « Ajuster le tableau au folio » : positionne et ajuste la taille et détermine le nombre de lignes du tableau par rapport au folio ;
  • « Appliquer la géométrie à tous les tableaux liés à celui-ci » : applique les trois propriétés citées plus haut à l’ensemble des tableaux liés afin de gagner du temps et garder une cohérence esthétique.

Et pour finir un tableau : tableau

Sommaire

L’ancien sommaire, quant à lui, a été totalement supprimé du code afin de laisser place au nouveau qui est exactement la même chose que la nomenclature (une grande quantité du code est commune), à l’exception de la requête SQL (et de son dialogue pour la paramétrer) qui propose des informations propres à l’édition d’un sommaire.

Export de la base de données interne

La base de données utilisée par la nomenclature et le sommaire peut être exportée dans un fichier « .sqlite ».
À l’heure actuelle ceci n’a aucun intérêt, la fonction ayant été créée pendant le développement pour du débogage, nous l’avons laissée.
À noter que la base de données prendra de plus en plus d’importance dans l’avenir de Qet.

Export de la liste de fileries

Afin de pouvoir utiliser plus facilement les imprimantes de numéro de fileries, les noms de conducteurs peuvent être exportés au format CSV, l’export respecte la quantité de conducteurs afin d’imprimer la bonne quantité de numéros, par exemple un potentiel numéroté 240 composé de 3 fils donnera 6 × 240 (2 numéros par fil × 3 fils) dans le CSV.

Améliorations et remaniement

Export de la nomenclature retravaillé

L’export en CSV de la nomenclature a été remanié afin d’utiliser la nouvelle base de données, un nouveau dialogue d’export (semblable à l’onglet « contenu » de la nomenclature) permet de paramétrer les informations à exporter.

Chargement de la collection d’éléments plus rapide

Bien que pas prévu pour la version 0.8, les tests étant tellement bluffants nous avons décidé de travailler sur ce sujet.
À savoir les fichiers d’élément (.elmt) sont de simples fichiers XML.
Jusqu’à la version 0.8 nous utilisions le parseur XML de Qt.
Il s’avère que la vitesse du parseur de Qt est très très lente comparée à d’autres (lien) et la balance a penché pour pugixml.
Malheureusement le gain de vitesse n’est pas identique suivant les OS, le chargement qui était très long sous Windows est maintenant… long. (lien)
Pour Windows on peut compter sur un gain de vitesse de 30 % environ, bien que cela puisse beaucoup varier d’une configuration à une autre sans que nous sachions pourquoi (qu’importe l’utilisation d’un SSD ou HDD, nombre de cœurs du processeur).
Sous Linux c’est autre chose :) le chargement se fait au minimum deux fois plus vite.
Le revers de la médaille est une consommation mémoire un peu plus haute liée à la manière dont nous avons codé la chose (pugixml n’y est pour rien) mais cela reste négligeable.

Dialogue d’impression et export PDF

  • La partie graphique du dialogue d’impression a été totalement réécrite avec Qt designer en lieu et place du C++. Concrètement cela ne change rien pour l’utilisateur, mais nous permet de mieux séparer le code.
  • Le widget de sélection des folios à imprimer possède deux nouvelles options : « À partir de la date du : » et « À la date du : » cela est pratique quand vous souhaitez imprimer uniquement les schémas que vous avez mis à jour.
  • L’impression sur imprimante physique et PDF est maintenant séparée, un nouveau bouton « Exporté en PDF » est disponible dans la barre d’outils et le menu « fichier ».

Nouvelles informations de conducteur

Les conducteurs gagnent quatre nouvelles informations : Couleur du conducteur (textuelle, il était déjà possible de modifier la couleur du conducteur), Section du conducteur, Câble, Bus.

Widget rechercher / remplacer

  • Le widget du rechercher / remplacer est maintenant animé, ça fait pas avancer le schmilblick mais un peu d’animation ça fait toujours bien. :)
  • Il est maintenant possible de sélectionner les éléments et/ou conducteurs et/ou textes indépendants d’un folio en particulier grâce à un clic droit sur le folio voulu. 0

Texte d’éléments

Les textes d’éléments sont dotés d’une nouvelle fonctionnalité « Conserver la rotation visuelle ».
Cela signifie que lorsque un élément subit une rotation, le texte suit la rotation en x.y en revanche l’angle visuel reste le même.

Amélioration de l’export DXF

Un nouveau contributeur, David Varley, a beaucoup contribué sur la partie export DXF rendant celle-ci nettement meilleure.

Éditeur d’élément

Widget d’édition de polygone

La sélection d’un point du polygone dans la liste des points provoque le changement de couleur du point correspondant afin de mieux visualiser le point en cours d’édition.
Dans cette même liste, un clic droit ouvre un menu contextuel permettant de supprimer le point sélectionné ou insérer un nouveau point après celui sélectionné.

Précision des déplacements au clavier

Lors du maintien de la touche ctrl + flèche directionnelle, les parties sélectionnées se déplacent de 0,1 au lieu d’une unité.

Couleurs

Une énorme quantité de couleurs aux « standard HTML » a été ajoutée. Nous continuons volontairement de « limiter » la quantité de couleurs afin de garder une certaine uniformité graphique des éléments.

Nouveaux contributeurs

Simon De-Backer nouveau contributeur a revu le code en profondeur en nettoyant les fonctions obsolètes et/ou dépréciées dans le but d’être compatible avec la nouvelle version du framework Qt en version 6.
Il a participé aussi à l’amélioration de l’indentation pour une lecture plus aisée des sources, ainsi que sur la refonte de la documentation Doxygen.

À côté

Laurent a lancé quelques tests de QElectrotech avec Qt for WebAssembly seules les versions 0.5 et 0.6 fonctionnent, les versions 0.7 et 0.8 ne fonctionnent pas, entre autres à cause des KF5 addons. L’utilisation elle-même reste satisfaisante même si on n’est pas au niveau d’une utilisation native. Affaire à suivre.

Ajout des paquets Snap avec l’expertise de Maximilian et des paquets Flatpak avec l’aide de Mathieu.

À la date du 21 février 2021, QET dispose de 7279 éléments, qui sont répartis dans 1 005 catégories. Une quantité écrasante des éléments fournis par QET provient des utilisateurs qui nous font part de leurs propres éléments afin d’étoffer la collection officielle !
Des éléments doublons mais avec des références constructeurs différentes ont été écartés et mis à disposition sur ce dépôt Github

Sébastien a participé à la refonte de la collection et à l’ajout de nouveaux éléments collectés sur le forum, soulageant Laurent de cette tâche.

L’interface est traduite dans vingt-trois langues (partiellement ou totalement, les traductions étant faites bénévolement, majoritairement par des contributeurs externes au développement de QET). De nouvelles traductions font leur apparition, dont le norvégien et le japonais, et tout récemment le mongol.

Une refonte de la documentation est en cours d’écriture, elle est toujours basée sur le logiciel Sphinx.

Aller plus loin

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.