Fix some slopes and convert delta X-s to delta Y-s.
Small note: Link L51 has 0 slope so be sure to take into consideration, this means L5 length=L1 length-Trim, if you need P20 to coincide with P27.
New Parameters:
Use superelevations: if "Yes" it will use superelevation if superelevation is declared (presence) otherwise uses ShoulderSlope parameter.
Type of superelevation: In your case it will be outside shoulder. Note if subassambly is on the right it will use right outside shoulder and so on.
Formula for slope:
if(SA.islayout or Use_super=No,ctype(ShoulderSlope,Double),
if(Side=Left,
if(super_type.value="OutsideLane",
if(SE.HasLeftLO, ctype(SE.LeftLO,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="InsideLane",
if(SE.HasLeftLI, ctype(SE.LeftLI,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="OutsideShoulder",
if(SE.HasLeftSO, ctype(SE.LeftSO,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="InsideShoulder",
if(SE.HasLeftSI, ctype(SE.LeftSI,Double), ctype(ShoulderSlope,Double)),
ctype(ShoulderSlope,Double) ) ) ) ),
if(super_type.value="OutsideLane",
if(SE.HasRightLO, ctype(SE.RightLO,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="InsideLane",
if(SE.HasRightLI, ctype(SE.RightLI,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="OutsideShoulder",
if(SE.HasRightSO, ctype(SE.RightSO,Double), ctype(ShoulderSlope,Double)),
if(super_type.value="InsideShoulder",
if(SE.HasRightSI, ctype(SE.RightSI,Double), ctype(ShoulderSlope,Double)),ctype(ShoulderSlope,Double)) ) ) )))