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