Notifications
Clear all

[Closed] [help] how to move vertices incremently with mouse

I am working on a project where precision more than whole numbers isn’t desired.

Is there a way to move vertices only using whole numbers. For example if I have my unit set up via spinners at 1ft – It allows me to move the spinners at 1ft but when I move vertices with the mouse in the viewport – I can go in-between 1ft which isn’t desired.

Can anyone recommend a work around or a possible solution?

11 Replies
4 Replies
(@denist)
Joined: 11 months ago

Posts: 0

what do you really need? to have all verts always being snapped to specified grid (round positions) or to move verts with specified rounded spacing?

(@kydjester)
Joined: 11 months ago

Posts: 0

Hi denisT, It sounds like, “To move verts with specified rounded spacing” is what I require.

So, When I select vertices, edges etc with a move tool and I drag them in the viewport, I want them to move a specified unit – In this case 1ft increments.

(@denist)
Joined: 11 months ago

Posts: 0

what should happen if you rotate verts?

(@kydjester)
Joined: 11 months ago

Posts: 0

Well my thinking is that the rotate tool works just fine when snapping is turned on. So the rotates workflow would be left unchanged.

Maybe by using one of the snapping features?

The problem is the verctor of movement. If you wants to move the sub-selection in one of the world or local axis, then the TTI dialog(or the spinners on the bottom of the 3dsMax window) can help you, but when the direction of movement is not the same as one of the world or local axis, then…?

Try with Working Pivot – first set one of its axis to match the direction of movement, then use the spiners.

2 Replies
(@kydjester)
Joined: 11 months ago

Posts: 0

Thanks for the response miauu – I assume the advice above is to continue using the spinners (manually clicking the up/down each time a movement is required) – However, What about moving the sub-selection with the mouse. Will this solution work in that case well?

(@miauu)
Joined: 11 months ago

Posts: 0

The “spinners” solution will works in any cases.
There is a script called Move with Keyboard. I don’t know if it works or not, but you can try it.

the task is very specific and makes sense just for your pipeline. so stay with spinners.

1 Reply
(@kydjester)
Joined: 11 months ago

Posts: 0

dentisT – Thanks for your consideration.
When modeling parts of a city for example – you want to model with some level of consistency and precision. By modeling with fixed increments it’s much easier & quicker to align windows and get spacing correct. So, for example if my building windows are 5×5 – It’s much easier to do a 5×5, eg. move the vertices 5 units and I know it’s precise. This would be much easier if the controls discussed above is available in some way.

miauu – has this great tool that set’s length of a edge and it works but it requires an increased amount of steps to get the measurements right.

Hopefully someone backs me up on this one – Because I think it’s a a very essential script/plugin that is missing from 3ds max that will greatly speed up everyone’s modeling workflow – especially at the prototyping stage.

this might be not a perfect tool but at least it shows the idea. you can modify it making woks with editable_mesh, or modifiers (edit_poly for example):


try(destroydialog SnapMoveDialog) catch()
rollout SnapMoveDialog "Snap Move" width:160
(
	radiobuttons space_rb labels:#("World", "Local", "Parent") columns:1 align:#left offset:[45,0]
	group "X: "
	(
		button x_lbt "<" width:24 height:24 align:#left offset:[15,-6] across:3
		spinner x_sp range:[0,1e9,10] type:#worldunits fieldwidth:60 align:#left offset:[-5,-2] 
		button x_rbt ">" width:24 height:24 align:#right offset:[4,-6]
	)
	group "Y: "
	(
		button y_lbt "<" width:24 height:24 align:#left offset:[15,-6] across:3
		spinner y_sp range:[0,1e9,10] type:#worldunits fieldwidth:60 align:#left offset:[-5,-2] 
		button y_rbt ">" width:24 height:24 align:#right offset:[4,-6]
	)
	group "Z: "
	(
		button z_lbt "<" width:24 height:24 align:#left offset:[15,-6] across:3
		spinner z_sp range:[0,1e9,10] type:#worldunits fieldwidth:60 align:#left offset:[-5,-2] 
		button z_rbt ">" width:24 height:24 align:#right offset:[4,-6]
	)
	mapped fn moveverts node axis:[0,0,0] = if iskindof node Editable_Poly do undo "Snap Move" on
	(
		space = case space_rb.state of
		(
			1: #world
			2: #local
			3: #parent
			default: #world 
		)
		p = [x_sp.value, y_sp.value, z_sp.value] * axis
		in coordsys space polyop.movevert node #selection p
	)
	on x_lbt pressed do moveverts selection axis:-x_axis
	on x_rbt pressed do moveverts selection axis: x_axis
	on y_lbt pressed do moveverts selection axis:-y_axis
	on y_rbt pressed do moveverts selection axis: y_axis
	on z_lbt pressed do moveverts selection axis:-z_axis
	on z_rbt pressed do moveverts selection axis: z_axis
)
createdialog SnapMoveDialog