Is there a function to fix edge length in Blender?
For the specific case, You may consider using cloth simulation to preserve the edge length:

Step 1 to 3: Create Unit; mirror + arrays; Apply modifiers + coloring for convenience. (For existing model, you can ignore above)

Step 4: Select all poked vertices, CtrlG to add to a new vertex group, then CtrlH) to add a hook.

Step 5: Add Cloth simulator. use the vertex group as pins.

Step 6: Scale the hook while simulating (playing animation). Then AltC - 2 to convert the result. Finally, delete all unwanted faces.





Example file