realthunder/FreeCAD_assembly3

Reference Parts/Bodies/etc by folder path to better use "Allow duplicate object labels in one document"

Closed this issue · 1 comments

I had the bright idea to use folders/parts to organize bodies according to their purpose in an assembly. I want to reference those parts including their subfolders so that I can have, for example

- left side
| - upper member
| - lower member
- right side
| - upper member
| - lower member

When I then try to reference these parts using their full paths, e.g. <<left side>>.<<upper member>>.<<first pad>>.length, so I can then also reference <<right side>>.<<upper member>>.<<first pad>>.length, I get the following error

10:05:45  <Spreadsheet> Cell.cpp(717): car_data#Spreadsheet003.A1: Non geometry subname reference must end with '.'
Or use '_shape' to access the geometry reference,
<<differential>>.<<$diff right side.$drive gear right.$driveSplineRight>>._shape
 in '<<car.model>>#<<differential>>.<<$diff right side.$drive gear right.$driveSplineRight>>.dw'

When I type the above formula into a spreadsheet cell, however, I am able to tab-complete every reference in it, so it appears that at some point FreeCAD is able to follow it.

I don't currently have any objects with the same labels, as I wanted to do some testing before potentially messing up my references.

One has to reference the _shape property, and then access the shape's properties from there.

e.g. <<car.model>>#<<differential>>.<<$diff right side.$drive gear right.$driveSplineRight>>._shape.dw