View Full Version : Create shape from edge

03-05-2008, 12:43 AM

I'm looking for a way to emulate the meshOp "create shape from edge" and i'm only allowed to work in mesh, so polys are not an option.

I understand i can call " meshOps.createShapeFromEdges ", and the dialog will popup, but since i am doing this several times, having a dialog continually popup would be annoying.

Currently i am taking an edge selection, getting the verts from those edges, and then using those vert coordinates as coordinates for my spline knots.

I haven't really worked with Splines, so much of the spline code i wrote was stitched together from samples i saw on here.

sample of my code:

Vert_array = #() ; obj = $

selectedEdges = getEdgeSelection obj
EdgeVerts = meshop.getVertsUsingEdge obj selectedEdges

for vert in EdgeVerts do
Vert_array[Vert_array.count + 1] = ( meshop.getVert obj vert )

-- Create shape -------------------------------------

new_spline = splineShape()
Spline_index = addNewSpline new_spline

for knot_pos in Vert_array do
addKnot new_spline Spline_index #corner #line knot_pos

close new_spline 1
updateShape new_spline

This code works fine when the verts of my mesh are clean and go in order, but as soon as they don't go in order, i start getting unexpected results.

Example: a mesh containing typology with verts aligning like this

" vert01, vert02, vert03 " : works fine

but when they align like this

" vert09, vert 255, ver 67 " : is when i am getting problems.

If anyone could lead me in the right direction it would be appreciated. Do i have options, or is having the dialog pop up the best solution?


03-05-2008, 09:56 PM
Would it be possible to sort the vert array?


03-05-2008, 11:07 PM
actually thats what i had to end up doing, i had to sort the verts using the edges as a reference, kind of ugly but only solution that we came up with currently.

CGTalk Moderation
03-05-2008, 11:07 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.