Having used FreeCAD 0.18 to fairly comprehensively CAD my bathroom, I have come across at least three issues for which I'd like to propose enhancements. It's entirely possible that some/all of these are possible but even if they are, the usability is impenetrable to me.
- When I want to tile something (ceramic tiles), I created a prototype tile, copied it and then created a rectangular array, separating the tiles by the grouting distance. There are several shortcomings
- The array of tiles (like the real thing), is highly likely to extend beyond the boundaries of the surface, particularly for non rectangular shapes, such as a floor - I suggest being able to use a shape that shares the tiled plane, as a clipping mask for the array.
- The array should include and visually differentiate the original prototype item being cloned in the array - modifications to that original should be propagated across the array.
- Options, such as space between (in x, y or z dimensions) could be specified as a fixed, proportional or calculated value, so that the recalc on the mod of the original item can be achieved dynamically.
- The array of items should include a relative offset or a means to centre a space or an item relative to another shape in one or more of the x, y and z dimensions) - like tiling a bathroom.
- 3D arrays. This may already be available.
- When creating or adding/importing an item, I really want to be able to snap it to another item
- This leads me to the origin. I really need to be able to specify an item's origin and it should be easy to specify it in terms of an intersection, centre of a selected edge, centre of gravity, a universal drawing origin, another item's origin (particularly useful for an assembly, I think) or presumably a bunch of others.
- An ability to programatically rationalise the various different origins in an assembly or group, to share a single origin. If I construct an engine block, for example, I should be able to assign a common origin to a group of primitives, while I'm working on them as a sub-part of the block and do that for all the groups but at the end consolidate the origin for the whole engine block