Curve Tools

Plugin Commands for Softimage / Topology Operators
JScript

Code: Eugen Sares
Testing: Stefan Kubicek

If you are used to Bezier-Spline modelling in 3ds max, you most probably will experience Softimage’s NurbsCurve workflow as a setback. As powerful as Softimage’s Polygon Modelling toolset is – curve based modelling never received much attention. Try anything that goes beyond modifying a path curve – like floorplans, logos, type etc. – and you will quickly reach the limits of what is feasible.
There are decent tools to edit Points and Knots on an existing NurbsCurve, but almost none to work with Subcurves (Softimage’s pendant to the 3ds max „Spline“ Sub-Object). You cannot even delete them out-of-the-box.
This addon adds the most needed Curve Operators to Softimage, bringing it to a level of flexibility comparable to 3ds max. It does not make Softimage an „industrial strength“ Curve modeller, like e.g. Rhino, but in many scenarios you won’t need another application for Curve editing any more.

Tools included:

Attach Curves: attach one or many Curve(Lists) to the first in the selection.
Blend Subcurves: connect Subcurves with a Segment (bridge) between every selected Curve Boundary pair.
Delete Subcurves: delete one or many Subcurves.
Duplicate Subcurves: duplicate one or many Subcurves, with Translate x, y, z parameters.
Extract All Subcurves: „explode“ a CurveList – every Subcurve becomes a Curve object.
Invert (Sub)Curves: change curve direction. Like the factory tool, but with Subcurve support.
Log Curve Data: for debugging purposes. Logs (Sub)Curve details in a Script Editor. Points, Knot vector, degree, etc.
Merge Subcurves: connect Subcurves by „welding“ selected Boundary pairs (2 endpoints -> 1 midpoint).
Offset (Sub)Curves: draw an outline around selected (Sub)Curves.
Open/Close (Sub)Curves: like the factory tool, but with a few more options and with Subcurve support.
Scissor Knots/Isopoints: cut Subcurve(s) in two or more pieces at selected Knots or Isopoints.
Curve Tools Panel: Custom PPG containing all Curve Tools plus options for Isopoint selection: Intersections and Subdivisions. Curve trims and booleans can be realized with it (although maybe not as comfortable as in 3ds max).

After installation, all operators can be found under Model > Modify > Curve, except „Extract All Subcurves“, which is in Model > Create > Curve.

Things to keep in mind:
We did a fair amount of testing, but if you find bugs, don’t hesitate to give us feedback!
Since the tools are written in JScript, things might get slow when working on huge CurveLists, or when a big Operator Stack needs to refresh. So click FreezeM regularly! You can also work in Immediate Mode, but then the PPGs are modal, and you have no interactive preview.
Certain SDK restrictions have to be circumvented: it’s not possible to update Clusters inside a Topology Operator, and Custom Topo Ops cannot use internal hidden Clusters like factory Topo Ops. Related to this is the fact that Subcurves created inside a Custom Topo Op are unselectable at first. However, freezing or applying a factory Op before the Custom Op resolves this (the latter you don’t need to do yourself – a „Clean“ Op gets added automatically when needed).
After freezing the (Modelling) Stack, orphaned Subcurve/Knot/Isopoint Clusters can be deleted.

Download:
keyvisCurveTools v1.4.xsiaddon

v1.31:
Added: Checkbox „Only deform“ in OffsetSubcurves.
Added: TopoOp „SetPointWeight“ (experimental!)

v1.4:
Fixed: Bug in CurveToolsPanel – names of Curves inside Models are correctly stored now.
Added: NurbsRectangle Primitive. Params: Length, Width, Subdivs U, Subdivs V, Degree, Centered.
Added: NurbsNGon Primitive. Params: Radius, Sides, Initial Angle, Inscribed/Circumscribed.

Donations are welcome, if you want to honor our efforts developing this addon!