A - Selections

Proper selection of the entities to pass to the Spirix plugin is crucial to creating the desired surfaces. The create_spirix_surface function requires that the points be precisely ordered or the array processing falls apart. This is easy enough to do by creating head-to-tail lines, arcs, splines, polylines, etc., that define the boundary (and the order) of the shape desired. It would then seem logical to select these in order and have the plugin pull them off the selection list. However, Sketchup has a mind of its own when it comes to ordering the selection list ... here's the applicable caveat from the API docs:

Note that the order of entities (selection[0], selection[1] and so on) in the set is in no particular order and should not be assumed to be in the same order as the user selected the entities.

Putting the selection into a group first doesn't solve the problem either since the group is created from the re-ordered selection list. While the input list could programmatically be sorted head-to-tail, the morphing function requires that the start points in the two boundaries begin at corresponding positions so some sort of start point would need to be specified as well. Using the API loop function isn't an option since open paths are allowed (and even encouraged).

The workaround is to create the geometry you want to use and then put it into a group. Next, de-select the group and carefully trace the path head-to-tail using new geometry. When done, the plugin will use the un-grouped geometry as its input in the order that it was created. Be forewarned that editing the geometry after it is created will generally alter the order and spoil the result. Also, any geometry left un-grouped somewhere will be incorporated into the selection.

This approach quickly becomes unwieldy, so the Spirix Create Group function should be used for all but the simplest creations. While grouping selected items alters the order, the Create Group function uses the non-grouped geometry (as above) and copies it in order to the newly created group. Once created, the original geometry should be deleted (note that since version 0.93, geometry is auto-deleted). As many groups as needed can be created with different names. Note that the original orientation and position of the grouped geometry will be used irregardless of where the groups are subsequently located (note that this has changed in version 0.93; groups may be moved and scaled and used in their new orientation). While this means that the geometry must be created in place about the origin and the z-axis, after it is grouped, it can be moved aside or hidden to allow work on the next phase of whatever is being built.

As an example, consider the set of three circles:

These have been created in the x/z-plane and grouped. Next, the group is de-selected and three arcs are created counter-clockwise about the outside of the circles starting with the intersection of the smallest circle with the next larger circle:

Deleting the group leaves the desired geometry in place (and in order):

It is not necessary to delete the surfaces created by the closed loop (or the group, for that matter), but doing so clearly shows the boundary in which we are interested:

The sequence of edges is now ready for use by the Spirix Create Surface function. Selecting Create Surface and accepting the defaults produces a nice surface of revolution as defined by the outline above:

Using the Soften/Smooth Edges dialog produces a more pleasing rendering:

Careful attention to the selection process will result in greatly reduced stress and confusion.

NOTE: Some models that were created with Spirix can be found at https://3dwarehouse.sketchup.com/user.html?id=1824658900641239202016828