Thanks to some help from Karl, we've almost figured out the alternating surface pattern.
Basically, we run three knowledgepatterns, one that establishes the first set of curves, one that establishes the alternating set, and then one to build the geometry at the appropriate spacing (which I'm still trying to understand). Here's the code for each.. so far:
This gives two lists of curves-- CURVES, and CURVES2. By understanding how these curves relate to each other, we can systematically determine where the surfaces will be instantiated.
The idea is to divide the alternating curves at alternating intervals, allowing for a custom population of surfaces. I may need to rebuild the surfaceUDF part in a more simple way, ie coming from 2 points rather than four. If this is the case, referring to sketch above, the geometry for panel A0 can be derived from CURVES//CRV5 -and- CURVES2//CRV5 @ their respective EVEN ratio. Continuing this logic, panel B0 can be derived from CURVES2//CRV5 -and- CURVES//CRV4 @ their respective ODD ratio. This is seen in the script as:
p1.surfposition = (j*2)-2
p1.surfposition = (j*2)-1
depending on which curves we're working on.
The surfaces are skipping one position, which is almost what we want. Either way, I will begin rebuilding the surfaceUDF file now...
more to come this evening.