Macro Alias For Table For Object

From FreeCAD Documentation
Other languages:

Generic macro icon. Create your personal icon with the same name of the macro Macro Alias For Table For Object

Description
This macro automatically creates aliases in a two-dimensional table using the names of the rows and columns.

A second function can create a link between a cell and a property value in an object.
To be able to use this function, you just have to place the name of the relevant object in the column and the name of the property in the row.

Macro version: beta
Last modified: 2024-02-22
FreeCAD version: All
Author: 2cv001

Author
2cv001
Download
Links
Macro Version
beta
Date last modified
2024-02-22
FreeCAD Version(s)
All
Default shortcut
None
See also
None

Description

This macro automatically creates aliases in a two-dimensional table using the names of the rows and columns. A second function can create a link between a cell and a property value of an object. To be able to use this function, you just have to place the name of the relevant object in the column and the name of the property in the row.

The syntax for the alias created by the macro is: LabelObject_Property.

The macro can also automatically fill property values of objects (such as body, sketch, etc.) based on these aliases.

Usage

Automatic alias creation

Fill a spreadsheet with a column containing object labels (Body, sketch, Pad, ...) and a row corresponding to properties. In the code you will find the correspondence between the properties and what to put in this row. See dico= below.

For example, use posy for property Placement.Base.y.

Select the cells in the table with the object labels column and properties row, and then run the Macro and check the first option:

The macro will create aliases with this syntax: LabelObject_Property. For instance: BodyRect_posy.

Part of the dico (check the code of the macro for the full dico):

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

Automatic values in properties

Select some cells in the table with values and aliases created previously. Run the macro and select the second option (Both options can be selected at the same time to chain them together.)

The macro will assign values to the properties via an expression referencing the alias of the cells. From now on, if you change a value in the table, the property value will change and everything will be recalculated.


Examples

Pad

Sketch constraints

Give a name to the constraint (here: Width) (Pay attention to the case.) Add a column with this constraint name in the properties row, and add a row with the label of the Sketch (here: Sketch). Run the macro.

Credits

This macro was developed based on an idea suggested by Esprit. Also, many thanks to him for the numerous ideas and tests he has carried out.

Version information

ver 25/02/224 by 2cv001 Alias_For_Table_For_Object.FCMacro

Code