Bonjour,
J'ai créé un modèle paramétrable de vis CHc.
La feuille de calcul renseignée avec les "Alias" fonctionne parfaitement.
Après réouverture du document, la mise en forme de la feuille de calcul est perdue, ainsi que tous les "Alias" (les cases ne sont plus jaunes, les fusions de cellules sont perdues, ainsi que les couleurs des écritures blanches sur fond noir).
Je suis obligé de renseigner à nouveau tous les Alias pour faire un nouveau modèle de vis.
Y a t'il un mode ou un processus d'enregistrement pour réutiliser le modèle ?
Merci d'avance pour la réponse.
Salutations.
Marc Dubaï
Spreadsheet
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
-
- Posts: 1
- Joined: Tue Apr 28, 2020 9:35 am
Re: Speadsheet
Transferé vers le forum Français.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
- freecadjam
- Veteran
- Posts: 1994
- Joined: Tue Jul 17, 2018 10:47 am
- Contact:
Re: Spreadsheet
il y a deux add-ons cinq macros à propos des alias, vous les utilisez déjà ? https://wiki.freecadweb.org/Macros_recipes/fr
Je n'ai pas de pratique assez poussée pour vous renseigner, je me résigne à nommer la cellule dans le formulaire, colonne A pour la désignation et colonne B pour les valeurs, ce que j'ai essayé par moi même sur les alias ne m'a pas convaincu, mais ils doivent être utiles pour la productivité je n'en doute pas après un bon apprentissage
Je n'ai pas de pratique assez poussée pour vous renseigner, je me résigne à nommer la cellule dans le formulaire, colonne A pour la désignation et colonne B pour les valeurs, ce que j'ai essayé par moi même sur les alias ne m'a pas convaincu, mais ils doivent être utiles pour la productivité je n'en doute pas après un bon apprentissage
Last edited by freecadjam on Fri May 01, 2020 6:32 am, edited 2 times in total.
Re: Spreadsheet
Bonjour,
Je suis assez surpris de vos problèmes avec Spreadsheet.
Bien qu'encore plutôt novice dans FreeCAD, j'utilise systématiquement les tableaux pour toute conception de pièce et assez souvent des tableaux en cascade (paramètres généraux, paramètres de la pièces A, paramètres de la pièce B, etc ...).
Même en version 0.19 j'ai peu de problèmes sauf en ce qui concerne le formatage et les couleurs qui peuvent être assez facilement perdus lors de modifications, je les réserve donc pour la fin, lorsque la pièce est stabilisée.
J'utilise systématiquement les alias qui sont utilisés dans toutes mes cotes selon le principe :
ALIAS (col. 1) VALEUR (col. 2) DESIGNATION (col. 3) (je fais un copier coller du nom d'alias en colonne 1 pour définir l'alias en colonne 2)
Ainsi il est assez aisé de retrouver le nom d'un alias et ce à quoi il sert ...
J'organise mes tableaux en 2 parties :
- Les paramètres utilisateurs en premier, qui ne sont que des valeurs dimensionnelles sans aucun calcul;
- Les paramètres calculés ensuite, faisant référence aux précédents, évitant des calculs dans les cotes des pièces.
Depuis mes premiers essais en version 0.17 je n'ai jamais eu de dysfonctionnement dus aux alias.
Je n'ai pas trouvé compliqué leur mise en place, peut-être pourrais-je répondre à des questions plus précises ...
Cordialement.
Je suis assez surpris de vos problèmes avec Spreadsheet.
Bien qu'encore plutôt novice dans FreeCAD, j'utilise systématiquement les tableaux pour toute conception de pièce et assez souvent des tableaux en cascade (paramètres généraux, paramètres de la pièces A, paramètres de la pièce B, etc ...).
Même en version 0.19 j'ai peu de problèmes sauf en ce qui concerne le formatage et les couleurs qui peuvent être assez facilement perdus lors de modifications, je les réserve donc pour la fin, lorsque la pièce est stabilisée.
J'utilise systématiquement les alias qui sont utilisés dans toutes mes cotes selon le principe :
ALIAS (col. 1) VALEUR (col. 2) DESIGNATION (col. 3) (je fais un copier coller du nom d'alias en colonne 1 pour définir l'alias en colonne 2)
Ainsi il est assez aisé de retrouver le nom d'un alias et ce à quoi il sert ...
J'organise mes tableaux en 2 parties :
- Les paramètres utilisateurs en premier, qui ne sont que des valeurs dimensionnelles sans aucun calcul;
- Les paramètres calculés ensuite, faisant référence aux précédents, évitant des calculs dans les cotes des pièces.
Depuis mes premiers essais en version 0.17 je n'ai jamais eu de dysfonctionnement dus aux alias.
Je n'ai pas trouvé compliqué leur mise en place, peut-être pourrais-je répondre à des questions plus précises ...
Cordialement.
Re: Spreadsheet
Pareil, j'utilise sans arrêt les allias. Sans problème. (V FreeCad 1.9)
J'ai créé une macro qui me simplifie énormément la vie pour créer ce allias (en réalité, openBrain sur ce forum m'a beaucoup beaucoup aidé encore merci !):
dans une colonne, j’écris la description de ce que c'est par exemple "diametreDeLa pièce"
Avant de lancer la macro, je sélectionne une ou des descriptions et la macro retire les blancs et met en majuscule la première lettre
ici : "DiametreDeLapièce"
puis remplace l'ancienne description par ça ("DiametreDeLapièce" ), puis crée un allias sur la cellule juste à droite mais avec une minuscule en première lettre.
la macro :
testé en version 1.9
J'ai créé une macro qui me simplifie énormément la vie pour créer ce allias (en réalité, openBrain sur ce forum m'a beaucoup beaucoup aidé encore merci !):
dans une colonne, j’écris la description de ce que c'est par exemple "diametreDeLa pièce"
Avant de lancer la macro, je sélectionne une ou des descriptions et la macro retire les blancs et met en majuscule la première lettre
ici : "DiametreDeLapièce"
puis remplace l'ancienne description par ça ("DiametreDeLapièce" ), puis crée un allias sur la cellule juste à droite mais avec une minuscule en première lettre.
la macro :
Code: Select all
# -*- coding: utf-8 -*-
### On fait les imports qui vont bien
import FreeCAD as App
import FreeCADGui as Gui
from PySide import QtGui
aw = Gui.getMainWindow().centralWidget().activeSubWindow() # On stocke la fenêtre active
sheet = App.ActiveDocument.getObjectsByLabel(aw.windowTitle()) # On essaye de trouver la feuille correspondant à la fenêtre à partir du nom de la fenêtre
if len(sheet) == 0 and aw.windowTitle()[-3:] == '[*]': # Si aucune feuille correspondante n'a été trouvée...
# ... On sait que FreeCAD ajoute au nom de la fenêtre les caractères "[*]" quand la feuille a été modifiée ...
# ... et seulement dans le cas ou la feuille n'a jamais été renommée (!!!!!) ...
sheet = App.ActiveDocument.getObjectsByLabel(aw.windowTitle()[:-3]) # ... Donc on réessaye sans les 3 derniers caractères
if len(sheet) != 1: # Si aucune feuille n'a été trouvée (ou plusieurs feuilles ont été trouvées)
App.Console.PrintError("Can't find sheet : {}\n".format(aw.windowTitle())) # On imprime une erreur dans la rapport
else:
sheet = sheet[0] # La feuille est la seule qui a été trouvée par la recherche précédente
sel_items = aw.widget().findChild(QtGui.QTableView).selectedIndexes() # On récupère la liste complète de toutes les cellules sélectionnées
proceed = True # Un petit drapeau qui indiquera si on doit vraiment procéder
for item in sel_items: # On parcourt les cellules sélectionnées
if item.column() != sel_items[0].column(): # Si une des cellules n'est pas dans la même colonne que la première
### On affiche un dialogue demandant à l'utilisateur s'il est sûr de son coup
if QtGui.QMessageBox.warning(Gui.getMainWindow(),
"Warning","""Selected cells aren't all in the same column.
Proceed anyway ?""",
QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel) == QtGui.QMessageBox.Cancel: # Si l'utilisateur annule
proceed = False # On ne procèdera pas aux changements
break # Pas la peine de continuer à analyser les colonnes à partir du moment ou au moins 2 ne sont pas sur la même colonne
if proceed: # Si on doit continuer à procéder
### On définit une fonction qui renverra l'identifiant de la cellule à partir de ses numéros de ligne (r) et colonne (c)
### Les numéros commencent à 0 pour la première ligne/colonne
### On gère correctement les colonnes avec un identifiant à 2 lettres
cellName = lambda r,c:'{}{}{}'.format(chr(c//26 + 64) if c//26 > 0 else '', chr(c%26+65), r+1)
for item in sel_items: # On parcourt les cellules sélectionnées
cell = cellName(item.row(),item.column()) # On récupère l'identifiant de la cellule
next_cell = cellName(item.row(), item.column()+1) # On récupère l'identifiant de la cellule voisine à droite
activeCellContenu=sheet.getContents(cell)
activeCellContenu=activeCellContenu[:1].upper() + activeCellContenu[1:] # pour mettre ne majuscule la première letre
activeCellContenu=activeCellContenu.replace(' ','')
sheet.set(cell, activeCellContenu)
alias = sheet.getContents(cell)[:1].lower() + sheet.getContents(cell)[1:] # On génère l'alias à la cellule de droite à partir du contenu de la cellule
# Sur la ligne du dessus il y a une astuce. On utilise "[:1]" au lieu de "[0]", car ce dernier plante en cas de chaine vide (ce qui arrive si la cellule est vide)
try: # Bloc try pour récupérer les erreurs
sheet.setAlias(next_cell, alias) # On attribue l'alias à la cellule voisine de droite
except ValueError: # Si une erreur "ValueError" est déclenchée (ce qui arrive quand l'alias n'est pas valide)
App.Console.PrintWarning("Can't set alias for cell {} : {} isn't valid\n".format(next_cell, alias)) # On prévient l'utilisateur dans le rapport
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
- freecadjam
- Veteran
- Posts: 1994
- Joined: Tue Jul 17, 2018 10:47 am
- Contact:
Re: Spreadsheet
oui 2cv001 j'ai vu ce post https://forum.freecadweb.org/viewtopic. ... 9c2c8c6c36 et en le lisant je me disais que je connais ce type de transformation dans la fabrication de l'adresse web d'une page à partir du titre de la page dans le programme Google Sites, j'ignore comment sont codés les programmes Google Sites et si ce serait utilisable. Dans leurs programme, le titre est transformé en minuscules, certains espaces sont remplacés par des tirets d'autres par des coller et tous les caractères spéciaux sont "amoindris" probablement pour respecter un format adresse web
Re: Spreadsheet
Effectivement, je viens de voir qu'il y a une macro qui fait en gros pareil que la mienne. Cela dit je ne regrette pas de l'avoir faite car ainsi j'apprendsfreecadjam wrote: ↑Wed Apr 29, 2020 8:40 pm il y a deux add-ons cinq macros à propos des alias, vous les utilisez déjà ? https://wiki.freecadweb.org/Macros_recipes/fr
Je n'ai pas de pratique assez poussée pour vous renseigner, je me résigne à nommer la cellule dans le formulaire, colonne A pour la désignation et colonne B pour les valeurs, ce que j'ai essayé par moi même sur les alias ne m'a pas convaincu, mais ils doivent être utiles pour la productivité je n'en doute pas après un bon apprentissage
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr