Ok, thank you Bobyandbob and Tina for providing the initial hint. The option l sep was the key. Here is the code and diagram I finally came up with. I had to use some before computing xy, but I like the result.

\documentclass{standalone} \usepackage{forest} \begin{document} \forestset{ fixedBase/.style={draw, circle, fill=black, text=white}, prismaticJoint/.style={draw}, revoluteJoint/.style={draw, rounded corners=2mm}, rigidLink/.style={draw, color=blue, fill=blue, text=white}, fixedTranslation/.style={draw, fill=gray}, fixedRotation/.style={draw, fill=gray, rounded corners=2mm}, springDamperElement/.style={draw, circle, color=blue, fill=blue, text=white}, fork/.style={draw, circle, color=red, fill=red, text=white}, endpoint/.style={draw, fill=black, text=white}, } \begin{forest} for tree={anchor=center} [FB, fixedBase, l sep=-300mm, grow'=east, [FB, fixedBase, edge'={}, grow'=east, before computing xy={l=5mm, s=160mm}, [Fixed base, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [PJ, prismaticJoint, edge'={}, grow'=east, before computing xy={l=5mm, s=150mm}, [Prismatic joint, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [RJ, revoluteJoint, edge'={}, grow'=east, before computing xy={l=5mm, s=140mm}, [Revolute joint, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [RL, rigidLink, edge'={}, grow'=east, before computing xy={l=5mm, s=130mm}, [Rigid link, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [FT, fixedTranslation, edge'={}, grow'=east, before computing xy={l=5mm, s=120mm}, [Fixed translation, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [SD, springDamperElement, edge'={}, grow'=east, before computing xy={l=5mm, s=110mm}, [Spring-damper element, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [F, fork, edge'={}, grow'=east, before computing xy={l=5mm, s=100mm}, [Fork, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [EP, endpoint, edge'={}, grow'=east, before computing xy={l=5mm, s=90mm}, [Endpoint, edge'={}, anchor=west, before computing xy={l=5mm, s=0}]], [BJ$_X$, prismaticJoint, l sep=-300mm, for tree={grow=north}, before computing xy={l=12mm, s=0}, [BJ$_Y$, prismaticJoint, l sep=-300mm, [BJ$_Z$, prismaticJoint, l sep=-300mm, [BJ$_X$, revoluteJoint, l sep=-300mm, [BJ$_Y$, revoluteJoint, l sep=-300mm, [BJ$_Z$, revoluteJoint, l sep=-300mm, grow'=east, [F, fork, grow'=east, [LLJ$_X$, revoluteJoint, l sep=-300mm, for tree={grow=north}, [LLJ$_Z$, revoluteJoint, l sep=-300mm, [F, fork, grow=east, [FT, fixedTranslation, for tree={grow=south}, [WMJ$_{ABD}$, prismaticJoint, [SD, springDamperElement, before computing xy={l=0, s=15mm}], [EP, endpoint, before computing xy={l=10mm, s=0}]]], [ABD, rigidLink, l sep=-300mm, for tree={grow=north}, [ULJ$_X$, revoluteJoint, l sep=-300mm, [ULJ$_Y$, revoluteJoint, l sep=-300mm, [ULJ$_Z$, revoluteJoint, l sep=-300mm, [F, fork, grow=east, [FT, fixedTranslation, for tree={grow=south}, [WMJ$_{THO}$, prismaticJoint, [SD, springDamperElement, before computing xy={l=0, s=15mm}], [EP, endpoint, before computing xy={l=10mm, s=0}]]], [THO, rigidLink, l sep=-300mm, for tree={grow=north}, [F, fork, l sep+=15mm, grow'=east, [F, fork, l sep+=5mm, grow'=east, [LNJ$_X$, revoluteJoint, [LNJ$_Y$, revoluteJoint, [LNJ$_Z$, revoluteJoint, [HEA, rigidLink, for tree={grow=north}, [EP, endpoint]]]]], [SJ$_{L,X}$, revoluteJoint, for tree={grow=south}, [SJ$_{L,Y}$, revoluteJoint, [SJ$_{L,Z}$, revoluteJoint, [UPA$_L$, rigidLink, [EJ$_{L,Z}$, revoluteJoint, [LOA$_L$, rigidLink, [EP, endpoint]]]]]]], ], [SJ$_{R,X}$, revoluteJoint, for tree={grow=south}, [SJ$_{R,Y}$, revoluteJoint, [SJ$_{R,Z}$, revoluteJoint, [UPA$_R$, rigidLink, [EJ$_{R,Z}$, revoluteJoint, [LOA$_R$, rigidLink, [EP, endpoint]]]]]]], ]]]]]]]]]], [PEL, rigidLink, for tree={grow=south}, [F, fork, grow=south, [HJ$_{L,X}$, revoluteJoint, l sep=-300mm, [HJ$_{L,Y}$, revoluteJoint, l sep=-300mm, [HJ$_{L,Z}$, revoluteJoint, l sep=-300mm, [THI$_L$, rigidLink, l sep=-300mm, [KJ$_{L,Z}$, revoluteJoint, l sep=-300mm, [SHA$_L$, rigidLink, l sep=-300mm, [AJ$_{L,X}$, revoluteJoint, l sep=-300mm, [AJ$_{L,Y}$, revoluteJoint, l sep=-300mm, [AJ$_{L,Z}$, revoluteJoint, l sep=-300mm, [F, fork, grow'=east, [COPJ$_{L,X}$, prismaticJoint, for tree={grow=north}, [COPJ$_{L,Y}$, prismaticJoint, [COPJ$_{L,Z}$, prismaticJoint, [EP, endpoint]]]], [FOO$_L$, rigidLink, [EP, endpoint]]]]]]]]]]]], [HJ$_{R,X}$, revoluteJoint, l sep=-300mm, [HJ$_{R,Y}$, revoluteJoint, l sep=-300mm, [HJ$_{R,Z}$, revoluteJoint, l sep=-300mm, [THI$_R$, rigidLink, l sep=-300mm, [KJ$_{R,Z}$, revoluteJoint, l sep=-300mm, [SHA$_R$, rigidLink, l sep=-300mm, [AJ$_{R,X}$, revoluteJoint, l sep=-300mm, [AJ$_{R,Y}$, revoluteJoint, l sep=-300mm, [AJ$_{R,Z}$, revoluteJoint, l sep=-300mm, [F, fork, grow'=east, [COPJ$_{R,X}$, prismaticJoint, for tree={grow=north}, [COPJ$_{R,Y}$, prismaticJoint, [COPJ$_{R,Z}$, prismaticJoint, [EP, endpoint]]]], [FOO$_R$, rigidLink, [EP, endpoint]]]]]]]]]]]], ]]]]]]]]]] \end{forest} \end{document}
for tree={fit=tight,l sep=-30mm}help?l sep=-30mmworks fine for the given example. Unfortunately not for my actual diagram (I added the source to the question). So probably I have to play around withl sepfor each node?l sep=-200mm... Maybe it creates other line problems. But do you really need such big diagram? Il sep+=5mmfor the F nodes andl sep=-300mmfor the others. Thank you again! If you put your comment in an answer, I am happy to accept it :)