Creating a Gold Ribbon-like Conductor Mapped to an Ellipsoid Surface

I am creating a 3D model of a butterfly coil (also known as a figure-8 coil), which is commonly used in microwave designs. This model will be used in EMS simulations. Please see the attached Rhino 8 model. The ellipsoid (‘egg’) has been trimmed in half horizontally to leave a dome with a flat bottom. The figure-8 conductor path needs to be mapped to the outer surface of this dome. In the model you will see how I have already created the figure-8, looking like the infinity symbol ∞. I created this coil in a 2D plane, then used CreateUVCrv, followed by ApplyCrv, to map it to the reference ellipsoid. In the 2D plane I also used Offset to create the ribbon (5µm wide) representation. Where the ribbon crosses over itself in the center, I have created a bridge. In this bridge I have elevated the three ribbon lines over the three lines directly below, so that the ribbon does not short electrically at the crossover. The bridge creates about a 2µm vertical separation between the ribbons at the crossover. To emphasize again - this figure-8 coil is formed from one ribbon which is wound in clockwise direction in one loop and in the opposite direction in the other loop. The two loops of the coil are symmetrical for all practical purposes.

Here is my problem - I have tried Loft to turn the ribbon conductor representation as a step toward forming a real ribbon conductor. Loft seems unable to hug the ellipsoid surface - which is a critical requirement. I looked into the Sweep commands - but I did not see a workflow with those that would give me the surface-conforming ribbon in need. Does Rhino 8 have the tools that would allow me to create the ribbon conductor in the figure-8 and suitable for EMS? This design is intended for use up to 110 GHz - so the ribbon width of 5µm is important. The thickness of the ribbon is less important - at 110 GHz the signal penetrates the ribbon only about 240nm, about 1/4 micron. The ribbon will be a deposited layer so as long as EMS ‘understands’ it as a gold conductor 5µm wide and a fraction of a micron thick it’s ok.

If Rhino does not have the tools to achieve what I need, what other options are there? I could export the model I have and (hopefully) use it in some other tool. But I hope there is a way to accomplish this in Rhino.

Butterfly_Coil_Rhino_Model.zip (4.7 MB)

Is this what you want? It is 5 microns wide and 0.5 microns deep. But are the sharp edges OK or should it have a more rounded profile? If so, so indication of how it should look would be helpful.

If this meets your requirements, I’ll explain how I made it.

Regards

Jeremy

This looks exactly like what I need! Yes, please tell me how you did this!! Thanks so much, Jeremy!.

Sure, no problem.

  1. I made a copy of your ellipsoid and curves so I could leave yours undisturbed.
  2. I remade your curves to make them symmetric (this has more to do with my occasional OCD than your requirements, but there we go).
  3. I flowed the two outer curves onto the ellipsoid - I didn’t need the middle one. I made a copy of the flowed curves on a hidden layer for use later.
  4. I trimmed out the curves to give me an S curve rather than a full figure of eight, leaving room for the bridge:

I used offset on surface, with a distance of 5 microns, and trim to create the caps. The curve pieces were joined into a single closed curve.

  1. I copied the ellipsoid and used the S curve to trim the copy into an s-shaped ribbon.

  2. I unhid the layer with a copy of the original flowed curves and extracted the two short sections that lay across the middle bar of the S. I set a CPlane using the 3 points option applied to 3 of the ends of my two short curves, and set the gumball to the CPlane, so that I could move them vertically away from the centre of the ellipsoid by 2 microns.

  3. I used Arcblend to join each end of the short curves to the nearest side edge of the ribbon, forming the sides of the bridge.

    I joined these connections to their short curves: and used these as rails to sweep one end of the ribbon to the other, then joined the resulting bridge surface to the ribbon, closing the figure of eight.

  4. I used OffsetSrf to create the solid conductor, setting the distance to 0.5, solid=Yes and Loose=No, and checking the direction was outward.

Butterfly_Coil_Rhino_Model 001.3dm (16.7 MB)

HTH

Jeremy

Please let me know the steps you did to achieve this - this is actually very important because any lack of symmetry in the lobes is a bad thing from a microwave physics standpoint. I’d much rather err on the side of precision than have to deal with a lack of symmetry in the EMS simulations, as there are already a number of other important variables I’ll need to sweep, and eliminating symmetry issues is a BIG plus.

OK, from memory, I:

  1. Deleted the two outside curves.
  2. Created a plane from the boundary square.
  3. Ran a horizontal line from one side midpoint to the other.
  4. Moved the figure of eight curve so that the central crossing point was at the centre of the plane and line.
  5. Exploded the curve into its constituent parts.
  6. Put a bounding box around the curve(s?) on the left hand side.
  7. Moved the bounding box vertically so its side mid-points were on the line from step 3.
  8. Drew an ellipse using the inner mid-point as the centre, the outer mid-point as the end of one axis and the top corner as the end of the other.
  9. Confirmed the ellipse was a close approximation to your curve.
  10. Mirrored the ellipse about the vertical centreline of the plane.
  11. Drew a line tangential to two curves from one ellipse to the other to recreate the crossing line through the centre, and repeated for the other diagonal.
  12. Used the diagonal lines to trim away the unwanted parts of the ellipses. Joined all the remaining curves.
  13. Offset the figure of eight using the both sides option. Note that this only creates offsets as far as the central crossing point, so has to be repeated for the second ellipse.
  14. Exploded the four offset curves and deleted all the straight lines in the middle, before drawing new lines to reconnect the curves appropriately, then joined everything again.

Key takeaways are that if you need to build something symmetrical [or anything really], time spent on a few construction lines to guide you is time well spent, and making one segment and mirroring it is easier and less error prone than drawing all parts individually. but at the end of the day, let your eye guide you: if something jars even a little, there is probably something awry.

HTH

Jeremy

Hi Jeremy - I wanted to take this step-by-step to make sure I understand the process, as I need to make some key changes to the butterfly coil in order to more faithfully adhere to the microwave physics.

For these steps: I flowed the two outer curves onto the ellipsoid - I didn’t need the middle one. I made a copy of the flowed curves on a hidden layer for use later.

  1. I trimmed out the curves to give me an S curve rather than a full figure of eight, leaving room for the bridge:

I used offset on surface, with a distance of 5 microns, and trim to create the caps. The curve pieces were joined into a single closed curve:

In my original design the center curve is my model, and the two outer curves were created using Offset, using Both Sides with a distance of 2.5 to give me the 5 micron wide ‘ribbon’. 1. Does the center curve ‘get in the way’ as the process continues to create a real ribbon conductor, or can I leave it in place? 2. You used OffsetOnSrf with a distance of 5 microns - but didn’t you already flow the two outer curves onto the ellipsoid? Why did you need to use OffsetOnSrf?

I use Rhino’s layers feature extensively. You can, for example, place construction lines like the central line on a “Construction” layer and hide that layer once you have moved past the stage where you need to see the line. That way you can always go back to it if you want to tweak something, but otherwise it isn’t cluttering up the image.

I used the offset to create the end caps that close off the ribbon where I intend to insert the bridge:

This way the ribbon follows the surface exactly and finishes a consistent distance from the part the bridge spans. I need to cap the ends so I can trim the copy of the surface that will form the bottom of the conductor.

Ok, that makes perfect sense now. A question - I need to implement a gradual taper of the ribbon conductor as it approaches the bridge, from 5µm wide to 3µm wide. Then, after encountering the bridge, a reverse gradual taper back up to 5µm wide. I want to be able to designate the points where the taper begins, ends, and starts to widen again, and where that reverse taper ends. Would it be best to implement this in 2D and then map it to the surface, or map it in the 3D space?

Definitely in 2D. I’d switch to capping the curves for the bridge gap there at the same time.

What did you use to map the curve onto the ellipsoid surface in the first place? I have tried 1. Pull, 2. Squish/SquishBack and 3. CreateUVCrv/ApplyCrv and each of these workflows seem to have their problems with distorting the artwork when it gets mapped. #1 - seems to be overly sensitive to where the artwork (curves) are located on the 2D plane. #2 - I get weird bumps in the mapped curve where the artwork is close to, but not touching, the created 2D plane’s outline. #3 - This one seems to change the curvatures, making them sharper and risking mW physics issues.

I want to find a workflow that is most faithful to the original artwork curvatures. What would you suggest?

Hi William,

Use _FlowAlongSrf.

Your 2D curves need to be resting on a planar surface: from memory yours aren’t but have a square boundary curve, so use that to make the planar surface if necessary. Then run flow along surface and when asked to select a base surface, select the planar surface edge somewhere near where the cursor is shown here:

and for the target surface select somewhere on the bottom edge of the ellipsoid.

Does that give you the precision you need?

Regards

Jeremy

I added a Plane, forcing it to a Z=0, then Project’ed the curves onto that plane. But FlowAlongSrf asks for the curves, then the plane, then the surface to flow onto - what I get is the curves mapped onto a plane that sits above the ellipsoid. I attach the model - this is w/o any plane I created because the loops are shown as being flat against the CPlane. This model has modified loops - they no longer cross, they are separate ‘kidney-shaped’ lobes. This is to suit certain mW physics. But I have not been able to get them to flow onto the Substrate_Ellipsoid surface using FlowAlongSrf. It’s probably something trivial I’m missing but I just haven’t been able to identify the problem despite lots of trying (and some AI help that hasn’t worked either). I want to say again, thatnk you so much for your help for a newbie to Rhino 8.

Butterfly_Coil_Forum_Model.3dm (3.8 MB)

Hi William,

Without seeing your full arrangement, I can’t fathom why your lobes would be above the ellipsoid. But with what you have provided, here are two sample planes that show how different sizes influence the lobe placement on the ellipsoid.

Note that the point where you select the edge of the square plane (the base surface) will influence the shape of the flowed lobes significantly. Here clicking the left edge (as seen in the top view) gives the pale green lobes, clicking the bottom edge (as seen in the top view) gives the orange lobes with an unwanted protrusion in the bottom edge.

Hey Jeremy! I’ve done it successfully! Your help is so very much appreciated. And the CurvatureGraph looks great too! This wasn’t done with the offset in place in the 2D space, so it doesn’t look like a ribbon, but I know how to do the mapping now and that won’t be a problem, and this curve is my ribbon centerline. You’re The Man!

Now I am working on creating the Bridge that will elevate the two side-by-side ribbons in the central region of the butterfly coil. Instead of implementing the crossover design where the two lobes cross over in the center (a Figure-8) I am implementing two independent ‘kidney’ lobes whose ribbons are side-by-side in the central region of the coil. These side-by-side ribbons are elevated over a single wide bridge, and the only ‘connection’ between the two lobes is via the differential H-field shared between them. I have the bridge section of the ribbons split away, and I have the Bridge itself designed. Since this Bridge is wider and longer than the previous design, it will need to conform to the curvature of the ellipsoid, and of course the ribbons passing over it will need to conform to the curvature of the Bridge.

So I am faced with (1.) Turn the Bridge curves I have defined into an actual 3D surface, (2.) Map the Bridge itself to the curvature of the ellipsoid without modifying the Bridge surface curvature that the ribbons must conform to, (3.) Map the ribbons in the Bridge section that I split away to the Bridge surface without manual editing using the Gumball, (4.) Splice the completed Bridge - ribbons structure into the ‘kidney’ lobes where they belong in the finished coil.

So I am viewing this Bridge as a dielectric wafer that sits on the surface of the ellipsoid, perfectly conforming to that surface, while the wafer’s upper bridge-like surface has the ribbons conforming to it, and as the ribbons come down off the bridge they resume conforming to the ellipsoid surface.

Challenges - I have two different 3D curvatures that get objects mapped onto them - the ellipsoid gets the ribbons and the Bridge gets the ribbons in the central region where the lobes ‘meet’ side-by-side. Trying to mix the 2 different curvatures in the separate levels of this overall structure is not going to be easy - and I cannot afford to elevate the ribbons over the bridge manually - the ribbons have to be perfectly conformed to the bridge without doing that ‘by hand’, because of the mW physics involved. So what does my workflow have to be? Should I ‘rip the ribbons in the Bridge section off of the ellipsoid surface’, in other words, use the flat 2D versions of that section, and map them to the Bridge surface first? Then map that complete structure to the ellipsoid surface and connect-up the ribbon ends to form a completed dual ‘kidney’ lobe coil, and then do the Loft / or Sweep to turn the ribbons into conductors that are 0.5mm thick?

I have attached the Project so you can see the details - I’m not asking for someone to do this for me - I just need to figure out the best workflow. Of course whatever anyone does experimentally to help figure this out is appreciated - But at this point I’m not sure what Rhino can accomplish and/or in what order and in what mode (2D or 3D) each step needs to be executed.

Butterfly_Coil_Forum_Model_3.3dm (3.9 MB)

After thinking about this more deeply, I think the upper surface of the Bridge DOES need to implement the curvature of the ellipsoid, PLUS its own curvature (that raises the ribbons off the surface of the ellipsoid and brings them back down) otherwise the ribbons on the Bridge would not still ‘be in sync’ with those leading up to the bridge, and in effect, they would be tilted out-of-harmony with the ellipsoid surface. That might be Ok except for the fact that the next layer deposited above this coil layer will be perfectly conformed to the ellipsoid curvature, so ribbons on the Bridge not also doing so would be an anomaly - not good in mW physics. So the Bridge upper surface will have a compound curvature, if that’s the way to put it.

Hi William,

A quick head’s up: if you look at the right viewport, you will see that your bridge ribbon curves are not symmetrical. I raise this point because you previously indicated that symmetry was important.

Regards

Jeremy

Hi Jeremy - thanks for the heads-up. I think what is happening is that within each lobe there exists an approx. 0.26µm variation in each loop’s tracks as it approaches the central area where the Bridge will be - likely caused by the FlowAlongSrf command, or perhaps more likely by some tiny difference I caused in my alignment on the 2D plane before the FlowAlongSrf command was executed - but unless I am mistaken BOTH lobes have the identical slight aberration, and the symmetry that is really crucial is that between the lobes, not that within a lobe. These two lobes will accomplish two things in the 110 GHz domain this coil is designed for - 1. nullify the E-field (electric) and, 2. multiply the H-field (magnetic) by 2X, as seen and tapped at a line running down the geometric centerline of the Bridge, a line parallel to the ribbons. So if the two lobes have identical aberrations and these are not too consequential, that still constitutes the required symmetry. Since the wavelength of 110 GHz is about 1.4mm in fused quartz (the ellipsoid substrate material) then the max aberration within each lobe is about 260nm, or 5.38e3 times smaller than the wavelength of the 110 GHz signal. That is a negligible aberration, if it is virtually identical in both loops. If not, then it is not negligible because the E-field won’t quite be cancelled - that difference in the E-field in each loop will become common mode noise that is undesirable. And if the lobes do not have virtually identical aberrations, the H-field, which is seen as a differential signal when tapped at the Bridge, will not be balanced (adding up to zero) and will therefore have a non-negligible phase error.

Well I was finally able to create my Bridge with the compound curvature so that when I flow my loop ribbons over the Bridge they will conform to the Bridge curvature and simultaneously conform to the ellipsoid curvature. It wasn’t nearly as difficult as I imagined. When I integrate this Bridge into my butterfly coil and finally extrude the ribbons to 0.5 microns thick, it’s going to work beautifully at 110 GHz.