Found that the mesh needs to be aligned ALONG the X and Y axis, as if it's lying on the ground for the fill to work.
All the sources I saw didn't clarify that, only that it "needs to align with the X and Y axis", so I took it as having a value of zero for the alignment in general.
Walk the edges.
To give them some order walk the edges. It may take more than one spline to make the curve, since we cannot branch. For example the default cube when "de-faced" and converted to curve has 4 splines.
Here is test script to walk the selected edges. It does not make the curve, rather creates an ordered list of the edges to use in ...
What you need to do when you want an object to correctly follow the curve is to put both the curve and the object origin at the exact same place. So here:
Select the curve, press ShiftS > Cursor to Selected
Select the object (for example tube) and press ShiftS > Selection to Cursor
Give your object a Curve modifier, find the right Deform Axis (here -Z)...
This can be achieved by right clicking the timeline and choosing the option "Interpolation mode".
To the right are all the interpolations that are available. In your case since you do not want the Bezier interpolation, you can choose Linear interpolation which interpolates with constant speed. There are bunch of other interpolation modes too if ...
Here is an alternative with geometry nodes. Create your dome, create your cylinder. Give your dome a Geometry Node modifier with this setup: Group Input > (Point) Align Rotation to Vector (with Vector > Attribute, and Vector > Position) > (Point) > Point Instance (with the cylinder as Object) > Output.
If you hadn't enabled the Merge option in the Array Modifier, although they are in a single object, each duplicate of the mesh created by the array will be separate. To be able to select the entire line of edges, they need to be a single mesh. To join them, select all with A > press M to merge > click on By Distance. This will merge all the duplicate ...
Path-following Camera -
Use a cube, either visible or invisible as the path object.
Add a line between two diagonally opposed corner vertices and subdivide that.
Set the cube's Origin point to that. (with SH-S) (Shouldn't be necessary, but... )
Parent the camera to that vertice ONLY. Select the cube, then the camera, go into Edit mode and select the ...