Affect pivot point in edit mode

How about that:

  • First of all give the 3dCursor a Gizmo to manipulate it directly.

  • Second step. Give the 3dCursor a mode to interactively set itself to the current pivot point.

  • Assume Pivot Point is set to Median Point

  • The cursor remains constant if the selection is constant but it is editable in this mode eg with the gizmo.

  • It changes to the new median point if the selection changes.

  • Give this setup a single toggle button.

Edit: Some point was unclear with my proposal. I wrote that pivot point is set to median point. That’s meant for placing the 3dCursor. The “final” pivot point itself is the 3dCursor

1 Like

I don’t see that point. The best idea behind the 3D Cursor is that is not a classic pivot point. Give to the user the option to have both things will be hard to manage and will do a frustating UX.

I agree!

I agree! But I would also want it to be the Scale point as well. It is not intuitive to me how you can rotate the cursor, use “Cursor” as the axis system then move obejcts, or geometry along a cursor axis, I can’t get this to work consistently. I am not sure about Median point as the default, but I have no objections and this would be a good evaluation objective. What is your reason for this please?

Good idea, I am all in favour of accuracy and flexibility, combined with speed and efficiency, in cursor placement.

Cheers, Clock.

1 Like

@Alberto I don’t want to strip off any current feature of the 3d cursor.
This proposal is about mimicing a directly editable pivot point with the use of the 3dcursor.
It would be a special mode to implement a feature thats quite common in other softwares.

2 Likes

I don’t believe in that approach to the problem. The main thing is to give only one tool that works quite clearly and not that something that people can understand from common use is hidden. And it almost looks like a workaround. It’s like having a functionality that’s almost going to be main, behind a tool option. Like “we want make two behaviours, but we only do one”

Who is going to use this tool is who uses gizmos, so he won’t understand why to move the pivot point of the gizmo he has to have another gizmo underneath the gizmo, the 3D cursor. Which is also very important to work when putting 3D objects in the scene and for almost anything.

To that solution would be better and simpler to make the gizmo for the cursor on one side and allow moving the pivot point on the other side.

@Alberto. Not sure if i completely got your point. But I am in a row with the other guys proposal about being able to edit the pivot point itself and not taking the 3dcursor into account for this at all. That’s totally fine. It was a compromise as I got @billrey statement that way that he would like to leave any related functionality on 3dcursor side, and prefers seeing the cursor tweaked itself. And with my proposal that would be possible.

Yes, i know, i told that it was a solution before use a gizmo or active tool. But if the idea is a complete change in the 3d cursor behaviour (optionally) and place constantly in the median point will be merge two differents behaviours in one tool, so to that is better split in two tools more clear and easy to use.

Extrude and inset are similar, but we keep it separately because tell to the user to change the tool each time is worst than have both tool.

@clockmender: Sorry missed your question. The idea behind this was quite simple. If you have an interactive placement for the 3dcursor. You need a valuable default point as some kind of startpoint or as the default if you are not going to edit it. Almost every software choses the midpoint of a selection as the pivot if you are in edit mode.

@Alberto: Yes I agree with your point on that.

I know that everyone have their own opinion and the right idea in their minds but plz lets keep it on the topic even if we don’t understand each other well…the point is to try also understand what other people are suggesting, All this fighting is noise to the Devs and that’s why they stay away from these kind of discussions & we keep going in circles, IMO lets get the 3d Cursor to have Gizmos and few improvements first then build upon that.
Proposals,mockups…etc all help, in the end we all want blender to do it better and faster but at the same time take into consideration what already exists and if doesn’t work well we can always propse better ones.

Hey boss @Regnas your old suggestion might become a reality lol
https://developer.blender.org/T69550

Ahh. Well, I guess it’s better than nothing, right?
But still, this is not the solution, this is more like a workaround/hack. The workflow will still be a little convoluted and slow.
I hope that a proper implementation shows up in the future.

1 Like

I agree that a custom pivot should be handled by 3D Cursor.
It works like a charm when using addons with buttons to quickly place it.
But I also agree that if your are using a gizmo, 3D Cursor as a pivot is not currently satisfying.

When user wants to use 3D Cursor just to offset gizmo, it does not work.
Because after a translation, 3D Cursor location was not transformed like selection location.
So, user have to reposition 3D Cursor after each transformation.
For that, currently, only valuable options are to modify origin of object, use an empty as parent or create a hook.

Being able to modify 3D Cursor position with a gizmo is not a sufficient condition. It still means repositioning 3D Cursor after each selection transformation.
We need one or two option when 3D Cursor is used as pivot.
When option is off, 3D Cursor location/rotation are not changed by translation/rotation.
When option is on, 3D Cursor location/rotation are modified as well as selection by translation/rotation.

1 Like

Fun Fact: The English do not have a derogatory slang term for the Belgians, or Dutch, but have many for themselves.

Some other facts to consider:

In order to move, rotate, or scale geometry in Edit mode we need a reference location, that has 3 mutually normal axes and a 3D location.

This point needs to be able to be moved relative to the selected geometry, so, for example, some geometry can be rotated about a point other than the median of that geometry.

That is currently provided by the 3D cursor, but the cursor cannot be moved conveniently and universally, e.g. relative to some selected geometry at a distance and angle in the view plane and it has no gizmo.

Objects in Object mode may be moved by their gizmo located at the origin of the object.

Rotating the cursor does not facilitate moving geometry along the rotated axes of the cursor, or should I say “I cannot make this happen consistently”.

So, as a proposal what do the wise here think of this:

  1. Provide the cursor with a gizmo.
  2. Enable the cursor gizmo to automatically translate the cursor when no geometry is selected.
  3. Enable the gizmo to automatically translate the geometry when some geometry is selected.

This is then a completely automatic system requiring no user input to switch gizmo operational mode, other than the user selecting, or not selecting, some geometry. It also allows the rotated cursor axes to be used in Edit mode. Alternatively we could add a new “Reference Point” for geometry translation in Edit mode and leave the cursor as is. I am still in favour, in any circumstances, of having a gizmo for the cursor and also being able to move it more universally and precisely.

The position of this “Reference Point” could be automatically determined by the “Pivot Point” mode. so in “3D Cursor” mode, it appears at the 3D cursor location and otherwise it appears at the geometry median point, or at active element, etc. This would be consistent with the current methods.

Cheers, Clock.

PS. Could we add a “Distance At Angle” option for gizmos, so this option is universally available? This would operate in View Plane orientation, whatever that happens to be - the maths for this is not difficult and the coding is neither complex, nor lengthy.

This code does the rotational translation from Global to View Plane orientation:

def viewCoords(x_loc,y_loc,z_loc):
    areas = [a for a in bpy.context.screen.areas if a.type == 'VIEW_3D']
    if len(areas) > 0:
        vm = areas[0].spaces.active.region_3d.view_matrix
        vm = vm.to_3x3().normalized().inverted()
        vl = Vector((x_loc,y_loc,z_loc))
        vw = vm @ vl
        return vw
    else:
        return Vector((0,0,0))

And this one goes the other way:

def viewCoordsI(x_loc,y_loc,z_loc):
    areas = [a for a in bpy.context.screen.areas if a.type == 'VIEW_3D']
    if len(areas) > 0:
        vm = areas[0].spaces.active.region_3d.view_matrix
        vm = vm.to_3x3().normalized()
        vl = Vector((x_loc,y_loc,z_loc))
        vw = vm @ vl
        return vw
    else:
        return Vector((0,0,0))

Ahah! I can now make this happen consistently, but I cannot display the cursor’s axes - that would be nice.

Cheers, Clock.

1 Like

I guess the point many people here are trying to make is this:

The functionality isn’t the problem, the user experience is.

Blender has matured enough now that you need to start taking Ux seriously, because right now, imo, you don’t (and I know 2.8 is a big step up for Blender in terms of Ux, but for the rest of the world, it’s just Blender finally getting to a basic level of Ux where people actually want to use it at all, whereas before they didn’t).

If I may say so, that’s a bit harsh on those of us who have used it for a long time, warts and all…

May I ask what is your “must have” proposal to remedy this situation, do you have any thoughts as to what could be done, or what your “Star Fix” would be? I think we should all try to make construtive suggestions, rather than say just “It’s not good enough”.

For me the greatest leap forward has to be easy and precise location and orientation of the cursor using all common options, like “Global”, “Delta”, “Distance At Angle” and relative placement combined with the ability to use these for all modal operations.

Cheers, Clock.

It is, but the harsh truth is also that you were about 5% of the entire 3D industry… :wink:

As for proposals, I’ll see if I can post something in the paper cuts sub-forum in the weekend, because right now, that’s the closest we have to a Ux place here… (so my proposal for this thread is, make a dedicated Ux section on this forum first).

Suggestion…

For the modal mode could be good if when we use G or R, we can switch between move the components or move the 3DCursor pressing C. It will use same system than move, so, if we pulse other time the X, Y, Z it will use the own 3D cursor transform, or use the keyboard to add a offset.

I don’t know if this can work, maybe inside the move/rotate tool is not the best way to move the 3D cursor. Maybe a separate modal tool to move the 3D Cusror is a better option.

2 Likes

in case you decide to evolve the 3D cursor here are some wish

1 Like

I agree, maybe just add one/some buttons to this menu:

39

Maybe a “Command” button where you could type something like A1,2,5 for an absolute move, or D0.2,0,0.1 for a delta, or I1,34 for a Distance@Angle…

Cheers, Clock.