Page MenuHome

Grab, rotate, scale with basepoint
Confirmed, NormalPublicDESIGN

Tokens
"Love" token, awarded by SSVimes."Love" token, awarded by Tetone."Like" token, awarded by bestelix."Love" token, awarded by Schiette."Heartbreak" token, awarded by anonym."Like" token, awarded by crantisz."Love" token, awarded by Zuorion."Yellow Medal" token, awarded by amonpaike."Love" token, awarded by aschere."Love" token, awarded by 1D_Inc."Love" token, awarded by Okavango."Love" token, awarded by lcs_cavalheiro."Love" token, awarded by dpdp."Love" token, awarded by yodus."Like" token, awarded by fdfxd."Love" token, awarded by kakachiex2."Love" token, awarded by duarteframos."Love" token, awarded by tostrong4you."Love" token, awarded by michaelknubben."Love" token, awarded by gandalf3."Love" token, awarded by sterlingroth."Love" token, awarded by GiantCowFIlms."Love" token, awarded by allkhor."Love" token, awarded by DaedalJS."Love" token, awarded by Davd."Love" token, awarded by cnd."Love" token, awarded by KINjO."Love" token, awarded by sdilmob."Love" token, awarded by Blendify."Love" token, awarded by ejnaren."Love" token, awarded by bliblubli.
Authored By

Description

Current Issues

It is very difficult to grab, rotate and scale objects using basepoints.

Proposal

Add a a keybord shortcut which will let user select basepoints during grab, rotate and scale operations allowing precise transformations in easy way.

Grab with basepoint

Workflow:

  • Select object
  • press G (grab)
  • press B (basepoint)
  • click on vertex to specify grab basepoint (hovering on vertex snap is activated)
  • move object to desired place (hovering on vertex snap is activated)
  • click to put object

alternatives like entering X, Y, Z to restrict axis
or enter numeric value for move distance also works

Rotate with basepoint

Workflow:

  • Select object
  • press R (rotate)
  • press B (basepoint)
  • click on vertex to change rotation center (hovering on vertex snap is activated)
  • click on second vertex to define rotation reference (hovering on vertex snap is activated)
  • click on third vertex to define rotation angle (hovering on vertex snap is activated)

alternatives like entering X, Y, Z to restrict axis
or enter numeric value for rotation angle also works

Scale with basepoint

Workflow:

  • Select object
  • press S (scale)
  • press B (basepoint)
  • click on vertex to change scale basepoint (hovering on vertex snap is activated)
  • click on second vertex to define scale reference (hovering on vertex snap is activated)
  • enter numeric value for scale, or click on third vertex to define scale value (hovering on vertex snap is activated)

alternatives like entering X, Y, Z to restrict axis
also works

Duplicate with basepoint
For consistency similar behavior should be added to duplicate operation:

Workflow:

  • Select object
  • press Shift+D or Alt+D (duplicate)
  • press B (basepoint)
  • click on vertex to specify duplication basepoint (hovering on vertex snap is activated)
  • put object to desired place (hovering on vertex snap is activated)
  • click to put object

alternatives like entering X, Y, Z to restrict axis
or enter numeric value for move distance also works

Grab with basepoint restricting translation axis
Example how grab with basepoint works with translation axis restriction:

Workflow:

  • Select object
  • press G (grab)
  • press B (basepoint)
  • press Z to restrict translation axis
  • click on vertex to specify grab basepoint (hovering on vertex snap is activated)
  • move object to desired place (hovering on vertex snap is activated)
  • click to put object

Multiple duplication proposal
Working on basepoint proposal also got idea about another useful enhancement - ability to make multiple duplication:

Workflow:

  • Select object
  • press Shift+D or Alt+D (duplicate)
  • and then press M (multiple)
  • click to put object (object is duplicated, but still remains selected)
  • click to put another object (object is duplicated, but still remains selected)
  • click to put next object
  • another mouse button click to end operation

alternatives like entering X, Y, Z to restrict axis
or enter numeric value for move distance also works

Multiple duplication with basepoint example
In this case similar tasks like duplicating objects and putting in precise places could be done a lot faster.

Workflow:

  • Select object
  • press Shift+D or Alt+D (duplicate)
  • press B (basepoint)
  • and then press M (multiple)
  • click to put object (object is duplicated, but still remains selected)
  • click to put another object (object is duplicated, but still remains selected)
  • click to put next object
  • another mouse button click to end operation

Mirror with basepoint example
For consistency similar approach could work on mirror operation as well

Workflow:

  • Select object
  • press ctrl+M (mirror)
  • press B (basepoint or baseplane)
  • click on three points to define mirror plane
  • or click on two points to define mirror axis and then Z if plane is on Z axis
  • or click on two points to define mirror axis if view is orthogonal

Benefits
Ability to grab, rotate and scale objects precisely. Functionality especially useful for architects, interior designers, but also will be beneficial to many blender users.

Revisions and Commits

Event Timeline

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

I want this, how can I have it?

With T47032 in the tracker this work could really integrate with the new widgets as suggested by Jonathan Williamson
Just like the widgets draw the transform axis with the XYZ labels maybe the origin center, base points, and reference points could also have the corresponding hotkeys displayed as a label as well, allowing changing them either by clicking on them directly in viewport or by pressing corresponding hotkey, improving both usability and discoverability.

Forgive my insistence but I really appreciate Justa's work and think this is a very important improvement for Blender.

In my opinion as a cad user the place where the XYZ axis are drawn should be the origin of coordinates, and not a base point. So a user could expect / need to place something from one point to a specific coordinates that could be based on this origin. At the moment with the changes implemented this could be achieved using the 3D cursor.

Some time ago i tested the changes related to this task D1501 on the widget project branch as working, i'll check again, and also i'll follow the changes related to the project ;)

It is great to see that the widget system is being reworked, but I think it might miss some of the glorious aspects of this proposal here:
Defining a start point, defining a mid point, then scaling/rotating to a target point.
Everybody that works in object design uses that in nearly every other application.

In terms of how well this feature is presented through the UI could easily be solved by adding something inside the pivot point menu and good it is.
For further information read the manual.

I am somewhat a little surprised to see the resistance here the proposed enhancements.
I am curious about how many of the the critics work in other CAD apps and not the workflow there?

Maybe you are not just comfortable with the proposal because it works different than you personally do work?
I am just genuinely curious.

@claas eicke (cekuhnendev), The reason we're not really keen about adding this feature as is, is basically that we think we can increase the potential by a better integration in UI and workflow. This might involve redesigning the entire snapping toolset, but IMHO it will totally be worth it (and has to be done at some point anyway).


This task has become another hard-to-follow-wall-of-text, so I suggest we try to bring discussion back to design itself, mainly based on Jonathan's comment (which is UI team feedback). @Justas Ingelevičius (ingis) maybe you could add a section to the task description that lists the currently open questions to discuss, and what general consensus is? Just so that people can get an overview of the discussion without having to read up on all comments (I for my part already lost track long ago already :S). Assigned the task to you, so you can edit the description.

@Justas Ingelevičius (ingis) maybe you could add a section to the task description that lists the currently open questions to discuss, and what general consensus is? Just so that people can get an overview of the discussion without having to read up on all comments (I for my part already lost track long ago already :S). Assigned the task to you, so you can edit the description.

Good idea. I will be away for some days. Could work on that next week.

@Julian Eisel (Severin)

Well in case that is the goal, then I am all for it.

The proposed widget idea is good, making it movable like an object.
This should be true also for the 3D cursor. You still cannot move drag snap it in object mode.

But the value of Justas idea is less an improvement to the widget but providing really needed
translation options.

Start point, reference point, target point for scale and rotation.
Start point for object snapping.

Currently you can snap in Blender objects to objects but you have to perform man x y z commands to
snap it the way you want and not the what Blender can come up with a possible solution.

I'm not sure if it's good place to post suggestion but couldn't find better.
In CAD objects are moved after selecting point not directly after command like in Blender. CAD simply waits for input after command.
I think that instead of selecting point via B and C user should press modifier key (alt maybe?) or "precise snap" key like suggested "B" to disable transform (make Blender wait for input) and turn on snapping. It would allow selection of multiple points regardless of transform and wouldn't require many keys that can conflict.
It is really similar to CAD way, as we are told there to select points one by one and we are doing it in certain order. It could be universal for all operations.
Here gifs from FreeCAD. To move I selected object, then press MV (move), selected first point and then second. Similar with rotation: select, RO, first point as base, second as reference, third as target.



Basepoint is defined when rotating and scaling. When moving there are only reference point and target point. If there is new transform widget in blender that widget also could be transformed using points, e.g. to rotate it or precisely move. What I mean, is that transforming using points is rather coordinate system extension using user defined coordinates that are stored to calculate required transformation. As you can see on gifs in FreeCAD there is additional "circle" inside cursor that snaps to objects during selection of base and target points. To me that coordinate extension is more 3d cursor then widget and 3d cursor would need to be "split to several cursors" to allow selection of multiple coordinates.
There is Enhanced 3d Cursor addon that allows realtime 3d cursor snapping when holding right click and dragging but idea is that we can select reference point (that second point I selected during rotate) and target point (third point), so we are able to pick length or angle between existing elements.

As a Blender user who works fulltime doing ArchViz and Mechanical Engineering Visualization, I can say that this is a long absent feature that is absolutely needed for people in technical rendering fields. People doing this kind of work need features like this.

Blender is so incredibly close to being an industry leader. I truly believe this. Adding powerful snap and a few vital animation tools will put in the league with the most used Viz and CC software to the point that any minor improvements will be leading these industries. Excellent work keep it up.

i still very much want this as well.
it seems like some of the changes to the 3d cursor in 2.8 might be used to make the base point more "blender" ish if it needs that....
maybe since they're messing with the 3d cursor in 2.8 they'll be willing to mess with snap targets too in order to improve them in 2.8 as well.
enabling something done quick and easy but precise like this enables you to do would be a good use case for improvements to the current system.

I think this was originally declined by the developers because it tampered too much with the transform code, which was said to be delicate already.
Wondering if something like this could somehow integrate with the new work being done on T54661: Gizmo Design instead.

A very nice tread about 2-point CAD snap!
But we should also remember, that all of this should work in both object and edit modes.

In 2013 I started research to discover tool, that will allow any kind of precise 3D transformation of selection, based on CAD snap system like this.
Here is my proposal for temporal widged that can expand this snap system.
It is based on behaviour of current ruler/protactor tool with ability to "hook" current object selection (like pose mode in armature) to bring precise CAD alignation.

With 2 point Key:

With 3 point Key:

This tool concept is based on series of research that was made in 1D_Scripts in mesh representation.
This tools are mostly 3DMatch, Sideshift, 3D Rotor/Scaler and Aligner. Links will brought you to videos that explains that concepts on practical tasks.

Also here is our attempt to bring simple CAD snap system to 2.79 both in object and edit modes: 1D_NP

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it was missed.

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it could be missed.

This is hilarious! And a bit sadly very on point.

Here is GIF about it. Don't know how it could be missed.

yep. that GIF says it all.
i mean as blender users we've all adjusted to having to move the object into a position where snap will work so we can actually move with snap where we actually want it but if you have to move the object into position for the snap to work, then snap isn't actually working.

all those other programs in the GIF are being a great example of base points being chosen btw.

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it was missed.

I don't what you are trying to achieve but the same thing you have achieved in other programs you can achieve that in Blender as well, just have to enter edit mode and set the snap accordingly like this ->

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it was missed.

I don't what you are trying to achieve but the same thing you have achieved in other programs you can achieve that in Blender as well, just have to enter edit mode and set the snap accordingly like this ->

Okay, it seems to be not clear yet, so I will explain what you need to do.
To perform CAD snap you have to follow conditions:
0) You have to move object with one particular point to another particular point.

  1. In object mode only
  2. With no origin manipulations (because of possible instances)
  3. With absolute minimum of manipulations. Click-click.

To realize the importance of such ability you have to work in massive architectural industry for years and do such operations thousands times per day every day.
And yes, we are using modeling tools for about decade, we all know about mesh snap, we know all your possible answers, and we already wrote tools that made such thing even faster than on your video, you can find it in my prevous post.

I'm 1D_Inc, please, don't try to teach me basics =)

I don't what you are trying to achieve but the same thing you have achieved in other programs you can achieve that in Blender as well, just have to enter edit mode and set the snap accordingly like this ->

It's not true, what are You doing on this movie clips is modifying whole geometry. Better way would be:

  1. going to edit mode,
  2. snapping 3DCursor to teapot vertex,
  3. changing pivot center to 3DCursor
  4. selecting "Snap to vertices" and "Snap center onto target"

But this is not the case. This method is too tedious. We need special tool which is fast in use. If the new (2.8's) 3DCursor would eventually snap not only to faces but also to edges and vertices this method would be simpler (step 1 and 2 would be replaced by "drag and snap 3DCursor to vertex")

Ps. I think this task isn't right place to discuss this topic - it's already too long and nobody cares. I have created an idea on Right-Click Select. Please up vote it so we can gain some attention.

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it was missed.

I don't what you are trying to achieve but the same thing you have achieved in other programs you can achieve that in Blender as well, just have to enter edit mode and set the snap accordingly like this ->

Okay, it seems to be not clear yet, so I will explain what you need to do.
To perform CAD snap you have to follow conditions:
0) You have to move object with one particular point to another particular point.

  1. In object mode only
  2. With no origin manipulations (because of possible instances)
  3. With absolute minimum of manipulations. Click-click.

To realize the importance of such ability you have to work in massive architectural industry for years and do such operations thousands times per day every day.
And yes, we are using modeling tools for about decade, we all know about mesh snap, we know all your possible answers, and we already wrote tools that made such thing even faster than on your video, you can find it in my prevous post.
I'm 1D_Inc, please, don't try to teach me basics =)

I didn't try to teach the basic, i know that you know the basics (F2, ...) i just didn't understand what you wanted to show, now it is clear :)

Can i dump all of my tokens here?

Current CAD snap is all about desperation.
Here is GIF about it. Don't know how it was missed.

the susanna does not like the teapot on the ear
hahahaha

In 2013 I started research to discover tool, that will allow any kind of precise 3D transformation of selection, based on CAD snap system like this.
Here is my proposal for temporal widged that can expand this snap system.
It is based on behaviour of current ruler/protactor tool with ability to "hook" current object selection (like pose mode in armature) to bring precise CAD alignation.
With 2 point Key:


With 3 point Key:

This tool concept is based on series of research that was made in 1D_Scripts in mesh representation.
This tools are mostly 3DMatch, Sideshift, 3D Rotor/Scaler and Aligner. Links will brought you to videos that explains that concepts on practical tasks.
Also here is our attempt to bring simple CAD snap system to 2.79 both in object and edit modes: 1D_NP

I love this

Zino Guerr (Zino) rescinded a token.
Zino Guerr (Zino) awarded a token.
Zino Guerr (Zino) rescinded a token.

Hi guys i found some examples of how it can be from guys on bc who explains some actions with manipulators:
https://blender.community/c/rightclickselect/rHbbbc/free-move-and-rotation-of-pivot
https://blender.community/c/rightclickselect/vqbbbc/interactive-pivot
I think its very useful.

There is mathematical problem. Origin in Blender is not the same thing, like pivot in maya. Blender's origin is true origin of mesh - it's base and zero. Maya's pivot - is local transformation point, that is counted from real origin that is never shown.

If you are familiar with maya you may know that decorated pivot is pure mess with instances and double origin recalculations.
Also, you can use addon with that functionality on your risk.
https://www.youtube.com/watch?v=VrYGXg5HjMA&feature=youtu.be&t=102

https://devtalk.blender.org/t/3d-cursor-as-a-snap-target-more-precision/3707

That means, that 3D cursor have to be grabbed with selected objects, also any kind matching/alignation/sideshift/rotor tools reqiures at least two points.

This seems to go somewhere related for editmode :
https://www.youtube.com/watch?v=2XCvYmMLf1M

There is a lot of similar researches about object/edit mode of this kind around snaps/alignation.
Kind a good point to start from, it is nice to have such prototypes.

In the cad applications, this operation is a standalone tool and often has the name "move" and is separated from the simple functions of grabbing to move objects ..

Having said that, now we have the active tools and an active tool specifically for these operations, would make many happy

This active tool should allow to select the start point of moving the active object/object's or mesh in edit mode, visually measure the distance during the movement (also set the parameter distance & radius from the start point), and with the mouse click to set the destination point. (the snapping obviously essential that work well)

In the cad applications, this operation is a standalone tool and often has the name "move" and is separated from the simple functions of grabbing to move objects ..
Having said that, now we have the active tools and an active tool specifically for these operations, would make many happy
This active tool should allow to select the start point of moving the active object/object's or mesh in edit mode, visually measure the distance during the movement (also set the parameter distance & radius from the start point), and with the mouse click to set the destination point. (the snapping obviously essential that work well)

... and it is already written by us in python for about a year ago. Here is it https://github.com/Korchy/1d_np.
Enjoy!)

Having separate tool for moving with snap, rotatig with snap and scaling with snap is wrong solution, snap problem is problem of just a several lines in Blender's snapping code.
But someone has gone further, and made a special buid, that differs with couple python scripts, and called it "mechanical blender")
This is not the way we go.
We follow relevancy priority order.

... and it is already written by us in python for about a year ago. Here is it https://github.com/Korchy/1d_np.
Enjoy!)

Hi, nice script! Works well. I have some suggestions.

  1. When using CC Copy you select an object, select point, move a mouse, then original object disappears. After a mouse click, nothing happens. The final result is visible just after hitting "Enter". It would be more intuitive if the original object will stay visible and copy created immediately after mouseclick in a new location.

  1. With ZZ Move it would be cool if after move original object "ghost" will stay in place with the possibility to snap to it. And disappear after finishing the operation.

  1. Is it possible to assign keyboard shortcuts to those operations?
  1. Ar you planning to add RR Rotate and SS Scale options? :) Also 2.8 support? Maybe I can join with further development of plugin?

@Paul Kotelevets (1D_Inc) I was curious about mechanical blender and I went to try it, I also found the post on blendernation that then links this proposal ...
I read on the site of mechanical blender who chose to create a self build because it was not implemented in blender ...
here obviously my curiosity emerges, why hasn't this patch set been implemented?
I looked around the tool, and it doesn't seem to work badly ...
too bad that has been proposed since the end of 2015

I followed the videos here, and I did the tests and methods used, using "b" and "c" key for point-to-point snap and rotation around a point ... and they're brilliant!

the combo "g + b + ctrl-shift-tab" to change snapping mode on the fly .. it's very powerful!
https://vimeo.com/mechanicalblender

... and it is already written by us in python for about a year ago. Here is it https://github.com/Korchy/1d_np.
Enjoy!)

Hi, nice script! Works well. I have some suggestions.

Hi.
No, we stopped this research, because such thing need to be available in Blender by default, at least, as far as it already have any kind of 3D software for decades.
Otherwise such tools will spread exponentially like any other crutches and bikes in programming.
Snap system should be updated at least for that tiny bit.

@Paul Kotelevets (1D_Inc) I was curious about mechanical blender and I went to try it, I also found the post on blendernation that then links this proposal ...

the combo "g + b + ctrl-shift-tab" to change snapping mode on the fly .. it's very powerful!
https://vimeo.com/mechanicalblender

Yes, I know, there is a lot of researches about snaps modifications around Blender, for both object and edit mode
(Snap Utilities, for example)
https://youtu.be/2XCvYmMLf1M

I contacted developers, they are busy with stable 2.8 at the moment, so snapping update is in the planning stage of the next step.

A very nice example of CAD/snap toolset
NP Station

how about universal toggle button for basepoint mode, so we don't have to press b every time we want to use grab/rotate/scale with basepoint. just toggle that button, and everyone got what they need without hassle...

how about universal toggle button for basepoint mode, so we don't have to press b every time we want to use grab/rotate/scale with basepoint. just toggle that button, and everyone got what they need without hassle...

Because of B.A.S.E. proposal, that extends default toolset not only to 1-point, but also to 2 and 3-points alignments.
https://youtu.be/w_zJAlN6vqc

It would be great if the new snap system could move, rotate and scale an object with several basepoint. To align the object with points on another object.


It would be great if the new snap system could move, rotate and scale an object with several basepoint. To align the object with points on another object.

Do you mean, like in B.A.S.E. proposal?
It is already requested then.
https://youtu.be/w_zJAlN6vqc