i want to scale these vertices in a way that (i believe) cinema 4d would call normal scale.
instead of all of the vertices moving into the middle being scaled relative to the median, i want to scale then relative to each group’s median.
i have set the pivot point to invividual origins, and tried every tranform origin but cant get the points to scale individually. surely this can be done…?
this time i will select each vertice group and scale individually, but i’d like to know how to do it…
Alt S is scale along normals, you can always try that
that is what i was looking for… thank you. id buy you a drink if you here.
i wish the documentation were better…
OH NO, it isnt… it is still scaling toward a median point… the object center is lower than the selected vertices and they only scale up or down.
changing to other pivot points and axis modes produces undesirable results…
i wish the documentation were better…
Hmm, well thats the closest I can come, try emailing Jonathan Williamson with your problem, he might be able to help, or find a more experienced user, such as Plantperson, and 3demensia, and a couple others
You can do this sort of thing with OBJECTS – what you might want to do is temporarily convert your mesh islands into multiple objects, do your scaling, and then recombine them.
To do that, select all the vertices, press P and choose “By loose parts.” This will give you four objects (based on the screenshot you provided). Then, at the bottom of your 3D window, change your Pivot Point to “Individual Origins”:
Now even if you have multiple objects selected, any scaling or rotating will happen around each object’s origin, and not at the median for all objects.
When you’re done, select the four objects and press Ctrl+J to join them back into a single mesh. Not the most elegant way to do it, but it works…
I don’t think this sort of functionality exists in Edit mode. The main problem is that each FACE gets its own origin, but there isn’t a quick way for blender to create new origins for MULTIPLE GROUPS OF FACES within a single mesh. Maybe it could be scripted: it would identify all the mesh islands, then find the median for each group, then isolate each group (using temporary vertex groups) and then scale each island individually. Or something like that – I’m not nearly good enough at scripting to make it, or even to know if it’s really possible.
a quick and dirty script… select a mesh and change scale value
update: changed to work on selections inside loose parts…
if nothing / all selected will just scale each part as previous version
############################################
## scale mesh by loose parts + selections ##
############################################
scale = .95
import bpy
t = dict(bpy.data.objects)
a = bpy.context.object
em = a.mode
n = [a]
# separate mesh in loose parts
bpy.ops.object.mode_set()
bpy.context.tool_settings.mesh_select_mode = [True, False, False]
bpy.ops.object.editmode_toggle()
if not a.data.total_vert_sel: bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.object.vertex_group_assign(new=True)
bpy.ops.mesh.separate(type='LOOSE')
bpy.ops.object.editmode_toggle()
# make a list of the parts
for b in bpy.context.scene.objects:
if b.name not in t.keys(): n.append(b)
# transform selected verts on each
for c in n:
bpy.context.scene.objects.active = c
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.vertex_group_select()
bpy.ops.transform.resize(value=(scale, scale, scale))
bpy.ops.object.editmode_toggle()
c.select = True
# rejoin the pieces
bpy.context.scene.objects.active = a
bpy.ops.object.join()
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.vertex_group_select()
bpy.ops.object.vertex_group_remove(all=False)
bpy.ops.object.mode_set(mode = em)
Wow, nice, liero!
This worked perfectly with vertex and edge select enabled. It didn’t work when I was in face-select mode – perhaps because I had some edges without faces. I really need to learn scripting…
yes you should, it’s pretty easy and you will enjoy it!
the script seems to work here… besides I’ve found you can set scale to something like 1.025 or 0.975 and keep pressed Alt+P on script window to see changes in RT haha
@benu just modified the code to go first into vertex select mode… and to keep object name
@kaki now that I look at your pic this is not what you were after, but it can be done with some other script… anyway changed original one to work on selections