Add Object Tools Todo #57210

Closed
opened 2018-10-14 19:41:04 +02:00 by William Reynish · 84 comments

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 orEdit mode, users can use the Add Primitive tools, found in the toolbar:

Screenshot 2019-02-03 at 15.28.32.png

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

Screenshot 2019-02-03 at 15.41.34.png

  • 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_Primitives.png

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

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

# 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: ![Screenshot 2019-02-03 at 15.28.32.png](https://archive.blender.org/developer/F6495844/Screenshot_2019-02-03_at_15.28.32.png) - Once the tool is active, a set of Tool Settings appear in the top bar & tool settings: ![Screenshot 2019-02-03 at 15.41.34.png](https://archive.blender.org/developer/F6495927/Screenshot_2019-02-03_at_15.41.34.png) - 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_Primitives.png](https://archive.blender.org/developer/F4411830/Tool_Primitives.png) ## 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 [add_tool_example.mp4](https://archive.blender.org/developer/F8561272/add_tool_example.mp4) (In this case, the Orientation is set to Normal and the Placement is set to Surface)
Campbell Barton was assigned by William Reynish 2018-10-14 19:41:04 +02:00
Added subscribers: @WilliamReynish, @Znio.G, @DanPool, @Rawalanche, @zeauro, @A.Lex_3D, @CraigJones, @nokipaike, @JonDoe286, @DuarteRamos, @Djay

Added subscriber: @REMBO

Added subscriber: @REMBO

Added subscriber: @michaelknubben

Added subscriber: @michaelknubben
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker

Added subscriber: @AlbertoVelazquez

Added subscriber: @AlbertoVelazquez

Could be a great idea allow one of this tools to add arbitrary mesh. To add objects/meshes to the scene/object easily

Could be a great idea allow one of this tools to add arbitrary mesh. To add objects/meshes to the scene/object easily

@AlbertoVelazquez For that we have the forthcoming Asset Manager

@AlbertoVelazquez For that we have the forthcoming Asset Manager

Added subscriber: @RobertS

Added subscriber: @RobertS

The tool setting panel should also be persistent and always accessible for the object until the first vertex transform happens.

The tool setting panel should also be persistent and always accessible for the object until the first vertex transform happens.

Tool settings should also include dimensions.

This is currently only accessible from within the N panel in Blender.

Tool settings should also include dimensions. This is currently only accessible from within the N panel in Blender.

@RobertS That is outside of the scope of this topic and this tool. Yes, parametric modeling is a much needed feature in Blender, but luckily Blender is moving in this direction with the Everything Nodes project.

@RobertS That is outside of the scope of this topic and this tool. Yes, parametric modeling is a much needed feature in Blender, but luckily Blender is moving in this direction with the Everything Nodes project.

Added subscriber: @Ghostil

Added subscriber: @Ghostil

Will it be in the final 2.81?

Will it be in the final 2.81?

Added subscriber: @renderhjs

Added subscriber: @renderhjs

Added subscriber: @jc4d

Added subscriber: @jc4d

Added subscriber: @Schiette

Added subscriber: @Schiette

I very much like this proposal.

One question I have: how is this going to interact with the traditional add menu. Are the primitives going to go away from there. Or are they going to get the same behavior as outlined in this proposal?

I very much like this proposal. One question I have: how is this going to interact with the traditional add menu. Are the primitives going to go away from there. Or are they going to get the same behavior as outlined in this proposal?

In #57210#638957, @WilliamReynish wrote:
@RobertS That is outside of the scope of this topic and this tool. Yes, parametric modeling is a much needed feature in Blender, but luckily Blender is moving in this direction with the Everything Nodes project.

Could the creation command (for example when you are dragging out the radius of the sphere) accept numeric input on the keyboard? This would be a good step towards making Blender more suitable for precision modeling.

> In #57210#638957, @WilliamReynish wrote: > @RobertS That is outside of the scope of this topic and this tool. Yes, parametric modeling is a much needed feature in Blender, but luckily Blender is moving in this direction with the Everything Nodes project. Could the creation command (for example when you are dragging out the radius of the sphere) accept numeric input on the keyboard? This would be a good step towards making Blender more suitable for precision modeling.

Added subscriber: @Constantina32

Added subscriber: @Constantina32

Added subscriber: @MetinSeven-1

Added subscriber: @MetinSeven-1

This is a great addition. Please consider making it accessible from Sculpt Mode as well. Thanks!

This is a great addition. Please consider making it accessible from Sculpt Mode as well. Thanks!

Added subscriber: @SethTooQuick

Added subscriber: @SethTooQuick

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.

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.

Added subscriber: @xan2622

Added subscriber: @xan2622
It makes me think of QBlocker : https://blenderartists.org/t/qblocker-for-blender-2-8/1146607/177 https://gumroad.com/l/gOEV

Added subscriber: @Zeirus

Added subscriber: @Zeirus
Campbell Barton changed title from Create Object Tools Todo to Add Object Tools Todo 2020-01-23 09:27:29 +01:00

Added subscriber: @Ben-Knowles

Added subscriber: @Ben-Knowles

Added subscriber: @ckohl_art

Added subscriber: @ckohl_art

Added subscriber: @LeoSch

Added subscriber: @LeoSch

Added subscriber: @realeyez

Added subscriber: @realeyez

Added subscriber: @Draxley

Added subscriber: @Draxley

Added subscriber: @DirSurya

Added subscriber: @DirSurya

BRUH

BRUH

Added subscriber: @BulatKR

Added subscriber: @BulatKR

Added subscriber: @mattli911

Added subscriber: @mattli911

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'

Committed 122cb1aea8

Committed 122cb1aea8

Added subscriber: @CobraA

Added subscriber: @CobraA

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

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

Removed subscriber: @MetinSeven-1

Removed subscriber: @MetinSeven-1

Removed subscriber: @realeyez

Removed subscriber: @realeyez

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?

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?

CTRL key snaps.

CTRL key snaps.

изображение.png
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.
изображение.png
изображение.png

![изображение.png](https://archive.blender.org/developer/F8568444/изображение.png) 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. ![изображение.png](https://archive.blender.org/developer/F8568469/изображение.png) ![изображение.png](https://archive.blender.org/developer/F8568470/изображение.png)
Member

Added subscriber: @DanielBystedt

Added subscriber: @DanielBystedt
Member

This is a very nice addition to the modeling tools. Great work! @ideasman42 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

{F8927631, height = 300}

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. @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
{F8927644, height = 400}

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.

{F8845551, height = 300}

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.

{F8845572, height = 300} image.png

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

{F8845578, height = 150} image.png

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.

image.png

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).

image.png image.png

Options:

  • Off
  • Intersect
  • Union
  • Difference

Solver options:

  • Fast
  • Exact
This is a very nice addition to the modeling tools. Great work! @ideasman42 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** {[F8927631](https://archive.blender.org/developer/F8927631/image.png), height = 300} 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. @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 {[F8927644](https://archive.blender.org/developer/F8927644/active_plane_bias.mp4), height = 400} 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. {[F8845551](https://archive.blender.org/developer/F8845551/image.png), height = 300} 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. |{[F8845572](https://archive.blender.org/developer/F8845572/image.png), height = 300}|![image.png](https://archive.blender.org/developer/F8845566/image.png)| | -- | -- | --- **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 |{[F8845578](https://archive.blender.org/developer/F8845578/image.png), height = 150}|![image.png](https://archive.blender.org/developer/F8845581/image.png)| | -- | -- | --- **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. ![image.png](https://archive.blender.org/developer/F8845590/image.png) 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). |![image.png](https://archive.blender.org/developer/F8845607/image.png)|![image.png](https://archive.blender.org/developer/F8845611/image.png)| | -- | -- | Options: - Off - Intersect - Union - Difference Solver options: - Fast - Exact
Member

Added subscriber: @Imaginer

Added subscriber: @Imaginer
Member

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

@DanielBystedt The boolean mode you suggest sounds very cool! I love the idea of being able to just cut stuff out by drawing primitives!
Contributor

In #57210#1010083, @DanielBystedt wrote:
Change menu name from Orientation to Drawing plane

{F8845535, height = 300}

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.

> In #57210#1010083, @DanielBystedt wrote: > Change menu name from **Orientation** to **Drawing plane** > > {[F8845535](https://archive.blender.org/developer/F8845535/image.png), height = 300} > > 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.
Member

In #57210#1010193, @Rawalanche wrote:

In #57210#1010083, @DanielBystedt wrote:
Change menu name from Orientation to Drawing plane

{F8845535, height = 300}

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)

> In #57210#1010193, @Rawalanche wrote: >> In #57210#1010083, @DanielBystedt wrote: >> Change menu name from **Orientation** to **Drawing plane** >> >> {[F8845535](https://archive.blender.org/developer/F8845535/image.png), height = 300} >> >> 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.

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.
Contributor

In #57210#1010254, @DanielBystedt wrote:

In #57210#1010193, @Rawalanche wrote:

In #57210#1010083, @DanielBystedt wrote:
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
> In #57210#1010254, @DanielBystedt wrote: >> In #57210#1010193, @Rawalanche wrote: >>> In #57210#1010083, @DanielBystedt wrote: >>> 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

In #57210#1010624, @Rawalanche wrote:
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.

> In #57210#1010624, @Rawalanche wrote: >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.
Contributor

In #57210#1010919, @DanPool wrote:

In #57210#1010624, @Rawalanche wrote:
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.

> In #57210#1010919, @DanPool wrote: >> In #57210#1010624, @Rawalanche wrote: >>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.

Added subscriber: @Leul

Added subscriber: @Leul

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

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

Removed subscriber: @AlbertoVelazquez

Removed subscriber: @AlbertoVelazquez

Added subscriber: @justastatue

Added subscriber: @justastatue

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

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

Added subscriber: @rwman

Added subscriber: @rwman

Sorry if this is notifying people unnecessarily!
I just regret not pinging @DanielBystedt 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 @DanielBystedt 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!
Member

In #57210#1024164, @justastatue wrote:
Sorry if this is notifying people unnecessarily!
I just regret not pinging @DanielBystedt 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.

> In #57210#1024164, @justastatue wrote: > Sorry if this is notifying people unnecessarily! > I just regret not pinging @DanielBystedt 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.

@DanielBystedt, 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.

@DanielBystedt, 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.

@ideasman42
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.

@ideasman42 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.
Member

In #57210#1024520, @ideasman42 wrote:
@DanielBystedt, 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
> In #57210#1024520, @ideasman42 wrote: > @DanielBystedt, 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

Added subscriber: @MACHIN3

Added subscriber: @MACHIN3

Added subscriber: @wilBr

Added subscriber: @wilBr

@ideasman42, 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.

@ideasman42, 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.
Member

In #57210#1077473, @wilBr wrote:

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.
Snapping with ctrl.mp4

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
hard to snap from corner vertex.mp4

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.

> In #57210#1077473, @wilBr wrote: > 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. [Snapping with ctrl.mp4](https://archive.blender.org/developer/F9515775/Snapping_with_ctrl.mp4) > 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 [hard to snap from corner vertex.mp4](https://archive.blender.org/developer/F9515795/hard_to_snap_from_corner_vertex.mp4) > 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.

In #57210#1077747, @DanielBystedt wrote:
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:

blender bug add tool.mp4

> In #57210#1077747, @DanielBystedt wrote: > 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: [blender bug add tool.mp4](https://archive.blender.org/developer/F9516509/blender_bug_add_tool.mp4)
Member

@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).

 
@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:
oDgx1EVbGS.mp4

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

>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: [oDgx1EVbGS.mp4](https://archive.blender.org/developer/F9516762/oDgx1EVbGS.mp4) get surface orientation from mouse pointer... and first draw point position from snap point
Contributor

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.

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.

Removed subscriber: @BulatKR

Removed subscriber: @BulatKR

In #57210#1078284, @wilBr wrote:

In #57210#1077747, @DanielBystedt wrote:
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:

blender bug add tool.mp4

Fixed 5804bf25bd

> In #57210#1078284, @wilBr wrote: >> In #57210#1077747, @DanielBystedt wrote: >> 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: > > [blender bug add tool.mp4](https://archive.blender.org/developer/F9516509/blender_bug_add_tool.mp4) Fixed 5804bf25bd

In #57210#1077747, @DanielBystedt wrote:

In #57210#1077473, @wilBr wrote:

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
hard to snap from corner vertex.mp4

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 f64746177f

> In #57210#1077747, @DanielBystedt wrote: >> In #57210#1077473, @wilBr wrote: > >> 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 > [hard to snap from corner vertex.mp4](https://archive.blender.org/developer/F9515795/hard_to_snap_from_corner_vertex.mp4) > >> 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 f64746177f
Contributor

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.

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.

Update: committed various improvements.

27c142aa29
8fd3ffcb31
2f0d919f89
c4bbe44e47
cdfa3feb91
fef7b792e7
ecffd231a0
f7829961c6


@Rawalanche there is now an option for fixed aspect by default.

Update: committed various improvements. 27c142aa29 8fd3ffcb31 2f0d919f89 c4bbe44e47 cdfa3feb91 fef7b792e7 ecffd231a0 f7829961c6 ---- @Rawalanche there is now an option for fixed aspect by default.
Contributor

In #57210#1094505, @ideasman42 wrote:
@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:
2021-01-16_08-53-05.mp4
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.

> In #57210#1094505, @ideasman42 wrote: > @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: [2021-01-16_08-53-05.mp4](https://archive.blender.org/developer/F9581591/2021-01-16_08-53-05.mp4) 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.
Contributor

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

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. 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.
Contributor

In #57210#1096655, @DanPool wrote:
...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.

> In #57210#1096655, @DanPool wrote: > ...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.

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.

Added subscriber: @IihT2cWA9xiP30BsYphz3EiEISNoScoe

Added subscriber: @IihT2cWA9xiP30BsYphz3EiEISNoScoe
Thomas Dinges added this to the 2.90 milestone 2023-02-08 16:27:56 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
35 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#57210
No description provided.