[Solved] Select newly created edges after knife project operation

Hi guys, I’m wondering if there’s a way to select newly created edges after knife project operation. I have a model which I need to cut through by some lines(left picture) and then select newly created edges(middle picture) so I can split model into several pieces(right picture). Knife project operator sometimes selects newly created edges but unfortunately not all of them.


Edit:
I think it would be a nice extension to Knife project to have the option to also split newly cut edges, all just by one click. What’s the best place to ask developers for such improvement? thnx

I figured it out…

  • the way how to do it is using just one cutting edge per knife project operation,
  • this way it’s always guaranteed the last cylinder’s edge belongs to newly created edge loop
  • then it’s easy to select it and rip the vertices

something like this(it is used in a loop per cutting edge)


lastEdge = bpy.data.meshes["Cylinder"].edges[-1]
lastEdge.select = True
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.loop_multi_select()
bpy.ops.mesh.select_mode(type="VERT")
bpy.ops.mesh.rip()
bpy.ops.object.editmode_toggle()

After the knife project operator finishes, it normally selects one of the new slices.
You can simply separate this slice from the rest of the mesh using the separate operator ( bpy.ops.mesh.separate( type = ‘SELECTED’ ) ),
And you’ll get your two pieces and the edges will be duplicated.

If you still want both pieces in one object, you can just join the pieces back together.

This takes process will probably be a bit faster and easier to maintain, if you want to refine the process.