Download (Requires XSI v5.1)
Description:
This addon creates new entries in your Get>Primitive menu under polymesh and curves for custom presets. For example under your polymesh menu you will find new entries for meshes like “pants” and “mushroom”. You can also create your own very simply. Each preset is stored as a JScript file, so these can be executed very easily outside of the menus (for automatic rigging).
Usage:
To use the polygon mesh primitives…
- Get>Primitive>Polygon Mesh>Mesh Presets…>%preset_name% - will load a preset
- Get>Primitive>Polygon Mesh>Mesh Presets…>Save New Preset… - will save the selected polygon mesh as a jscript. You will prompted for a name. Giving an exisiting name will overwrite the existing file.
- Get>Primitive>Polygon Mesh>Mesh Presets…>Manage Presets… - will open a explorer (windows) or xterm (linux) pointing at the preset location.
You have a mirrored structure for curve presets.
There are four commands available for use:
- LoadMeshPreset( object_name, jscript_preset_file )
- SaveMeshPreset( object, object_name, output_path )
- LoadCurvePreset( object_name, jscript_preset_file )
- SaveCurvePreset( object, object_name, output_path )
Notes:
This plug-in is not an exporter. It was designed with people who do a lot of rigging in mind, who want quick and simple access to primitive curves and meshes for use in scene and rig creation.
Keep meshes light (i.e less than 10K polygons) - this is a scripted solution (for now).
Curves presets also support subcurves.
Installation Instructions:
Drag’n'drop the addon file into a viewport or Use the File>Addon>Install tool
More information on installing XSI addons on XSI Wiki
There are some built-in meshes and curves to get you started…

To help you make curve presets, here is a little JScript that you can run on selected curves to create a single curve list object.
var crvlist = SICreateCurve( "crvlist", 3, 1) ;
for( i=0 ; i<Selection.count ; i++ )
{
if( Selection(i).type != "crvlist" )
{
Logmessage( Selection(i).fullname + " is not a curve", siError ) ;
DeleteObj( crvlist ) ;
break ;
}
else
{
var curveobj = Selection(i) ;
for( j=0 ; j<curveobj.ActivePrimitive.Geometry.Curves.count ; j++ )
{
var vbArgs = new VBArray(curveobj.ActivePrimitive.Geometry.Curves(j).Get2( 0 )) ;
var args = vbArgs.toArray();
crvlist.ActivePrimitive.Geometry.AddCurve( args[0], args[1], args[2], args[3] ) ;
}
}
}
SelectObj( crvlist ) ;