Ad

Thursday, August 18, 2011

SAC-Superelevation

If you want to recreate the LinkToSlope subassembly using the Subassembly Composer, then you may need this Expression:

IF((SuperSource=LeftInsideLane)AND(SE.HasLeftLI),SE.RightLI,
IF((SuperSource=LeftOutsideLane)AND(SE.HasLeftLO),SE.RightLO,
IF((SuperSource=LeftInsideShoulder)AND(SE.HasLeftSI),SE.RightSI,
IF((SuperSource=LeftOutsideShoulder)AND(SE.HasLeftSO),SE.RightSO,
IF((SuperSource=RightInsideLane)AND(SE.HasRightLI),SE.RightLI,
IF((SuperSource=RightOutsideLane)AND(SE.HasRightLO),SE.RightLO,
IF((SuperSource=RightInsideShoulder)AND(SE.HasRightSI),SE.RightSI,
IF((SuperSource=RightOutsideShoulder)AND(SE.HasRightSO),SE.RightSO,
0))))))))

The expression uses SuperSource which is the name of an Input Parameter using the Superelevation Enumeration. Use the expression either in the creation of a point or create a variable that is the grade to be used. There may be a better way, but as far as I can tell you can’t specify the input parameter of Superelevation to override the slope.

3 comments:

Eric C said...

I ended up creating the exact same formula in order to accomplish that. I have one more IF statement that allows the user to specify a variable "slope" that can be used if no superelevation is applied.

JOSE LOZANO said...

Hola Eric C, podrías poner tu codigo porfavor.

Christopher Fugitt said...

There is an error in the first 4 lines, they should be pointing to the left, instead of the right:

IF((SuperSource=LeftInsideLane)AND(SE.HasLeftLI),SE.LeftLI,
IF((SuperSource=LeftOutsideLane)AND(SE.HasLeftLO),SE.LeftLO,
IF((SuperSource=LeftInsideShoulder)AND(SE.HasLeftSI),SE.LeftSI,
IF((SuperSource=LeftOutsideShoulder)AND(SE.HasLeftSO),SE.LeftSO,
IF((SuperSource=RightInsideLane)AND(SE.HasRightLI),SE.RightLI,
IF((SuperSource=RightOutsideLane)AND(SE.HasRightLO),SE.RightLO,
IF((SuperSource=RightInsideShoulder)AND(SE.HasRightSI),SE.RightSI,
IF((SuperSource=RightOutsideShoulder)AND(SE.HasRightSO),SE.RightSO,
0))))))))

LinkWithin

Blog Widget by LinkWithin

Ad