modeling for fabrication

hi there,

I was wondering if someone wanted to help me out.

there is a script out there called paper modeler done by emu. this paper modeler breaks up the the polygons of the mesh and flattens them so you can make the thing out of paper (or in my case have them laser cut from acrylic). this means that i can design very complex meshes and build them again in real life.

I was wondering if anyone (if youre reading this emu you too! i just didnt want to keep bothering you! :p) would like to help me out by creating an addon which will allow me to do the same but with a frame structure.

what this plugin needs to do is take each edge in the frame and seperate it, giving it a number at the top and the bottom.
this is a quick sketch of what it might look like:
http://www.pasteall.org/pic/45739

now. even more useful than this would be the ability to first of all ask blender to turn those lines into pipes. then tell it to put a sphere (of a chosen size) whenever two pipes join. again. this would be additional rather than the main aim. so if any one thinks theyre up for the task let me know :slight_smile: i realise that this is a big ask but it would be an amazing help!!

anyone? :frowning:

“Do free stuff for me”-threads aren’t usually so popular
I reckon you just need the lengths of edges and their connecting vertex id numbers. This prints to the external console. Window -> toggle system console. For bigger meshes you might need a file output, though. Insert the name of your object where instructed and set the desired maximum edge length.

import bpy
def vertsByIds(ob,ids):
    return (ob.vertices[i] for i in ids)

print("=================")
obj=bpy.data.objects['Cube'].data #change 'Cube' to something more appropriate

###### what is the length of the longest edge in reality #########
longest=10 

ids= [list(x.vertices) for x in obj.edges]
verts=(vertsByIds(obj,edge.vertices) for edge in obj.edges)
edgeLengths = [(b.co-a.co).length for a,b in verts]

maxLength=max(edgeLengths)
proportions=[L/maxLength*longest for L in edgeLengths]

for i in zip(proportions,ids): print(i)

thanks so much for getting back to me! i realise people dont usually like doing stuff for free but im a poor student. like, super poor. i was hoping maybe someone had been working on something like this and just not mentioned it yet or something so there wouldnt be any work needing to be done.
but anyway! thank you very much again and when im finished ill upload a picture. im almost finished my model that another user has helped me with (emu) since updating the paper modeler and im sure he’ll be happy with the results.