from mxs help (as an explanation) which,by the way, is valid range of any signed 32 bit integer value
you can script both solutions, the spline solution can be done in a similar way to op original script ( fn GenerateSplineShape p1 p2 p3 p4 = …
or a path constraint to a linear path with 4 knots
more elegant solution if it’s all the same ID fn set_line_mesh_materialID spline_shape spline matID = ( spline_shape.render_useViewportSetti…
it’s not very elegant but you could do it something like this… fn set_material_id mobj faces matid = if mobj.modifiers[#Edit_Mesh] != undefined do (…
dunno, I always find creating mesh is easier than cleaning up after a built in max routine (especially when comes to correcting the usual mapping ball…
are those faces “known” in code or a user selection ? If they are known I would delete them and build the replacements from “scratch” as it were, user…
is the spinner set to Animatable in the param block definition ?
another edit it has to be said it’s not the way that EditNormals handles it in. You should really copy the way they do it in EditNormals e.g maint…
added an edit to the example for when you need to create the normals
try this MeshNormalSpec* nspec = mesh->GetSpecifiedNormals(); if(nspec && !nspec->GetFlag(MESH_NORMAL_NORMALS_BUILT)) { mesh-…
are you trying to setting them to [0,0,1] by any chance ? that will leave them unchanged because they’ll be in local object coordinates and they are …
\maxsdk\samples\mesh\editablepoly\EditNormals.cpp
thats cool, i asked about interfaceserver as it’s one of the best features of the sdk when you need one plugin class to interact with another. If you …
Edit: works great (the only unexpected thing is the order the rollouts are added seems kinda random but that doesn’t really matter in my case anyway)….