# Is there a more accurate way of knowing which vertice are affected by proportional editing?

The proportional editing tool use a white circle as an indicator to which vertice are affected but that works in 2D world well and not 3D.(for example if you design a flat paper page in blender and view it from top it works 100% accurately) As you see in the image above some vertice are within the circle but they aren't affected.Is there a more accurate way to know which are affected?

• View it from the top and you'll find they are within the circle. Consider the guide as a "sphere" around the vert (or median point of verts) when first selected. – batFINGER Aug 31 '16 at 14:34
• @batFINGER In complex meshes this won't work :/ – xlxs Aug 31 '16 at 14:41
• can you explain?, mentioned view from top in context to your screenshot as you have translated in what appears to be a global z direction. – batFINGER Aug 31 '16 at 15:05
• Consider using quad view or multiple views to see more. Consider circle select. Consider Hide Vertices to prevent movement. Even though Hide Vertices has limitations. – atomicbezierslinger Aug 31 '16 at 17:39

This script / addon may help. It simply selects the vertices impacted by the proportional editing, starting from the current selection.

Once visualized, you can Ctrl+Z to come back to your current selection.

bl_info = {
"name": "Select proportional editing impact",
"author": "lemon acidjuice",
"version": (1, 0),
"blender": (2, 77, 1),
"location": "View3D > Select > Edit mesh > Select proportional editing",
"description": "Selects vertices influenced by proportional editing",
"warning": "",
"wiki_url": "",
"category": "3D View",
}

import bpy
from bpy.types import Operator

def Influenced( u, selected, size2 ):
for s in selected:
if (s.co - u.co).length_squared <= size2:
return True
return False

class EDIT_MESH_select_proportional(Operator):
"""Select proportional editing impact"""
bl_idname = "editmesh.select_proportional"
bl_label = "Select vertices influenced by proportional editing"
bl_options = {'REGISTER', 'UNDO'}

def execute(self, context):
scene = context.scene
obj = context.active_object

size = scene.tool_settings.proportional_size
size2 = size * size

mode = bpy.context.active_object.mode
bpy.ops.object.mode_set(mode='OBJECT')

selected = [v for v in obj.data.vertices if v.select]
unselected = [v for v in obj.data.vertices if not v.select]

for u in unselected:
u.select = Influenced( u, selected, size2 )

bpy.ops.object.mode_set(mode=mode)

bpy.context.scene.update()

return {'FINISHED'}

# Registration

return self.layout.operator( EDIT_MESH_select_proportional.bl_idname )

def register():