Hi everyone
I am trying to make a subassembly in subassembly composer for a road median that have a slope of 1/4 when there are superelevation and a slope of 1/2 when there are in normal crown as shown in the file attached
in subassembly composer i used decision, so what is the expression that i have to type in the condition to tell subassembly composer that point is in superelevation
thanks
Hi @sn_rukhsi, you need to define how you will handle superelevation in your C3D drawing. Are you going to use Superelevation Outside Lane or Inside Lane. Depending on that, you can program the condition to find out where you have or have not applied superelevation based on your normal crown value. Check the attached PKT I uploaded an example under the following assumptions:
1. Your normal crown value is -2.0%
2. You are using either LeftOutsideLane or RightOutsideLane for superelevation.
According to this, when the superelevation values are greater than the normal crown (absolute values), there is applied superelevation and point P1 will appear. Otherwise, it will appear P2.
Did I understand what you were looking for? Please check the subassembly and let me know if you have any questions.
I hope this helps. Best regards!
thank you for your replay, but my question is if i choose decision , what is the expression that i have to type in the condition area
Hi @sn_rukhsi, thanks for posting your question. In the custom subassembly example, I attached to my previous post, I tried to answer precisely that question but directly with a custom subassembly example. I'll try to break it down in the following images:
1. What expression should you type in the decision? In this field, you should type an expression that evaluates your requirement of knowing where you have or not have superelevation applied. However, how do you know if there is or is not superelevation? Once you apply superelevation to an alignment, the only way to differentiate this is by comparing the superelevation values along the alignment against the normal crown. When your superelevation has values corresponding to a normal crown, we can say you do not have superelevation.
This will also depend on which superelevation values you use to create your superelevation design, LeftOutsideLane or RightOutsideLane. Depending on all of that, you can place an expression like the following:
IF((UseSuperelevation=LeftOutsideLane) AND (SE.HasLeftLO),
IF(math.abs(ctype(SE.LeftLO, double))>math.abs(ctype(NormalSlope,double)), Yes, No),
IF((UseSuperelevation=RightOutsideLane) AND (SE.HasRightLO),
IF(math.abs(ctype(SE.RightLO, double))>math.abs(ctype(NormalSlope,double)), Yes, No),No))
Since this is too much text to have in a decision. I placed it in a variable (type: Yes/No):
And then, I called the variable in the decision:
The decision will evaluate the variable value and see if it equals "Yes." If so, the decision will trigger the "True" branch; otherwise, the "False" logic branch.
I hope this helps. If you have more questions, please post them.
Best regards!
Can't find what you're looking for? Ask the community or share your knowledge.