How to draw a curve at a perpendicular angle from another curve

I am in the midst of making framing for a geodesic dome. Basically I did a wireframe version then offsetcrvonsrf to create a 50mm wide framework. Upon joining the ends of a section of frame to extrude and organise into joins at the meeting points it says the rectangles are not planar.

I can get the short sides of the rectangle (pictured) to be perpendicular with the long sides, however, this will change the angles of the dome and I won’t be able to accurately model the framework. So I want to extrude the original rectangles along a curve that is vertically perpendicular (second picture) to the short side but don’t know how to position my cursor to do so without it thinking it is in a completely different location. Are there any commands for this like setting a snap point to the end of the short curve and placing my cursor somewhere?

This would be an ideal project to get into Grasshopper if you don’t already use it…

A geodesic dome has a large amount of similar objects and tasks are very repetitive. In the end you want to change some parameters and GH will be really helpful to achieve the perfect solution.

setting a 3 point construction plane will allow you to relocate the working cplane and draw your curves planar.

dear max @maxwelljamesbarr
to answer your initial question about snapping:
turn of smarttrack to have more control then:
there is a _perpendicular snap … just start a line and then
pick first point
pick second perpendicular point on any curve

but as Kyle pointed out a custom cplane is gerate to solve your “not planar” problem.

i recommend to use the initial segments (before applying the offset)
define a cplane by 3 Points
(1) segment start
(2) segment end
(3) center of sphere (assuming this is world 0)
now draw a curve to extrude in both sides (2x25 = 50) to get your bar…
segment start
segment end
w0 (center of sphere in world coordinates)
c (close)
_offset (trim = no) Distance 100 (or what ever is the second dimension of your bar)
_explode … delete unnecessary segments
→ extrudeCrv (bothsides=yes)