51 (edited by scorpio810 2015-07-15 17:30:44)

Re: New floating dock is now ready, news colors, patterns, etc.

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

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

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.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

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}"

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

scorpio810 wrote:

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

Sans oublier la méthode bavaroise et la méthode esquimaux nomicons/tongue
Plus sérieusement, je pense que l'auteur de WinRelais s'est fixé sur un truc qui n'a pas vraiment de caractère universel.
En revanche, ce dont on est sûr, c'est que chaque bornier à un nom et que chaque borne à l'intérieur d'un bornier à un numéro. Point barre.
Plus tard on pourra discuter sur les options de génération, par exemple "générer des bornes réserve", etc...

scorpio810 wrote:

Qet avec ces classes peut déjà connaitre les conducteurs branchés sur la borne et leurs numéros de fils.

Est-ce qu'il faudra aller jusqu'à connaître le label de l'appareil à l'autre extrémité du conducteur ?

Re: New floating dock is now ready, news colors, patterns, etc.

Si ça intéresse, j'ai mis à jour le fichier Libreoffice des borniers : si dans "Désignation" de la borne il y a du texte, genre : "terre", alors le numéro de borne est remplacé par le symbole de terre.

Post's attachments

Capture du 2015-07-16 09:10:34.png, 11.56 kb, 542 x 332
Capture du 2015-07-16 09:10:34.png 11.56 kb, 875 downloads since 2015-07-16 

Re: New floating dock is now ready, news colors, patterns, etc.

Envoie moi le, j’écraserai l'autre version sur le serveur de download.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

galexis wrote:

Si ça intéresse, j'ai mis à jour le fichier Libreoffice des borniers : si dans "Désignation" de la borne il y a du texte, genre : "terre", alors le numéro de borne est remplacé par le symbole de terre.

https://download.qelectrotech.org/qet/m … al_V02.ods

Post's attachments

Attachment icon essai borne1.qet 33.16 kb, 742 downloads since 2015-07-16 

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

58 (edited by galexis 2015-07-20 11:13:00)

Re: New floating dock is now ready, news colors, patterns, etc.

Bonjour,

j'ai regardé du côté de xmlstarlet. Voici où j'en suis.

J'ai écris un script bash pour extraire les information de bornes : iD des bornes de l'élément et numéro de conducteur, du projet QET.


Problèmes: je suis obligé de passer par 2 CSV. 1 pour récupérer le label et les numéro d'ID des bornes des élément et 1 pour récupérer la partie conducteur : numéro de conducteur. De plus je n'arrive pas à récupérer tous les iD des bornes de l'élément, seulement le premier iD.


Ensuite dans le fichier libreoffice: ajout de 2 sélecteurs de fichiers pour insérer les 2 csv généré par le script. Import des CSV et génération.


Sur les premiers essais cela fonctionne : ajout des numéros de conducteurs.

Post's attachments

Capture du 2015-07-20 10:49:23.png, 52.16 kb, 654 x 437
Capture du 2015-07-20 10:49:23.png 52.16 kb, 945 downloads since 2015-07-20 

59 (edited by galexis 2015-07-20 11:16:47)

Re: New floating dock is now ready, news colors, patterns, etc.

Ci joint le script bash (linux).
Je viens de passer 1/4 d'heure à essayer de mettre le code entre des balises mais à chaque fois cela m'efface le message complet ...)

Si vous avez des tuyaux pour amémiorer le script, je sis preneur : récupérer les iD qui manquent, et voir même ne créer qu'un seul fichier au lieu de 2....

Post's attachments

Attachment icon script_xml_essai 1.11 kb, 789 downloads since 2015-07-20 

Re: New floating dock is now ready, news colors, patterns, etc.

Pour les balises le mieux est de le faire direct dans l’éditeur en mode view source.

ton script bash

#!/bin/bash
 
#nécessite les paquets: zenity; xmlstarlet
 
 
 
{
 
projet=`zenity --title "Sélectionner le fichier projet QET" --file-selection --filename="./Bureau"`
 
 
 
if  [ $? != 0 ]; then # si fermeture
 
    exit 1
 
fi
 
[ $? -ne 0 ] && exit 2 # si annulation
 
}
 
 
 
 
 
{
 
dossier=`zenity --title "Sélectionner le dossier de destination" --file-selection --directory`
 
 
 
if  [ $? != 0 ]; then # si fermeture
 
    exit 1
 
fi
 
[ $? -ne 0 ] && exit 2 # si annulation
 
}
 
 
 
 
 
xmlstarlet sel -T -t -m /project/diagram/elements/element -s A:T:- "elementInformations" -v \
 
"concat(elementInformations/*[@name='label'], ';' ,@type, ';', terminals/terminal/@id, ';' , terminals/terminal/@orientation, ';' , terminals/terminal/@id, ';' , '2')" -n "$projet" > "$dossier/bornes.csv"
 
#problème pour récupérer le 2ème ID du symbole borne et son orientation(2)= répétition ID borne 1 et orientation forcé à 2
 
 
 
xmlstarlet sel -T -t -m /project/diagram/conductors/conductor -s A:N:- "@num" -v \
 
"concat(@num,';',@terminal1,';',@terminal2)" -n "$projet" > "$dossier/conducteurs.csv"
 
 
 
 
 
zenity --info --title="Fichier CSV créés" --height=100 --width=300 --text="Terminé !"
 
exit

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

galexis wrote:

Je viens de passer 1/4 d'heure à essayer de mettre le code entre des balises mais à chaque fois cela m'efface le message complet ...)

Mystère.. le clone du forum sur un autre serveur réagit pareil maintenant avec ces balises code .., message vidé, édition impossible sans perdre les données du post..nomicons/angry

J'ai testé sur ce clone plusieurs éditeurs WYSIWYG BBCode et avec les balises "code" le résultat n'est vraiment pas acceptable..!

Passe en mode view source, ajoutes tes balises code manuellement exemple code=bah, code=diff, code=xml, etc et envoie. N'oublie pas les [] et de fermer tes balises.
Un GeSHi Highlight est actif depuis longtemps sur le forum, je ne me rappelle même plus depuis quand je l'ai mis en place, c'est pour dire.. (Generic Syntax Highlighter permet de colorer syntaxiquement de nombreux langages informatiques).

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

Le forum vient d’être mis à jour, et le thème par défaut est maintenant Oxygen : The default Oxygen theme now supports responsive design. La navigation du forum sur tablette ou smartphone en sera bien plus agréable, 
vous pouvez quand même choisir dans votre profil le thème qui vous convient le mieux pour la navigation PC.
http://www.alsacreations.com/article/li … esign.html

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

OK.
J'avais remarqué aussi une fois que certains smileys ne fonctionnaient pas. Je testerais à l'occaz ...

Re: New floating dock is now ready, news colors, patterns, etc.

Les smileys comme tous plugins/styles/libs ajoutés sont des ensembles de briques, que tu rajoutes ensuite pour construire ton forum, suivant tes besoins, goûts. Ce n'est pas fournis d'emblée, et certaines briques s'assemblent avec plus ou moins de réussite .... parfois en mettant les mains dans [s]le cambouis[/s] les codes php.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

Scorpio,
en testant le script et le fichier libreoffice sur un projet réel, je me rends compte que les numéro d'ID des bornes deséléments ne sont pas unique dans le projet.
Peut-tu m'expliquer comment cela fonctionne ?
Merci.
Cordialement.

Re: New floating dock is now ready, news colors, patterns, etc.

Scorpio,
en testant le script et le fichier libreoffice sur un projet réel, je me rends compte que les numéro d'ID des bornes deséléments ne sont pas unique dans le projet.
Peut-tu m'expliquer comment cela fonctionne ?
Merci.
Cordialement.

Re: New floating dock is now ready, news colors, patterns, etc.

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.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

Je ne comprends pas : dans le fichier projet en XML, les conducteurs sont bien définit connecté entre 2 ID ? Les numéros d'UUID n'apparaissent pas dans la définition des conducteurs ?

Re: New floating dock is now ready, news colors, patterns, etc.

Alors en gros: nomicons/tongue
Chaque borne a son id unique par folio:
 

<terminals>
                    <terminal x="0" number="_" nameHidden="0" id="12" name="_" orientation="0" y="-6"/>
                    <terminal x="0" number="_" nameHidden="0" id="13" name="_" orientation="2" y="6"/>

chaque conducteur relie deux bornes:

<conductors>
            <conductor vertirotatetext="270" x="0" terminal1="0" type="multi" displaytext="1" num="17" terminal2="3" y="0" onetextperfolio="1" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="4" type="multi" displaytext="1" num="16" terminal2="9" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="10" type="multi" displaytext="1" num="15" terminal2="13" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="12" type="multi" displaytext="1" num="15" terminal2="15" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
        </conductors>

donc pour :

            <conductor vertirotatetext="270" x="0" terminal1="0" type="multi" displaytext="1" num="17" terminal2="3" y="0" onetextperfolio="1" numsize="7" horizrotatetext="0"/>

Ce conducteur relie la borne id "0" à celle ayant l'id "3" le type est multifilaire et le texte du conducteur est 17

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

L'attribution des id est donc par folio ? Je ne l'avais pas identifié : si tu prends le projet test pour le fichier libreoffice, les ID se suivent, sur n'importe quel folio où qu'il soit. Cela dépend peut-être de la grosseur du projet ?

Re: New floating dock is now ready, news colors, patterns, etc.

Attention galexis, je vois que vous parlez d'uuid et d'id, qui sont deux choses différentes.
Les ID des bornes, pas les éléments bornier, mais bien les trucs bleu et rouge qui servent à posée les conducteurs (je le précise pour que l'on parle bien de la même chose), servent comme Laurent l'a expliqué à savoir sur quelle bornes est relié un conducteur.
Cela sert uniquement quand on charge un projet depuis un fichier, en utilisation, on à d'autre moyen de le savoir.
Petit précision, les ID ne sont pas fixe d'une sauvegarde à l'autre. C'est à dire que tu peut sauvegarder ton projet, une borne se verra attribué l'ID 1. Tu ferme/ouvre le projet, travail dessus puis sauvegarde, cette même borne qui portait auparavant l'ID 1 peut tout à fait porter l'ID 32, car les ID sont attribué lors de la sauvegarde.
Pour finir, les ID sont bien crée par folio, donc sur un projet de 100 pages tu aura 100 ID 0 (1 par folio).

Pour les uuid cela n'a rien à voir avec les conducteur ou bornes.

Développeur QElectroTech

Re: New floating dock is now ready, news colors, patterns, etc.

Fais le test avec ton fichier "test" clone le folio 1 sur un nouveau folio, et regarde le XML:


 <element x="200" uuid="{2057f798-07e3-491d-8976-750a97d73404}" type="embed://import/10_electric/10_allpole/130_terminals&amp;terminal_strips/borne_continuite.elmt" orientation="0" y="150">
                <terminals>
                    <terminal x="0" number="_" nameHidden="0" id="26" name="_" orientation="0" y="-6"/>
                    <terminal x="0" number="_" nameHidden="0" id="27" name="_" orientation="2" y="6"/>
                </terminals>
                <inputs>
                    <input x="5" text="_" y="8"/>
                    <input x="5" text="_" y="-5"/>
                </inputs>
            </element>
        </elements>
        <conductors>
            <conductor vertirotatetext="270" x="0" terminal1="12" type="multi" displaytext="1" num="17" terminal2="15" y="0" onetextperfolio="1" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="16" type="multi" displaytext="1" num="16" terminal2="21" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="22" type="multi" displaytext="1" num="15" terminal2="25" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
            <conductor vertirotatetext="270" x="0" terminal1="24" type="multi" displaytext="1" num="15" terminal2="27" y="0" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
        </conductors>
    </diagram>
    <diagram displayAt="bottom" version="0.5" rows="8" folio="%id/%total" height="660" colsize="60" author="" filename="" date="null" displaycols="true" cols="17" rowsize="80" order="2" title="" displayrows="true">
        <defaultconductor vertirotatetext="270" type="multi" displaytext="1" num="_" onetextperfolio="0" numsize="7" horizrotatetext="0"/>
        <elements>
            <element x="200" uuid="{f393bd5f-e9cb-40c1-be37-a93fb6cea9d3}" type="embed://import/10_electric/10_allpole/130_terminals&amp;terminal_strips/borne_continuite.elmt" orientation="0" y="150">
                <terminals>
                    <terminal x="0" number="_" nameHidden="0" id="0" name="_" orientation="0" y="-6"/>
                    <terminal x="0" number="_" nameHidden="0" id="1" name="_" orientation="2" y="6"/>
                </terminals>
                <inputs>
                    <input x="5" text="_" y="8"/>
                    <input x="5" text="_" y="-5"/>
                </inputs>
                <elementInformations>
                    <elementInformation show="1" name="label"></elementInformation>
                    <elementInformation show="1" name="comment"></elementInformation>
                </elementInformations>
            </element>
            <element x="200" uuid="{5e90d3f7-1448-47f3-95e5-37dd6e5461a6}" type="embed://import/10_electric/10_allpole/130_terminals&amp;terminal_strips/borne_continuite.elmt" orientation="0" y="330">
                <terminals>
                    <terminal x="0" number="_" nameHidden="0" id="2" name="_" orientation="0" y="-6"/>
                    <terminal x="0" number="_" nameHidden="0" id="3" name="_" orientation="2" y="6"/>
                </terminals>

Sur chaque folio, l'index des id repartent à partir de zéro, et chaque folio contient la définition des conducteurs contenus dans ce folio.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

Effectivement, j'entrevois la complexité de la chose. D'autant que la position du folio indiqué dans la section diagram en xml, ne correspond pas forcément au méro réel du folio, puisque la position du sommaire ne semble pas prise en compte.

74 (edited by scorpio810 2015-07-29 05:41:00)

Re: New floating dock is now ready, news colors, patterns, etc.

galexis wrote:

Effectivement, j'entrevois la complexité de la chose. D'autant que la position du folio indiqué dans la section diagram en xml, ne correspond pas forcément au méro réel du folio, puisque la position du sommaire ne semble pas prise en compte.

Si, avec la variable folioSheetQuantity="2" en début de projet, tu sais que le projet contient un sommaire et qu'il est sur deux folios en position 2 et 3.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: New floating dock is now ready, news colors, patterns, etc.

Bonsoir,
cela vient de moi ou le curseur n'est plus mis automatiquement dans le champs label du dock lors de la sélection d'un élément ?
Cordialement.