I would like to implement 'User Coordinate Spaces' in Blender and would like feedback on the idea and workflow.
The basic idea is to be able to define new coordinate spaces (like in Transform Orientations) and use that as if it is the world. It would affect:
- the grid (so it is visible what is the working coordinate system)
- the numpad view navigation, home key and all other view commands
- transform system (the axis locking are the axes of the selected UCS)
- walk and fly modes
- all other operators who use the Global transform would be using instead the UCS
I would propose to make a new list of coordinate spaces that is attached to the scene.
This list would have the 'World' coordinate space as predefined default and would hold all the new user defined coordinate spaces.
The user could define new spaces that are aligned with objects or in some useful alignment of the scene and switch to them for viewing and editing. This would be very useful to edit an object in place or to model something as in this example image.
The feature is opt-in, the default space is the 'world' and if no new space is created and selected everything will work the same as now.
Left to discuss is:
- a good interface to define a new coordinate space (easy positioning: align to object, view, face.. and wiggly widgets from antonis to view and edit the result?)
- the interface to select and manage existing spaces (UIList, rename, modify)
- quick switching of spaces
- possibility of having also automatic UCSs in local view or depending on data selection. Example: have a 'local' predefined UCS that will mean the local space of the selected object without the need to setup the space previously. This can be tested and better discussed *after* doing all the rest.