Page MenuHome

Add Object Tools Todo
Closed, ResolvedPublicDESIGN

Authored By
William Reynish (billreynish)
Oct 14 2018, 7:41 PM
Tokens
"Cup of Joe" token, awarded by StroBlend."Love" token, awarded by marcusferracin."Like" token, awarded by hitrpr."Love" token, awarded by brilliant_ape."Burninate" token, awarded by Xlindvain."Like" token, awarded by Fracture128."Love" token, awarded by Brandon777."Love" token, awarded by Kickflipkid687."Love" token, awarded by LeoSch."Burninate" token, awarded by Dir-Surya."Love" token, awarded by brezdo."Love" token, awarded by realeyez."Love" token, awarded by BKNOWLES."Burninate" token, awarded by AnityEx."100" token, awarded by Frozen_Death_Knight."Love" token, awarded by Shimoon."Love" token, awarded by Draise."Love" token, awarded by zeirus."Party Time" token, awarded by wilBr."Love" token, awarded by Debuk."Love" token, awarded by lopoIsaac."Love" token, awarded by MetinSeven."Love" token, awarded by andruxa696."Mountain of Wealth" token, awarded by duarteframos."Like" token, awarded by Constantina32."Like" token, awarded by Leul."Love" token, awarded by jfmatheu."Love" token, awarded by Schiette."Love" token, awarded by jc4d."Love" token, awarded by CandleComet."Yellow Medal" token, awarded by amonpaike."Love" token, awarded by xrg."Love" token, awarded by Okavango."Love" token, awarded by xdanic."Love" token, awarded by szap."Yellow Medal" token, awarded by jbakker.

Description

Add Object tool

A new set of tools for adding objects in a visual and interactive way using the new active tools system in Blender 2.8.

General behaviour

  • In either Object mode or Edit mode, users can use the Add Primitive tools, found in the toolbar:

  • Once the tool is active, a set of Tool Settings appear in the top bar & tool settings:

  • The user can now drag anywhere in the viewport to drag out an object. For the Cube, Cone, Cylinder and Torus, there is a two step process: You drag once to define the base, and when you let go, a secondary mouse movement defines the height.

From here, gizmos allow user to adjust the base and height of the primitives using these handles:

Tool Settings

  • Type
    • Some of the primitives have variants, such as UV Sphere/Icosphere/Quadsphere
  • Spawn From
    • Surface (Default) This projects the mouse cursor onto the geometry and uses it's position. If there is no geometry, fall back to world grid.
    • 3D Cursor This will use the location of the 3D cursor, ignoring the mouse cursor.
    • Axis Plane This projects the mouse cursor onto a plane defined by the current 3D orientation and axis.
  • Axis
    • [+X, +Y, +Z, -X, -Y, -Z]. All Orientations have an axis enum, except for instances we think it doesn't make sense to show it - eg cube.
  • Origin
    • Center The object scales from the center of the geometry
    • Base The object scales from the base of the geometry
  • Segments
    • X & Y Segments of the next added object

Notes

  • The orientation will follow the Scene Orientation setting. If the scene orientation is set to Normal, objects will orient themselves from the normal of the surface you drag on, but if it's set to Scene, they will always be oriented according to the scene orientation, or example.
  • For the 3D Cursor Axis Plane position feature, we may want to investigate a plane preview, and snapping abilities - a reference for how it might work:// https://www.youtube.com/watch?v=qbK9al4pMbE
  • Ctrl snaps the size to increments
  • Holding Alt while dragging works as a shortcut toggle the origin (Base vs Center)

Animated example


(In this case, the Orientation is set to Normal and the Placement is set to Surface)

Revisions and Commits

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

After you've modified your object, will these gizmos disappear or will they show up on every object once the tool is enabled? I feel like this'd be better for modifiying other shapes fast.

Campbell Barton (campbellbarton) renamed this task from Create Object Tools Todo to Add Object Tools Todo.Jan 23 2020, 9:27 AM
Campbell Barton (campbellbarton) updated the task description. (Show Details)

I saw this in the master. so what will happen to the blueprint tool be a seperate tool because it has more functionality?.

Hey, so awesome feature but may I request grid snapping? Obviously this is a WIP but I think grid snapping, or any snapping, would be perfect. Another thing, would it be possible for dimensions to be shown as you draw something?


The cone has an icon like a cube.
There is no choice to create a plane.
There is no choice to create Torus.
In orthogonal mode, nothing is created at all.

This is a very nice addition to the modeling tools. Great work! @Campbell Barton (campbellbarton) asked me to try it out and write some feedback, so here we go. I've tried to keep suggestions to fixes that I assume are fairly easy to implement. More complicated features are noted with "IMPORTANT".


UI changes

There are already settings for origin, drawing plane etc from grease pencil. We should use these settings as much as possible in order to have consistency in the UI of different tools.


Drawing plane

Change menu name from Orientation to Drawing plane

Options:

  • Surface
  • View
  • Cursor
  • Closest view plane

--------separator----------

  • Front (X-Z)
  • Side (Y-Z)
  • Top (X-Y)

This is mostly the same UI name that grease pencil uses. I personally like the name orientation better, but if we want to keep UI consistency, we should change it to "Drawing plane". Refer to grease pencil if it is unclear what each item means. By adding front, side, top, we can remove the current menu next to depth with items X, Y, Z. Nice with less UI drop down menues.

After some discussions here and on devtalk, some users feel that the options front, side and top are cluttering the UI. I think it is important to keep them, but we should group them in the lower part of the drop down menu for readability.

Closest view plane is an option suggested by other users. This is an additional drawing feature so I will add a description below.


Closest view plane

This is an additional drawing plane option, suggested by other users. @M (justastatue)
made a nice mockup and posted on devtalk https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/54

Here is a video showing the mockup

This option would need a widget similair to the one at your mouse location, in order to communicate the drawing plane to the user.


Placement

Change menu name from Depth to Placement. This is the same UI name that grease pencil uses. The functionality of placement should mimic the functionality in grease pencil.

Options:

  • Surface
  • 3D Cursor
  • World origin

Draw on selected

New sub option in Placement and drawing plane menus. The option is only "active" when surface item is chosen in the menu. When nothing is selected, the object is placed on the surface below the mouse pointer. This feature would be useful in order to avoid placing objects on the wrong surface when objects are tightly packed together.


Add option (bool) Set origin to drawing plane
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.

There is a high probability that the user will adjust the position by snapping the origin to the surface of another object. If the origin of the new object is set to the drawing plane from the start, this would be a lot easier. I would argue that this would be the use case in 90% of the time


Add ngon as object
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.

This feature could add a lot of possibilities for hard surface modeling

  1. Place vertices with [action mouse button]
  2. Pressing [shift] will adjust current extrude depth on the current polygon shape
  3. Shift + [action mouse button] will confirm and the mesh object will be created.

Boolean - new menu
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.

Automatically add boolean modifier to selected object(s) and add created object as the boolean object on the boolean modifier(s). Set created object to object.display_type = 'BOUNDS' (just like the addon "bool tool" does).

Options:

  • Off
  • Intersect
  • Union
  • Difference

Solver options:

  • Fast
  • Exact

@Daniel Bystedt (dbystedt) The boolean mode you suggest sounds very cool! I love the idea of being able to just cut stuff out by drawing primitives!

Change menu name from Orientation to Drawing plane

Options:

  • Surface
  • View
  • Front (X-Z)
  • Side (Y-Z)
  • Top (X-Y)
  • Cursor

Does it really make sense to populate this menu with 3 individual world axis aligned drawing planes? I'd go for the mainstream way of having one drawing plane option that automatically switches to appropriate orientation (one of 3 world axes) depending on the view angle. There are quite a few different pieces of 3D software that share this quite common functionality. It also removes necessity to manually switch between them.

Change menu name from Orientation to Drawing plane

Options:

  • Surface
  • View
  • Front (X-Z)
  • Side (Y-Z)
  • Top (X-Y)
  • Cursor

Does it really make sense to populate this menu with 3 individual world axis aligned drawing planes? I'd go for the mainstream way of having one drawing plane option that automatically switches to appropriate orientation (one of 3 world axes) depending on the view angle. There are quite a few different pieces of 3D software that share this quite common functionality. It also removes necessity to manually switch between them.

That is a really good idea. Perhaps we add an option called [closest view axis] so that the drawing plane snaps to the closest axis based on view angle.

We should not remove front (X-Z), side(Y-Z), Top (X-Y). Blocking up a city layout for instance would need drawing plane = Top (X-Y) and the view would not be aligned with the Z-axis, since you clearly want to see the height of each building (cube/box)

https://blender.community/c/rightclickselect/KRfbbc/
I made some suggestions to improve the tool a while ago. These posts from Daniel are also pretty much what I requested.
Also in my post, I requested if there'd be grid snapping. I think that'd be really helpful here.

Change menu name from Orientation to Drawing plane

Options:

  • Surface
  • View
  • Front (X-Z)
  • Side (Y-Z)
  • Top (X-Y)
  • Cursor

Does it really make sense to populate this menu with 3 individual world axis aligned drawing planes? I'd go for the mainstream way of having one drawing plane option that automatically switches to appropriate orientation (one of 3 world axes) depending on the view angle. There are quite a few different pieces of 3D software that share this quite common functionality. It also removes necessity to manually switch between them.

That is a really good idea. Perhaps we add an option called [closest view axis] so that the drawing plane snaps to the closest axis based on view angle.

I'm unsure if we should remove front (X-Z), side(Y-Z), Top (X-Y). Sure, they clutter the UI a bit, but there could be use cases where they are useful. I would lean towards keeping them just in case.

My point is - is there really any reasonable use case for user to want to start drawing a new primitive on a plane of a world axis while not looking at least roughly (winthin 45° angle) perpendicular to that plane? :) The rule of a thumb when it comes to UI design is that if you are unsure, then the answer should always be remove it. UI clutter is the worst enemy, because it makes features appear a lot more complicated than they really are, increase learning curve unnecessarily, and in this option, also add need to do manually what should be done automatically :)

IMHO all that's needed here is to have some visual indication of closest axis aligned plane whenever create object tool is active, even before starting the object creation. That should majorly diminish the possibility of unintended action (wrong plane chosen), and would make the tool much faster to work with. There's one piece of 3D software which has a native feature which is a great example of this, unfortunately we can't mention other software here anymore :)

If you really manage to find some reasonable common use case to keep the individual world axis planes there, then perhaps instead we should have just following options:

  • Surface
  • View
  • World
  • Cursor

And the World option would have 4 sub options:

  • XZ
  • YZ
  • XY
  • Closest to View
Dan Pool (dpdp) added a comment.EditedSep 7 2020, 2:37 PM

My point is - is there really any reasonable use case for user to want to start drawing a new primitive on a plane of a world axis while not looking at least roughly (winthin 45° angle) perpendicular to that plane? :) The rule of a thumb when it comes to UI design is that if you are unsure, then the answer should always be remove it. UI clutter is the worst enemy, because it makes features appear a lot more complicated than they really are, increase learning curve unnecessarily, and in this option, also add need to do manually what should be done automatically :)

This discussion might be better moved to devTalk since there’s seems to be a good bit of back and forth. But I will back Daniel’s sentiment that consistency is King. This type of behavior of partially looking down an axis means you want to draw in a certain orientation doesn’t exist anywhere else in Blender. The dev team spent two years going through blender and making it more consistent. Going backwards now would be a mistake.

Also the use case of wanting to draw with a certain orientation is that the location may be hidden from the view position because of other objects obscuring placement. In the “other software” that you reference, if I wanted to draw a bunch of disks inside a volume I would have to create the discs and then rotate and position them. With Daniel’s solution, I could create them in place which is the way I prefer to work.

Unless all of blender is going to adopt the behavior you describe, I don’t see this being a good approach.

My point is - is there really any reasonable use case for user to want to start drawing a new primitive on a plane of a world axis while not looking at least roughly (winthin 45° angle) perpendicular to that plane? :) The rule of a thumb when it comes to UI design is that if you are unsure, then the answer should always be remove it. UI clutter is the worst enemy, because it makes features appear a lot more complicated than they really are, increase learning curve unnecessarily, and in this option, also add need to do manually what should be done automatically :)

This discussion might be better moved to devTalk since there’s seems to be a good bit of back and forth. But I will back Daniel’s sentiment that consistency is King. This type of behavior of partially looking down an axis means you want to draw in a certain orientation doesn’t exist anywhere else in Blender. The dev team spent two years going through blender and making it more consistent. Going backwards now would be a mistake.

Also the use case of wanting to draw with a certain orientation is that the location may be hidden from the view position because of other objects obscuring placement. In the “other software” that you reference, if I wanted to draw a bunch of disks inside a volume I would have to create the discs and then rotate and position them. With Daniel’s solution, I could create them in place which is the way I prefer to work.

Unless all of blender is going to adopt the behavior you describe, I don’t see this being a good approach.

That makes very little sense, to be honest.

First of all, for example there's auto perspective operator which snaps you to one of ortho views depending on the rough direction you are looking through. So there's similar concept in Blender already.

Second of all, you can not apply consistency to different modeling operators, because every one is unique. By the same logic you just said, the grid highlight in the animation attached to this task when using surface should not be possible either, because there is no other tool in Blender having that behavior. Furthermore, I suggested that this behavior should be accompanied by some visual indicator of what's happening, it's right in that post. That would be the failsafe intended to avoid user confusion by this tool specific behavior. Every other modeling tool in Blender has some unique concept no other tool does (Knife comes to mind) yet without it, the tool usefulness would be severely limited.

I also don't understand your argument about location hidden from the view position. It makes really no sense. The "World" setting would ignore any scene objects, and just use world plane grid. For drawing on scene objects, there's the "Surface" option Daniel has proposed. So whatever issue you are talking about would be exactly the same with the XZ/YZ/XY plane options Daniel was proposed. Only difference between his and my proposal is that while in his case, clicking into popover sub-menu would be switching them, in my case, viewport view direction would be what's switching them.

Lastly, no other Blender tool has a concept of having it's own orientation and surface snap menu. All the other tools rely on current transform orientation and snapping settings, so if we were to go with your interpretation of consistency, then the entire Orientation popover menu Daniel proposes should never exist. The reason it does, however, is to simplify and speed up the workflow, so if you have certain snapping and transform orientation settings, you don't need to change them just for the create tool, and then change them back once you are done creating the object. In the similar spirit, my proposal suggest to switch the draw planes automatically instead of having to always do it two clicks away, depending on which direction you want your object to face.

Hi, The add object tools really are great additions to blender, and they have soo much more potential as a precision modeling tools if they are allowed to, the current implementation completely ignores precision modeling, and so here are my thoughts on them...

1, Add Plane Tool (a plane is used often so it would be great to have it)

2, the current placement of the base region by dragging and a further click for the height does NOT allow an input of dimensions "which is not the default behavior of blender"

3, Adding object should be Three clicks, this could create a workflow of clicking once then typing in the dimensions separated by commas, and it becomes even better using the radius method because "click once for center then type in the radius then type in the height"

4, the Redo Panel doesn't show the Actual dimensions but only default ones, i understand this is similar to the above problem but it compounds to the problem of not having accurate objects

I have given this feedback elsewhere but that thread seems to be deleted so I have added them here again

EDITS: Grammar

Campbell Barton (campbellbarton) changed the subtype of this task from "To Do" to "Design".Sep 22 2020, 9:08 AM

I've written out my thoughts regarding the tool and some of the discussion here in the devtalk feedback thread. Please give it a look: https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/49

Sorry if this is notifying people unnecessarily!
I just regret not pinging @Daniel Bystedt (dbystedt) in my comment above.
I'd appreciate knowing your thoughts on my posts 49 and 50: https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/49
I'm very interested in this tool and would like to help improve it, so I tried to be thorough.
Since Campbell is considering your feedback in further development of the tool, I'd like to know if what I propose in my posts is something you could get behind, or if you have any doubts.
Thanks!

Sorry if this is notifying people unnecessarily!
I just regret not pinging @Daniel Bystedt (dbystedt) in my comment above.
I'd appreciate knowing your thoughts on my posts 49 and 50: https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/49
I'm very interested in this tool and would like to help improve it, so I tried to be thorough.
Since Campbell is considering your feedback in further development of the tool, I'd like to know if what I propose in my posts is something you could get behind, or if you have any doubts.
Thanks!

Thank you for the feedback. I have answered your posts on devtalk. I'm posting links here for others to see.

https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/53?u=danielbystedt

https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/54?u=danielbystedt

I will edit my initial feedback in this design task thread in order to keep all info in one place and make it readable.

@Daniel Bystedt (dbystedt), checking your proposal and I don't think it's practical to closely follow grease-pencil settings.

In principle being consistent is good where possible, however grease pencil is a drawing tool which focuses on drawing a 2D lines.

The kind of interaction is different with grease pencil too, when drawing 2D shapes you almost always want the view to be quite closely aligned with the plane your drawing onto. When placing 3D shapes it's the opposite, since being aligned on any axis means you can't properly set the depth on that axis.

Instead of defining grease-pencil like options as good/bad, I'd rather focus on capabilities.

For example, we might want to use a custom-orientation to place the object. Or we might want to use the active object's axis for placement, in that case we wont want to be locked onto only one of it's axes.

If the axis-planes become a global axis (while that may be good to support), I'd rather not loose the ability to choose an axis for other orientations.

Or, as has been mentioned, we could default to the closest axis, which would be significantly helped by adding a preview-plane.


For now I'll look into:

  • Adding a preview plane.
  • Add an option to place onto selected geometry.
  • Resolving the problem when placing view-aligned shapes.

Other options I'd rather think over a bit more, we could chat about this online.

M (justastatue) added a comment.EditedSep 28 2020, 10:53 PM

@Campbell Barton (campbellbarton)
I agree with your assessment on this. Have you read my full proposal for this tool and the conversation between Daniel and I on devtalk? In that I've included more detail about how automatic plane axis selection could work in a way that feels natural and does not limit the use cases of the tool.
In my experiments I've found that just using the plane axis that faces the view the most limits the range of view angles for a given axis too much, but there's a very easy solution to that which I demonstrate in my posts.
My proposal is actually that automatic drawing plane selection could completely replace the Plane Axis setting without losing any functionality except for difficult-to-control and erroneous behavior.
I also propose ways to simplify the tool's options, again with the goal of eliminating confusing behavior and making the tool's behavior more consistent with itself.

Also, if I may add in my opinion for the problem when placing view-aligned shapes, in regard to design:
I think that if during an operation the dimensions of the added object were exposed in the status bar, communicating the height to the user non-visually, then when the shape is view-aligned, the tool could then change the height based on the user's left-to-right or down-to-up mouse movement during the height-setting part of the operation.
Transform operations already do this. For example, if you are to look straight down (top perspective/orthographic view), and Grab an object, constrained to the Z axis, the object will move along the Z axis smoothly in accordance to your mouse movements up and down.

If that were not feasible, I think it would be reasonable to skip the height-setting part of the operation in the case of a view-aligned object and default to a height of 2, considering that's the default dimensions for most mesh objects when added through the Add menu.

@Daniel Bystedt (dbystedt), checking your proposal and I don't think it's practical to closely follow grease-pencil settings.

Sure thing. Perhaps I was a bit too focused on UI consistency.

  • Resolving the problem when placing view-aligned shapes.

One solution to the view aligned shape issue would be to be able to change camera angle while drawing:

  1. In top view: start drawing the base of the object that is added
  2. Rotate the camera in order to observe the object from another angle
  3. Finish drawing the height of the object

@Campbell Barton (campbellbarton), thank you very much for this tool... it is excelent for rapid modeling....

Please, if you can, fix snap problems.. the edge snap is allways on, overlaying others snap points like curve knots, other meshes vertex and the last version have some problem with start draw position and vertex snap, offseting start draw point if mouse point dont exactly over vertex position.

edit:
I think the snap point position should be initial draw coord's ... and mouse pointer position used for get surface/face/view coords orientation.

Please, if you can, fix snap problems.. the edge snap is allways on, overlaying others snap points like curve knots, other meshes vertex and the last version have some problem with start draw position and

Snapping to edges is working fine for me. It sounds like you have snapping on per default. Try to hold down CTRL to set snapping on or off instead.

vertex snap, offseting start draw point if mouse point dont exactly over vertex position.

IMPORTANT: I agree that snapping from a corner vertex should require less precision from the user. In the recorded video it shows that it is a bit hard to snap from a corner vertex

edit:
I think the snap point position should be initial draw coord's ... and mouse pointer position used for get surface/face/view coords orientation.

I'm not sure what you mean here. The tool is doing what you describe above. Please attach a sketch or similair to decribe more in detail what you mean.

I'm not sure what you mean here. The tool is doing what you describe above. Please attach a sketch or similair to decribe more in detail what you mean.

video:

@Wilsimar (wilBr)

  • 0:37 You are trying to snap to the surface of curves. Curves does not allow snapping to surface. That's why you need to change orientation from surface to default. This is a limitation when snapping objects to curves in general.
  • 1:34 The surface of the cube is obstructing the vertex of the curve that you want to snap to. You need to toggle x-ray mode in order to see the curve vertex and snap to it.
  • 3:09 You write that you can't snap to the vertex, but I see that you are snapping both to the edge and the vertex depending on your cursor position. Perhaps you want the snapping distance to vertices to be greater? I think the snapping distance works nicely for all draw points except for the first draw point.

-3:32 I agree. The first draw point is hard to snap to vertices.

  • 3:45 You write that you are not getting correct orientation, but you are getting correct orientation based on your preference (orientation = surface).

0:37 You are trying to snap to the surface of curves. Curves does not allow snapping to surface. That's why you need to change orientation from surface to default. This is a limitation when snapping objects to curves in general.

A: 2.91 dont have this problem

1:34 The surface of the cube is obstructing the vertex of the curve that you want to snap to. You need to toggle x-ray mode in order to see the curve vertex and snap to it.

A: sorry.. x-ray or wireframe mode dont solve this problem.... I think add_tool hardcoded edge snap is replacing vertex snap

3:32 I agree. The first draw point is hard to snap to vertices.

A: 2.91 and older versions dont have this problem

3:45 You write that you are not getting correct orientation, but you are getting correct orientation based on your preference (orientation = surface).

A: I think it should work like this:

get surface orientation from mouse pointer... and first draw point position from snap point

He is not trying to snap to a surface of a curve, but to the vertices of a curve. There should be no discrimination between object types to snap to as long as they have some set of point which can be interpreted as vertices and vertex snap mode is enabled.

I'm not sure what you mean here. The tool is doing what you describe above. Please attach a sketch or similair to decribe more in detail what you mean.

video:

Fixed rB5804bf25bdfe: Fix uninitialized stack memory use accessing the snap normal

vertex snap, offseting start draw point if mouse point dont exactly over vertex position.

IMPORTANT: I agree that snapping from a corner vertex should require less precision from the user. In the recorded video it shows that it is a bit hard to snap from a corner vertex

edit:
I think the snap point position should be initial draw coord's ... and mouse pointer position used for get surface/face/view coords orientation.

I'm not sure what you mean here. The tool is doing what you describe above. Please attach a sketch or similair to decribe more in detail what you mean.

Fixed rBf64746177f43: Fix add-object tool snap placement when activated from tweak event

Will the primitive creation finally be fixed? Spheres, Cones and Cylinders are still made squashed by default, and require modifier key presses to make them uniform. This results in very poor usability compared to equivalents of this tool in other 3D packages.

@Ludvik Koutny (rawalanche) there is now an option for fixed aspect by default.

While this is nice, the thing is that there are common use scenarios which require some primitives to be fixed aspect, while others not. And constantly wrangling this option on and off won't really help much. For example when drawing boxes, one rarely wants to have fixed aspect, while when drawing for example cylinder, or cone, one wants to have fixed XY aspect and then define Z height on secondary interaction. The main point is that the primitive creation should accommodate the most common use case by default. You can see it for example in one of the most popular Blender addons - BoxCutter:

Common user expectation is for boxes to be created non uniformly, but for example cylinders to be created uniformly on XY, and then height adjusted on Z. I suspect fixed aspect will simply create 1M^3 cylinder, which user will then have to manually scale on Z. And without fixed aspect, one will not be able to make XY axes fixed aspect. So in the end, there will be no productivity gain in add object tool compared to the old Add Cylinder operator, as in both cases user will have to utilize transform tools afterwards to adjust the created primitive to correct proportions.

So I am seeing that the new option to have separate fixed aspect for base and height has been added.

The way this is implemented is still a bit unfortunate. You keep missing the most important point - that the common user expectation is individually based on the type of the primitive. The create object tool was supposed to speed up object creation, but right now, the setting is universally applied to all shapes, and adds significant UI complexity.

The tool has now become very clunky to use, because to get user expected behavior of the box for example, I need to perform multiple clicks, I need to:

  1. Click the popover.
  2. Set base origin to Edge
  3. Set base aspect to Free
  4. Click and drag to create the primitive

Let's say I want to create a cylinder right after I created the box, I now need to:

  1. Click the popover
  2. Set base origin to Center
  3. Set base aspect to Fixed
  4. Click and drag to create the primitive

So there's now this annoying chore of having to adjust multiple knobs prior to creation every time user switches the type of the primitive they want to create. Obviously no one is going to put up with such a slow and clunky process, so in reality, what will happen is that the UI will now be polluted with a substantial set of UI controls no one is going to use, because expected user behavior changes for different primitives.

There is not much benefit from adding these if you miss the main point of every primitive having unique expected user behavior (With alternate behavior still being available on modifier key press). So Cylinders should have fixed aspect by default with Shift key making the aspect free, while Boxes should have free aspect by default with Shift key making it fixed.

Otherwise this will end up yet another Blender tool known as "the one that had a lot of potential, but..."

...or you could learn the keyboard shortcuts. They are incredibly intuitive and work like a lot of graphic design software out there. The shortcuts are the same as inkscape and gimp.

I really like where this tool is going. Much better than other software I've used that have similar interactive primitive creation. The issue I see with making aspect settings that differ for each primitive is that this quick shift/alt/ctrl interaction will also vary. For instance, if the sphere is set to fixed/fixed what key would we press to quickly unlock the aspects?

My suggestion if making everyone happy is of great concern is either having a third option under Aspect called SMART that varies based on the primitive chosen or saving those settings per tool instead of universally for all primitive tools.

...or you could learn the keyboard shortcuts. They are incredibly intuitive and work like a lot of graphic design software out there. The shortcuts are the same as inkscape and gimp.

This doesn't make any sense. I mentioned the keyboard shortcuts, so obviously I know them. Having to start creating some primitives with the keyboard shortcut while not others is very poor usability. And also, while Free/Fixed aspect is currently mapped on shift, Edge/Center base origin is not.

I don't understand how can you even possibly come up with this argument. This is not about if something is or is not doable, this is about how intuitive and usable the tool is. You can in theory do all the modeling in Blender using python. So imagine you were missing a crucial modeling tool which would save you a lot of time and someone would tell you "...or you could learn Python". Seriously, just sit back and take a moment to think about the argument you've put up to realize how little sense it makes.

It’s not an argument. It’s me stating my opinion just as you did. If you would like to argue how your idea is so superior to the current design despite being copied from software that is 25 years old, take it to another forum. This is for developers to discus designs with a little bit of feedback from users sprinkled in. Post a link to the thread you start on another forum and I will be happy to join in the conversation. Otherwise, you’ve stated your opinion now move on.