How to "find" and crease these kinds of edges?

Morning all!

I am trying to figure out how I can crease the marked edges easily.

I’d like to write a script to help me crease only the corners of meshes from Marvelous Designer, since simply applying a subsurf leads to rounded corners and gaps in the garment.

I just can’t figure out their specifics. Angle selection (via bevel modifier etc.) also grabs edges in the middle of the garment.

Any hot tips? :slight_smile:

There’s an option when in edit mode :
Select => sharp edges

That sadly also selects sharp edges on the surface of the mesh, as it’s purely based on angle selection.

1 Like

Sorry, my bad, I misunderstood your question…
I cannot help you with it :sweat:
Hope you’ll find your answer

Thanks nevertheless. I wish Marvelous Designer would offer more export options, would make life a lot easier.

for the corners one way is to use the Ctrl-B and V vertex option

there is aoos a way with bevel too using vert group

good luck

happy bl

Thanks for your input. I was looking for a more automated way to do this, since I’ll have a ton of meshes that I wanted to crease that way. I’ll keep investigating.

crease or bevel is function of what you select and need
so cannot really be automated as such

it is a manual tool unless you want all edges corner to be beveled!

have fun
happy bl

I managed to write a little script that does exactly what I need. I ended up creasing all the sharp edges, since it doesn’t really make a difference in this case.

For anyone interested in how to get garments from Marvelous Designer to Blender and prepare them for a subsurf modifier, here’s my workflow and script:

  1. Export from MD as FBX, multiple objects, thick
  2. Import FBX to blender, select all pattern pieces and have an active object
  3. Run script
import bpy
import bmesh

objs = bpy.context.selected_objects

# remove doubles
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles(threshold=0.00001, use_unselected=False, use_sharp_edge_from_normals=True)

for obj in objs:
    # crease edges
    me = obj.data
    bm = bmesh.from_edit_mesh(me)
    creaseLayer = bm.edges.layers.crease.verify()
    selectedEdges = [ e for e in bm.edges if not e.smooth ]
    for e in selectedEdges: e[ creaseLayer ] = 1.0
    
bpy.ops.object.mode_set(mode='OBJECT')


This barely took two seconds for a fairly complex garment.
I hope this helps anyone who’s trying to do the same thing.

1 Like