---------------------- 111_SetKnotTo_v0.1 ------------------ --- this is a set of macroscripts to change type of selected spline knots -- if no knots are selected then all knots are affected --- cycler cycles throug > corner > smooth > bezier > beziercorner > -- andrei kletskov (111) - http://andklv.narod.ru --- andklv@mail.ru -- v0.1 - 28 may 2005 - initial version macroScript SetKnotToCorner category:"111" toolTip:"111_SetKnotToCorner" silentErrors:TRUE (-------------corner-------------- try ( obj = selection[1] selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( setKnotType obj s v #corner selnone = false ) ) if selnone then ( for s = 1 to (numsplines obj) do ( for v = 1 to (numknots obj s) do setKnotType obj s v #corner ) ) updateShape(obj) print #corner ) catch ( ) ) macroScript SetKnotToSmooth category:"111" toolTip:"111_SetKnotToSmooth" silentErrors:TRUE (-------------smooth-------------- try ( obj = selection[1] selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( setKnotType obj s v #smooth selnone = false ) ) if selnone then ( for s = 1 to (numsplines obj) do ( for v = 1 to (numknots obj s) do setKnotType obj s v #smooth ) ) updateShape(obj) print #smooth ) catch ( ) ) macroScript SetKnotToBezier category:"111" toolTip:"111_SetKnotToBezier" silentErrors:TRUE (-------------bezier-------------- try ( obj = selection[1] selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( setKnotType obj s v #bezier selnone = false ) ) if selnone then ( for s = 1 to (numsplines obj) do ( for v = 1 to (numknots obj s) do setKnotType obj s v #bezier ) ) updateShape(obj) print #bezier ) catch ( ) ) macroScript SetKnotToBezierCorner category:"111" toolTip:"111_SetKnotToBezierCorner" silentErrors:TRUE (-------------beziercorner-------------- try ( obj = selection[1] selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( setKnotType obj s v #bezierCorner selnone = false ) ) if selnone then ( for s = 1 to (numsplines obj) do ( for v = 1 to (numknots obj s) do setKnotType obj s v #beziercorner ) ) updateShape(obj) print #beziercorner ) catch ( ) ) macroScript SetKnotTo_Cycle category:"111" toolTip:"111_SetKnotTo_Cycle" silentErrors:TRUE (-----------------------------------------------cycle fn setknott obj type = ( ------------------ fn to set knot to type try ( selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( setKnotType obj s v type selnone = false ) ) if selnone then ( for s = 1 to (numsplines obj) do ( for v = 1 to (numknots obj s) do setKnotType obj s v type ) ) updateShape(obj) ) catch ( ) ) fn checkknott obj = ---------------- fn to check type of the first selected knot ( type_array = #() ret = #smooth try ( --selnone = true for s = 1 to (numsplines obj) do ( splinesel = getKnotSelection obj s for v in splinesel do ( append type_array (getKnotType obj s v) --selnone = false ) ) if type_array[1] != undefined then ret = type_array[1] else ret = getKnotType obj 1 1 ) catch ( ) return ret ) fn nexttype type = ---fn to return next type ( ret = #corner if type == #smooth then ret = #bezier if type == #corner then ret = #smooth if type == #bezier then ret = #bezierCorner if type == #bezierCorner then ret = #corner print ret return ret ) ----------------------- body obj = selection[1] setknott obj (nexttype (checkknott obj)) )