Mirroring - best way to get rid of other side

What’s the best way to get rid of all the vertices on the other side (for example, all the vertices on the right side of center X) when you’re mirroring an object? Just border-selecting works for simple models, but in more complex ones with a lot of vertices close to center X, that’s not optimal.

I’ve tried using boolean operations, but they usually produce artifactes and require some cleaning. Also, playing around with mirror modifier with clipping on can get the job done, but it’s kind of a hack, and requires some cleaning too.

Just wondering if there’s any way you’re supposed to do it?

I am assuming vertices you are talking about are at or near around the mirror axis; an object center. In that case, how about going into Edit mode and select / drag all the vertices away from object center; mirror plane. Apply mirror modifier. Activate Do Clipping. Than just select / drag all the vertices back to where it was. That will collapse any uneven borderline vertices.

Hi, dragging in an ortho view should be enough I think, but you can run this script…

import bpy
ob = bpy.context.object
verts = ob.data.vertices
bpy.ops.object.mode_set()

for v in verts:
    v.select = False
    if v.co[0] > 0:
        v.select = True

bpy.ops.object.editmode_toggle()
bpy.ops.mesh.delete(type='VERT')
bpy.ops.object.editmode_toggle()

You can change the ‘if v.co[0] > 0:’ line to match your needs… co[0] means X, co[1] means Y and co[2] means Z, so ‘if v.co[2] < 0:’ will delete the lower half of your object… you can use any value other than 0.