script: Cookie Cutter v. 0.0.2

Hi,

This script projects a closed mesh edgeloop or bezier curve on a mesh along the X, Y or Z direction.

Known bug: sometimes it skips a face from being cut for no particular reason…so please check the new mesh for mistakes.

The script is not finished but usable. When placed in the scripts directory, it is accessible via the mesh submenu of the scripts window.

Thanks to theeth for the name and FourMadMen and macouno for the suggestions and feedback. :slight_smile:

before:

After using the 3 mesh edgeloops:

and after removing the inner verts: :smiley:

Greetings,

Wim

Pretty work.

One of the things that’s slightly annoying about this script is that whatever closed curve or mesh you project it’s going to go through everything on the base mesh.

By that I mean that if you want to cut a square into a sphere you will cut through both sides of the sphere.

It would be good if you could control how many surfaces it affects.

The concept is good, but like anything snazzy like this in Blender it has the significant drawback of stuffing up the faces at point of intersection. I think I’ve become slowly obsessed with that idea.
:smiley:

Regards
Caleb

Cool script. /me goes to test it. :smiley:

A quick (and not finished) hack can be found here. I added a toggle button with the result that when it is pressed, only those faces are cut that have all verts selected. This also results in “double edges”, so please check the mesh afterwards. It will take some more time before I can solve that…

I can’t help with that as long as blender doesn’t support n-gons, but if you are not too lazy to clean the mesh a little afterwards, the results can be pretty good: :slight_smile:

(this was the same mesh as the one in the first post, subdivided twice after cutting and cleaning up)

Greetings,

Wim

-------------------------
- Slice script V. 0.0.2 -
-------------------------

slice has 94 edges and 96 verts
Traceback (most recent call last):
File “slice_selverts.py”, line 1239, in bevent
File “slice_selverts.py”, line 892, in main
File “slice_selverts.py”, line 413, in SliceData
IndexError: list index out of range

??

jms, can you post a blend file?

Nothing, I added nurbs curves instead of bezier…

Looks cool. I think a way to get round cutting through the entire mesh when you just want one surface would be to select the ‘back’ surface (that you won’t want cut), separate them into another object, run script then join the meshes together and remove doubles. Shouldn’t be too big a problem unless the mesh is very complex.

Interesting. I’ve been playing around with an idea for something similar. I was even calling it a cookie cutter, though I haven’t gotten vary far with the actual coding due to lack of time. However, in my idea, the cutter would be a mesh, with thinkness, and only parts where it intersected would be cut. That way cutting into a sphere, and only wanting to cut one side is easy to manage. Then with that working I was planning to use it as a base for new non-sucky boolean operators.

hmm…though if yours works in just one standard axis, I think I have a good idea without looking at your code how you did it – you’re doing it using the intersection of two lines. I’d have to use the intection of a line and a plane, then test if the point is in both the limits of the line and the plane. Which I don’t think should be all that complicated.

However, I may be better off continuing fron scratch rather than contributing enhancements to your script. In addition the added ability of limiting the cutting to mes surfaces, to make it usable for boolean operations, it needs to not only cut the edges of the cookie where the edges intersect with the cutter’s planes, but it also has to add new points where the edges of the cutter object interset with the faces of the cookie object.

Caleb72

In edit mode you can select the back half of the mesh, numpad 3 for a side view go into Orphapedic view :smiley: :wink: then choose “hide” in editing (F9) the hidden vertices will not be effected :slight_smile:

Ken