laurent@Toshiba:~/Documents$ python3 QET_TB_maker_v0.2.py

<< Terminal Block maker for QET 0.2 - by Raul Roda >>

Remember the next conditions:
 * Terminal elements must be 'terminal' as type in the Element Editor.
 * If terminal elements has more than one textfield, the first one is considered.
 * Name of terminals must be in form 'x:a'.  x = Terminal Block name; a = Terminal name.

Path to place created QET Terminal Blocks  [/home/laurent/.qet/elements/temp_tb/]:  

Select recent project number or type full path  []: /home/laurent/Documents/12.qet

Calculating...


Done.

laurent@Toshiba:~/Documents$

But temp_tb folder is empty

@Galexis : t'as un mini projet à envoyer pour tester?

5,477

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Nuri, je te dégrossi vite fait une partie du code, pour que tu puisses comprendre .

https://svnweb.tuxfamily.org/filedetail … p;peg=4627




qreal DiagramFolioList::colWidths[8] = {0.05, 0.05, 0.45, 0.10, 0.10, 0.05, 0.10, 0.10};


Création du tableau et largeur de chacune des 8 colonnes.




int cols = 8;//colWidths.size();



fillRow(p, row_rect, diagram_list[i] -> border_and_titleblock.author(),


diagram_list[i] -> title(),


QString::number(diagram_list[i] ->folioIndex()+1),


diagram_list[i] -> border_and_titleblock.folio(),


diagram_list[i] -> border_and_titleblock.machine(),


diagram_list[i] -> border_and_titleblock.locmach(),


diagram_list[i] -> border_and_titleblock.indexrev(),


diagram_list[i] -> border_and_titleblock.date().toString(Qt::SystemLocaleShortDate));


Nos constantes dont on va rechercher les valeurs.





// reduce the font size if the text entry is long


if (origFontMetrics.width(folio) > 0.95*colWidths[0]*row_rect.width())


workingFont.setPointSizeF(origFontSize * 0.95*colWidths[0]*row_rect.width() / origFontMetrics.width(folio));


else


workingFont.setPointSizeF(origFontSize);


qp -> setFont(workingFont);


qp -> drawText(QRectF(x, y, colWidths[0]*row_rect.width(), row_rect.height()), Qt::AlignCenter, folio);


x += colWidths[0]*row_rect.width();


Pour chaque constante tu affiches ou réduit la taille de police, entre les [] tu affectes ta constante à une colonne, ici c'est la constante folio qu'on affiche dans la colonne 1 (car on commence toujours à zéro!)

qp->setFont(QETApp::diagramTextsFont(13));

Taille de police d'origine.



qreal sum = 0;


for (int i = 0; i < 8; i++ )


sum += colWidths[i];


if ( sum < 0.99 || sum > 1.01 ) {


qDebug() << "Invalid input: Column widths do not sum to 1";


return;


}


On ajoute un controle pour que la largeur des colonnes soient compris dans cette fourchette, et donc quelles ne dépassent pas du tableau.




int startDiagram = id * 29;


for (int i = startDiagram; i < startDiagram+29 && i < diagram_list.size(); ++i) {


Chaque tableau contiendra 29 lignes, si le nombre de folios dépassent ce nombre, tu crées autant de tableaux.




--- trunk/sources/qetproject.cpp 2016-08-10 16:48:18 UTC (rev 4621)
+++ trunk/sources/qetproject.cpp 2016-08-11 18:32:08 UTC (rev 4622)
@@ -1039,7 +1039,7 @@
  setFolioSheetsQuantity(0);
 
  int diagCount = diagrams().size();
- for (int i = 0; i <= diagCount/58; i++) {
+ for (int i = 0; i <= diagCount/29; i++) {
 
  //create new diagram
  Diagram *diagram_folio_list = new DiagramFolioList(this);

@Galexis python3 !

Thank you Unalcalde,

you could send a example project for try or debug?


laurent@Toshiba:~/Documents$ python3 QET_TB_maker_v0.2.py 12.qet  
 
 
<< Terminal Block maker for QET 0.2 - by Raul Roda >>
 
 
 
Remember the next conditions:
 
 * Terminal elements must be 'terminal' as type in the Element Editor.
 
 * If terminal elements has more than one textfield, the first one is considered.
 
 * Name of terminals must be in form 'x:a'.  x = Terminal Block name; a = Terminal name.
 
 
 
Path to place created QET Terminal Blocks  [/home/laurent/.qet/elements/temp_tb/]:  
 
 
Select recent project number or type full path  []:  
 
 
Calculating...
 
Traceback (most recent call last):
 
 File "QET_TB_maker_v0.2.py", line 386, in <module>
 
   qet_tree = etree.parse(sQETProjectFile)   
 File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 1184, in parse
 
   tree.parse(source, parser)
 
 File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 585, in parse
 
   source = open(source, "rb")
 
FileNotFoundError: [Errno 2] No such file or directory: ''

For Gnu/linux add home user path to qet element and create temp_tb folder if isn't exist.




--- QET_TB_maker.py    2016-08-14 16:02:26.208878660 +0200
+++ QET_TB_maker.py    2016-08-14 18:31:58.000000000 +0200
@@ -8,7 +8,11 @@
 import xml.etree.ElementTree as etree
 
 ########## GLOBAL CONSTANTS
-USER_COLLECTION_PATH="/home/raul/.qet/elements/temp_tb/" #path to create terminal blocks elements
+
+USER_COLLECTION_PATH= os.environ['HOME'] + '/.qet/elements/temp_tb/' #path to create terminal blocks elements
+if not os.path.exists(USER_COLLECTION_PATH):
+    os.makedirs(USER_COLLECTION_PATH)
+
 TB_BLOCKS_IN_A_FOLIO = 50
 TB_HEAD_WIDTH = 40
 TB_HEAD_UNION_HEIGHT = 45



For MS Windows :
http://stackoverflow.com/questions/2176 … ory-python

5,481

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Nuri wrote:

ben...euh...non, c'était vraiment du premier degré, je me moquais pas !
Ce que j'avais compris, c'est que QET interprète la variable %loc comme étant la concaténation de %l (lettre de la ligne) et des lettres oc.
Donc avec la variable %locmach, on devrait avoir le même problème: %l + ocmach.

Ces propriétés de cartouche ne fonctionnent pas dans le dock de num de Davi, je me doutais un peu qu'en l'appelant aussi %loc, ça aurait pu prêter à confusion avec la variable autonum de davi, voila.

5,482

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Nuri: pas la peine de ré inventer la roue. nomicons/smile


Le code de diagramfoliolist fait déjà très bien le travail, il suffit de remplacer les constantes définies dans le code (regarde mes patch nomicons/wink ) par des variables appelées depuis la config de QET pour rendre le sommaire entièrement dynamique :

Dans la config de QET l'utilisateur pourrait sélectionner dans une liste les entêtes de chaque de colonne qu'il veut (ID, Folio, titre, installation, location, auteur, date, etc ), leur ordre dans le tableau, et définir la largeur de chacune d'entre elle.

unalcalde wrote:

Hi, edit the QET_TB_maker.py and write the path where are your QET collection in the line started by USER_COLLECTION_PATH. Normaly will be something like "/home/<you user name here>/.qet/elements/<folder where terminals blocks will save>/". Don't forget to write de last / symbol !!

Hello Unalcalde,

on UNIX System you could change your command line in the script "/home/<you user name here>/.qet/elements/"

by


~/.qet/elements/


On MS Windows, with installer is located in c:\users\user_name\AppData\Roaming\qet\elements.
To try :


%USERPROFILE%\AppData\Roaming\qet\elements\

Or

%APPDATA%\qet\elements\

With the ReadyToUse version is located on the folder  "conf\elements\" where ReadyToUse is (USB drive or other) .

http://stackoverflow.com/questions/1854 … -in-python
http://stackoverflow.com/questions/4719 … ning-under

Laurent

5,484

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Mouahaha, pas joli de se moquer de Galexis, hein Nuri. nomicons/tongue

Çà devrait être corrigé mardi par Joshua, voila. nomicons/smile

Clair, ça fait fait un joli crash, uhuhu !
Vraiment pas le temps de regarder ça ce W.E, peut-être Joshua?

5,487

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Clair, perso je n'ai pas d'idée sur comment m'y prendre, c'est peut-être un travail pour rdsivd?

5,488

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

galexis wrote:

Question: un sommaire ou une nomenclature n'est pas en quelques sorte un cartouche ? Ne pourrait-on pas imaginer dériver les cartouches pour réaliser ces fonctions ?

Je ne pense pas, mais par contre le code du sommaire pourrait servir pour intégrer une nomenclature directement dans le projet.
Mais comme Nuri là signalé, chacun voulant des représentations différentes ...

5,489

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Revision: 4626
Author:   scorpio810
Date:     2016-08-12 13:32:56 +0200 (Fri, 12 Aug 2016)
Log Message:
-----------
Titleblock properties rename property %loc to %locmach

5,490

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Normal, tu as du rajouter loc = Doc dans l'onglet champs personnalisées.
Il est clair que j'aurai du nommer cette nouvelle variable autrement que %loc, ça peux prêter à confusion.

Et comme dit plus haut, ces nouvelles variables ne peuvent être appelées pour nommer des labels éléments (pour l'instant. A voir avec Davi si ça vous intéressent ou pas.).
Comme ces autres variables %author, %filename, etc, ces nouvelles propriétés de cartouche ne fonctionnent pas dans les formules de label éléments.



Merci pour vos remarques, suggestions, il est encore temps de revenir en arrière et faire un revert ...

Bonjour,

tu n'as plus besoin de faire de cette façon, copie directement ton élément du premier projet vers le second.
Tu peux maintenant copier un folio entier ou une sélection d'un projet dans un autre.

5,492

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Petite remarque, ces nouvelles propriétés de cartouche ne peuvent pas être appelées comme variables dans l'autonum de Davi pour la numérotation des Eléments, ce qui peux être un plus, ou pas !

5,493

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Exact, corrigé.
Merci.

5,494

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

galexis wrote:

- 1 nombre limité de colonne (5 par exemple) avec en tête les 5 derniers indices (A, B, C, D, E). Ensuite, pour chaque folio, 1 croix dans chaque colonne d'indice qui concerne le folio.


nuri wrote:

On a eu tellement de modifs dans la phase de conception qu'il n'y avait pas assez de lettres dans l'alphabet. On aurait pu rajouter l'alphabet grec, ca aurait pas suffit...

Voila pourquoi j'ai abandonné l'idée d'un combo avec une liste A, B, C, D, E pour les indices de révisions. nomicons/getlost

5,495

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

J'ai oublié de préciser, qu'on peut remplir ces nouvelles propriétés du ou des cartouches sans avoir besoin d'un cartouche spécifique modifié avec ces nouvelles variables, ce ne sera pas affiché dans le cartouche comme par exemple avec ceux fournis, mais sera enregistré et listé dans les pages sommaire ce qui peut-être très intéressant suivant les besoins.
Exemple : je veux que le folio ID 15 contienne l'indice de révision D, mais que ça n'apparaisse pas sur son cartouche.

5,496

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

[mode mec chiant = ON]
selon les docs à réaliser, les clients, le type d'industrie, etc... le sommaire sera amené à avoir différentes formes : type, nombre, largeur et ordre des colonnes (même problème avec les nomenclatures, chacun veut son truc à lui).
Le top, ce serait de pouvoir définir soi-même ces paramètres dans les propriétés DU PROJET.
[mode mec chiant = OFF]
mais ca complique sérieusement le truc, je suppose...

Si tu veux t'y coller, y a pas de soucis. nomicons/grin

On en parlait justement hier de ça avec Joshua sur notre canal IRC, il est vrai que ce serait le top comme tu dis de pouvoir définir soi-même tous ces paramètres : forme et taille du ou des tableaux, le nombre de colonnes, etc, mais je pense que tu risques d'attendre un bon moment .. car, oui ça va compliquer pas mal le code et demander un travail conséquent, une usine à gaz en sorte......


Revision: 4622
Author:   scorpio810
Date:     2016-08-11 20:32:08 +0200 (Thu, 11 Aug 2016)
Log Message:
-----------
Refresh diagram folio list, add new fields titleblock properties

5,497

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

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

Si ça vous convient, je peux envoyer les changements sur le Subversion.

5,498

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Encore quelques retouches, mais ça devrait le faire, entre soleil, baignade et un peu de code au frais. nomicons/tongue


5,499

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

Voila ce que ça pourrait donner !
Exemple vidéo, il va de soit qu'il reste encore le sommaire à modifier et à ajouter les nouvelles colonnes et le code pour lire ces nouvelles variables, rien de bien compliqué.
Dans l’éditeur de cartouche sur mon cartouche d'exemple, j'ai ajouté 2 cellules avec comme variables :%machine et %loc.


5,500

(113 replies, posted in FR : Aide, suggestions, discussions, ...)

@Nuri :
C'etais juste une maquette pour démontrer avec une courte vidéo, ce que j'expliquai plus haut : enregistrement des nouvelles valeurs du sommaire, ce qui peut-être fait assez facilement sans de très grands travaux dans le code.

Si j'ai bien compris, "machine" servira a stocker l'information =, n'est-ce pas ?

Oui, il est après facile de lire cette information a fin d'écrire son contenue dans le sommaire avec une nouvelle colonne "machine" ou autre.