Jump to content

Macro Alias For Table For Object

From FreeCAD Documentation
This page is a translated version of the page Macro Alias For Table For Object and the translation is 100% complete.

Macro Alias For Table For Object

Description
Cette macro crée automatiquement des alias dans un tableau bidimensionnel en utilisant les noms des lignes et des colonnes.

Une deuxième fonction permet de créer un lien entre une cellule et une valeur de propriété d'un objet.
Pour pouvoir utiliser cette fonction, il suffit de placer le nom de l'objet concerné dans la colonne et le nom de la propriété dans la ligne.

Version macro : beta
Date dernière modification : 2024-02-22
Version FreeCAD : Toutes
Auteur: 2cv001

Auteur
2cv001
Téléchargement
Liens
Version Macro
beta
Dernière modification
2024-02-22
Version(s) FreeCAD
Toutes
Raccourci clavier
None
Voir aussi
None

Description

Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro


# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.

from PySide import QtGui, QtCore

diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
    "Information",
    "This macro must be downloaded from this link\n"
    "\n"
    "https://raw.githubusercontent.com/2cv001/Alias_For_Table_For_Object.FCMacro/refs/heads/main/Alias_For_Table_For_Object.FCMacro" + "\n"
    "\n"
    "Quit this window to access the download page")

diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()

import webbrowser 
webbrowser.open("https://raw.githubusercontent.com/2cv001/Alias_For_Table_For_Object.FCMacro/refs/heads/main/Alias_For_Table_For_Object.FCMacro")

Cette macro crée automatiquement des alias dans un tableau bidimensionnel en utilisant les noms des lignes et des colonnes. Une deuxième fonction permet de créer un lien entre une cellule et une valeur de propriété d'un objet. Pour pouvoir utiliser cette fonction, il suffit de placer le nom de l'objet concerné dans la colonne et le nom de la propriété dans la ligne.

La syntaxe des alias créé par la macro est la suivante : LabelObject_Property.

La macro peut également remplir automatiquement les valeurs des propriétés des objets (comme le corps, l'esquisse, etc.) sur la base de ces alias.

Utilisation

Création automatique d'alias

Remplissez une feuille de calcul avec une colonne contenant des étiquettes d'objets (corps, esquisse, protrusion, ...) et une ligne correspondant aux propriétés. Dans le code, vous trouverez la correspondance entre les propriétés et ce qu'il faut mettre dans cette ligne. Voir dico= ci-dessous.

Par exemple, utilisez posy pour la propriété Placement.Base.y.

Sélectionnez les cellules du tableau avec la colonne des étiquettes d'objet et la ligne des propriétés, puis exécutez la macro et cochez la première option :

La macro créera des alias avec la syntaxe suivante : LabelObjet_Propriété. Par exemple : BodyRect_posy.

Partie du dico (vérifiez le code de la macro pour le dico complet) :

dico={
        "posx" : "Placement.Base.x",
        "posy" : "Placement.Base.y",
        "posz" : "Placement.Base.z",
        "posX" : "Placement.Base.x",
        "posY" : "Placement.Base.y",
        "posZ" : "Placement.Base.z",
        "angle": "Placement.Rotation.Angle",
        "ang"  : "Placement.Rotation.Angle",
        "axisx": "Placement.Rotation.Axis.x",
        "axisy": "Placement.Rotation.Axis.y",       
        "axisz": "Placement.Rotation.Axis.z", 
        "axeX" : "Placement.Rotation.Axis.x",
        "axeY" : "Placement.Rotation.Axis.y",       
        "axeZ" : "Placement.Rotation.Axis.z", 
        "attachementX" : "AttachmentOffset.Base.x",
        "attachementY" : "AttachmentOffset.Base.y",
        "attachementZ" : "AttachmentOffset.Base.z",
        "attachementAngle" : "AttachmentOffset.Rotation.Angle",
        "attachementAxisX" : "AttachmentOffset.Rotation.Axis.x",
        "attachementAxisY" : "AttachmentOffset.Rotation.Axis.y",        
        "attachementAxisZ" : "AttachmentOffset.Rotation.Axis.z",
        "Length" : "Length",
        "Length2": "Length2",
        "Radius" : "Radius",
        "Height" : "Height",
        "FirstAngle" : "FirstAngle",
        "SecondAngle": "SecondAngle",
        "Angle1" : "Angle1",
        "Angle2" : "Angle2",
        "Angle3" : "Angle3",

Valeurs automatiques dans les propriétés

Sélectionnez certaines cellules du tableau avec les valeurs et les alias créés précédemment. Exécutez la macro et sélectionnez la deuxième option (les deux options peuvent être sélectionnées en même temps pour les enchaîner).

La macro attribuera des valeurs aux propriétés via une expression faisant référence à l'alias des cellules. Désormais, si vous changez une valeur dans le tableau, la valeur de la propriété changera et tout sera recalculé.


Exemples

Protrusion

Contraintes d'esquisse

Donnez un nom à la contrainte (ici : Width) (Faites attention à la casse.) Ajoutez une colonne avec le nom de cette contrainte dans la ligne des propriétés, et ajoutez une ligne avec l'étiquette de l'esquisse (ici : Sketch). Exécutez la macro.

Crédits

Cette macro a été développée sur la base d'une idée suggérée par Esprit. Un grand merci également à lui pour les nombreuses idées et tests qu'il a réalisés.

Informations sur les versions

ver 25/02/2024 par 2cv001 Alias_For_Table_For_Object.FCMacro

Code