I created a spread sheet to help me determine the height of each riser. It's not a complete calculator, in that it requires iterative changes of data to see different results. However, it beats a simple calculator. To understand my example, I'll explain my approach to grades. I already knew from Scarm that my grades would be about 3.2%. So, I planned a grade of 2% on the first and last 40" of each grade. This gives me a grade transition section. The total rise in this example is 6".
The column "Angle" simply tells me if that segment is curved or straight. My plan will place a riser every 20 degrees throughout the curve, so for O-90 curves each segment of the road bed is 15.71". (pi*D/18)
The column "Rise" is the data that you enter.
The column "Grade" calculates the rise over run by taking the delta of "Rise" between segments and dividing it by the length of the segment (15.71 in the case of O-90 curve with 20 degree segments).
The column "Fraction" displays the "Rise value" as a fraction, but using the MROUND function, rounds off to the nearest 1/64". The "Grade" is actually calculated from this column.
The column "Riser" simply subtracts 1/2" (road bed thickness) from the column "Fraction".
I started data entry at the riser nearest to 40" from beginning of the grade. In this example at angle 60, where I would have initially entered a value > 0.8", as this riser is 47.13" from the beginning of the grade. Remember, I am aiming for an overall grade change of 2% in the first 40".
Then, move onto the next riser and try different values. Remember, I expect to have a grade of about 3.2%.
Below is the result for this example. Of course, the scale of X does not equal the scale of Y.