6,101

(13 replies, posted in News)

Revision: 4050
Author:   blacksun
Date:     2015-07-15 18:54:30 +0200 (Wed, 15 Jul 2015)
Log Message:
-----------
QetShapeItem -> handler : handler is draw at the same size at screen, no matter the curent zoom

exemple avec ce script:


#!/bin/bash
set -x
file="$1"
if [ ! -f "$file" ]; then
    echo "Usage: $0 <file> <lang> <name>"
    exit 150
fi
lang=${2:-es}
name=${3:-}
 
tmp_file=$(mktemp)
basename=$(basename "${file}")
if [ "${basename}" == "qet_directory" ]; then
    root_elmt='qet-directory'
else
    root_elmt='definition'
fi
 
# Does the file already have a name for the provided language?
name_xpath=$(printf '/%s/names/name[@lang="%s"]' "${root_elmt}" "${lang}")
already_exists=$(xmlstarlet select -t --value-of "count(${name_xpath})" "${file}")
if [ "${already_exists}" -eq 0 ]; then
    # we need to insert the element
    names_xpath=$(printf '/%s/names' "${root_elmt}")
    name_xpath=$(printf '/%s/names/name[not(@lang)]' "${root_elmt}")
    xmlstarlet edit --subnode "${names_xpath}" --type elem -n "name" --value "${name}" "${file}" | \
    xmlstarlet edit --insert  "${name_xpath}"  --type attr -n "lang" --value "${lang}" > "${tmp_file}"
else
    # we need to update the element
    xmlstarlet edit --update "${name_xpath}" --value "${name}" "${file}" > "${tmp_file}"
fi
xmlstarlet format --indent-spaces 4 --omit-decl "${tmp_file}" > "${file}"
sed -i 's,<informations/>,<informations></informations>,' "${file}"

nuri wrote:

Ce qu'il faudrait apprendre à maîtriser, ce sont les filtres XLST pour convertir le XML d'un projet QET en XML compréhensible par LibreOffice. Là, couplé avec des macros, ca commencerait à devenir intéressant.
Mais on en avait déjà parlé et finalement, personne ne s'y est mis sérieusement.


Ou en ligne de commande sous gnu/linux avec XmlStarlet

EXAMPLE:

# Rename elements (remplace rec par record)
xml ed -r "/xml/table/rec" -v record xml/tab-obj.xml

Edit: il existe un package Windows.

nuri wrote:

Tiens, en parlant de séparateur, est-ce qu'il serait possible que nos amis francais de France utilisent le séparateur prévu par la norme internationale, c'est-à-dire ":" et non "." ?
Si j'ai un bornier -X01 avec 3 bornes (1, 2 et 3), cela nous donne :
-X01:1
-X01:2
-X01:3
Et si j'ai un bornier -X21.2 avec 2 bornes (L1 et L2), cela nous donne :
-X21.2:L1
-X21.2:L2
Le vieux Eplan 5.70 utilisait aussi cette méthode : [nom du bornier] + [séparateur :] + [numéro de la borne].
Maintenant, avec le nouveau Eplan P8, ils ont séparé [nom du bornier] et [numéro de la borne] en 2 champs de donnée bien distincts, ce qui est, à mon avis, la solution à préférer car cela limite un peu les erreurs dues aux fautes de frappe.


Une fois tout ça en place dans le code, ça devrait être transparent pour l'utilisateur. Donc on peux dans le code mettre le caractère ": " comme séparateur de champ et donc imposer la norme internationale sans gêner le dessinateur.
Dans le formulaire: (dock)
Sur le premier champ on choisit le nom du bloc dans la liste ou on entre le nouveau nom: X1, XS, etc. (parent)
Dans le second on entre le nom de la borne. (enfant)
Qet avec ces classes peut déjà connaitre les conducteurs branchés sur la borne et leurs numéros de fils.
En principe ce doit être les mêmes, la borne fournie dans la collection de type "terminal" étant un court-circuit.


D’après la documentation winrelais, il y a la méthode française et suisse....nomicons/getlost


http://www.typonrelais.com/aide_1_3/wr/ … bornes.htm

Tu ne le pourras pas, les bornes ne sont pas exportées dans le fichier csv, voir ma réponse plus haut.
Donc tu ne pourras extraire les numéros de fils facilement, je pense qu'il faudra aussi un attribut pour ça: récupérer la valeur de l’équipotentialité aux bornes de ces éléments.
J'attend de voir avec Joshua, surement qu'on rajouteras d'autres attributs sur les bornes *parent= nom du bloc bornier, *enfant= nom de la borne, et n° de conducteur (équipotentialité) pour envoyer mon petit patch ou pas.
Ou comme toi:

Le label doit être composé du numéro de bornier suivie du numéro de borne (exemple : X1.1).


http://qelectrotech.org/forum/viewtopic … 3752#p3752

Joli^^ , merci pour ton travail. nomicons/smile
Voila pour le lien:
QElectroTech_Terminal_V01.ods
 et le fichier de test en download.

https://download.qelectrotech.org/qet/forum_img/bornier_LO.png

Ça donne quoi en rendu, tu peux poster une capture d’écran?

Bonsoir,
Envoie moi le par mail, je le rajouterai sur le serveur de download.

6,109

(13 replies, posted in News)

Revision: 4039
Author:   blacksun
Date:     2015-07-09 20:33:14 +0200 (Thu, 09 Jul 2015)
Log Message:
-----------
QetShapeItem : add handler for modified the geometry of shapes in the diagram

Des poignées permettent de modifier chaque segment d'une basic shape, et non ce n'est pas fait pour dessiner des symboles directement sur les schémas, ni des sapins de noël avant l'heure, après on peux pas vous l'interdire. nomicons/grin

400x303

nuri wrote:

Merci du tuyau !
Je regarderai quand j'aurai de nouveau un peu de temps et les nerfs solides... --> commander une palette d'aspirine 

Pas besoin de palette d'aspirine. nomicons/smile
Jette un œil à mon message plus haut, tu n'en tireras rien d'exploitable pour l'instant.

Index: sources/nomenclature.cpp
===================================================================
--- sources/nomenclature.cpp    (révision 4034)
+++ sources/nomenclature.cpp    (copie de travail)
@@ -101,7 +101,7 @@
         //Get only simple, master and unlinked slave element.
         ElementProvider ep(d);
         QList <Element *> list_elements;
-        list_elements << ep.find(Element::Simple | Element::Master);
+        list_elements << ep.find(Element::Simple | Element::Master | Element::Terminale);
         list_elements << ep.freeElement(Element::Slave);
 
         foreach (Element *elmt, list_elements) {

Hello,

like this?
https://download.qelectrotech.org/qet/forum_img/cable_symbol.png

Finalement, sous forme csv, qu'est-ce qui différencie une borne d'un moteur ou d'un relais ?!?

En principe c'est toujours un élément dont l'attribut est de type terminal (borne de continuité), on s'en sert déjà pour garder la même liaison équipotentielle donc la même numérotation de conducteurs à ses bornes. 

On pourrait aussi filtrer sur la colonne "Label". Chez nous en Allemagne, les borniers sont toujours identifiés avec la lettre "X". Mais ce n'est pas toujours le cas et ce n'est pas partout pareil...

Une borne pour bornier est toujours définie et représentée dans un schéma par le nom du bloc, et ensuite son numéro. ex: XS_104/10
Ces éléments doivent avoir en plus de leur attribut : terminal, un attribut parent de type: XS, XA, etc, et un autre de type enfant (numéro/texte de borne).



On filtrent ces éléments  "bornes" à l'exportation volontairement, car pour l'instant il manque encore les attributs parents et enfants dessus.


https://download.qelectrotech.org/qet/forum_img/cvs-terminal.png

+ list_elements << ep.find(Element::Simple | Element::Master | Element::Terminale);

6,113

(13 replies, posted in News)

Chaque élément posé sur le schéma à son UUID propre, ça ne change pas et permet de les différencier. Sur leur définition en fin du XML on a ajouté dans leur description un UUID.
Qt peux maintenant enregistrer les chaines d attributs dans l'ordre qu'il veut, ça nous permet de savoir si cet élément existe déjà ou pas dans les schémas lors de l'insertion d'un élément.

Hi,


Your Mint is based on Ubuntu 14.04, and doesn't support Qt 5.3.

You need first install this PPA for Qt5 libraries (Qt 5.3):

deb http://ppa.launchpad.net/packetlost/qt-opensource/ubuntu trusty main 

After use my Debian repository for "QElectroTech 0.5 devel"  packages have compiling with Qt 5.3 for binary compatible with your distribution:

deb http://debian.qelectrotech.org/qet/debian/ stable main

This repository is the same but is synced with Debian unstable, now  make package for Qt version =4.5,  and GCC 5.1 is for soon:

deb http://debian.qelectrotech.org/qet/debian/ unstable main

Bonjour,

non, par contre la représentation type croix n'est pas des plus adaptée pour les Eléments protections, ce n'est que mon avis.

nuri wrote:

Oui, depuis le départ je pense que la page web de QET peut jouer le rôle d'extension, par exemple, pour fournir des bibliothèques d'éléments un peu différents. Faudra y réfléchir. A garder sous le coude, pour plus tard...

Salut Nuri,
oui, c'est déjà en place suffit juste que je rajoute une catégorie "constructeurs".
Voila c'est fait: https://qelectrotech.org/showcategory.php?cat=constructeurs

J'attend, vos éléments pour la remplir.
@ Nuri: si tu as envie, tu peux les mettre sur le repo dans ton répertoire, je les ajouterai sur l'autre serveur.

nuri wrote:

A priori, c'est tout à fait faisable. D'ailleurs je comptais aussi faire les borniers semi-auto mais vu le temps que j'ai passé sur les nomenclatures, là j'ai plus trop envie !
En fait, le Basic pour LibreOffice est assez simple. Par contre j'avais clairement sous-estimé l'API de LibreOffice pour faire des interfaces utilisateurs. Ca devient assez rapidement de la POO et je suis vite largué...

T’inquiètes, Galexis va s'en occuper.

Clair.nomicons/ninja  ...... nomicons/whistling

galexis wrote:
scorpio810 wrote:

Apres ça peut te servir de base, pour tes propres macros.

C'est ça, oui ! Je suis curieux .

Pas du tout, tu comptes plancher dessus pour nous, nomicons/tongue
pour générer directement avec LO des éléments XML borniers pour Qet en relation avec le projet (en filtrant avec tes macros sur les éléments bornes). nomicons/happy

Nuri wrote:

Et puis, tous les appareils de distribution électrique, disjoncteurs, bornes, disjoncteurs-moteur, relais, contacteurs... je suppose que tu utilises toujours les mêmes, donc une fois que tu les as créés, ils sont toujours dispos, y'a qu'à faire du drag and drop.

De plus, pour créer ces appareils standards, tu prends un symbole normalisé qui existe déjà dans la collection officielle, tu le copies et le définies en tant qu' "article constructeur", tu rentres les données d'article et t'as fini. Y'a même pas besoin de bricoler le graphisme du symbole, vu que ca existe déjà.

Quand j'ai créé le répertoire "articles constructeur" dans la collection officielle, je l'avais fait expressément dans cette optique :
avoir un maximum d'infos déjà intégrées aux éléments, et pas seulement leur définition graphique.

Rarement le cas pour moi, c'est plutôt de la réfection de projet et je vais pas m'amuser ni le temps de lister toutes les références dans les armoires, -> schémas remis à jour et au propre (pas de gribouillis de schéma, ratures au crayon des modifications, etc).
Apres tout, pourquoi pas les mettre dans le dépôt d’éléments, chacun pouvant ensuite télécharger des éléments spécifique d'un constructeur, pour enrichir sa collection privé suivant ses besoins?

Chaque boite a ses constructeurs fétiches suivant le matériel:

  • Boutons/commutateurs    -> marque X

  • Contacteurs                     -> marque Y

  • etc

Galexis: Pas sur que les macros de Nuri te soient très utiles, ses éléments contiennent déjà les références dans leur définition!
http://qelectrotech.org/forum/viewtopic … 3407#p3407

Apres ça peut te servir de base, pour tes propres macros.

nuri wrote:

Je pense que je vais quand même essayer de faire un peu de Basic (me demande pas quand, hein...) et ce, pour plusieurs raisons :
- j'ai envie de me faire les dents sur Basic LO 
si ca marche :
- ca risque d'intéresser du monde
- ca ouvrira la porte à d'autres choses (E/S d'API, peut-être aussi les borniers semi-automatiques)
- ca permet d'étendre les possibilités de QET sans le compliquer


Bon boulot Nuri, c'est nickel,
bravo tu y est arrivé nomicons/wink

Clair, ça permet d’étendre les fonctionnalités de Qet.
Je sens que tes classeurs/macros vont intéresser du monde.

Heuu... 
Depuis le début du projet, nos besoins sont clairement annoncés à chaque sortie de version.
Que tu découvres ce type de schéma est normal suivant ton domaine, c'est par contre la norme dans l'aéronautique, l'automobile, la pharmaceutique, etc.
Je rencontre souvent ce type de schéma, ce n'est pas du tout indigeste quand tu sais les déchiffrer, bien au contraire.

6,124

(13 replies, posted in News)

Nuri wrote:

Le seul inconvénient, c'est qu'il n'est maintenant plus recommandé du tout de créer des éléments avec un éditeur de texte (ce qui se révèle parfois plus rapide quand on veut faire des vignettes à partir de copier/coller). Il faut obligatoirement passer par l'éditeur d'élément.

Tu le peux toujours, suffit ensuite de passer par le script, évite de le faire dans le même dossier que tes éléments personnel déjà patchés, sinon les UUID seront à nouveau changés, ce qui sera moins drôle pour toi, uhuhu.


--- -    2015-07-02 09:27:58.733634903 +0200
+++ "/home/laurent/Qet_scripts/Nouveau dossier 2/pneuride.elmt"    2015-07-02 09:27:53.996643627 +0200
@@ -1,5 +1,5 @@
 <definition width="70" version="0.3" hotspot_x="15" hotspot_y="30" height="60" type="element" orientation="dyyy">
-<uuid uuid="{223D8E45-F711-48D3-A7A0-D77A4FCA6260}"/><names>
+<uuid uuid="{075D5559-4DA4-416A-AC40-223C475CF5C3}"/><names>
         <name lang="en">Cylinder bellows</name>
         <name lang="fr">Pneuride</name>
         <name lang="pl">Siłownik mieszkowy</name>

6,125

(13 replies, posted in News)

findutils
Utilitaires de recherche de fichiers -- find, xargs
Clair!
Oui c'est récursif et cherche dans tous les sous dossiers: RTFM find
http://linux.die.net/man/1/find
http://www.grymoire.com/Unix/Sed.html
http://how-to.linuxcareer.com/learning- … mmands-awk