Ok I am not going to be a lot of help here because of the syntax that Okuma uses vs. what I am use to. The concept is the same except instead of using say #100 as a variable I belive Okuma uses something like VC100 or something.
This is the way I would set it up as 1 pass but using variables. Now a few questions to you are if C on your drawing changes does it change the radius or the length on diameter A change or B change or both? What is the angle at the top of diameter B. You will have to fill some of this information into the program below.
G0G90X()Z1.------FILL IN X FOR THE START OF YOUR ANGLE
X#101Z-()--------FILL IN THE Z LEG OF THE ANGLE
Z-()--------------FILL IN THE LENGTH OF B DIAMETER
X()---------------FILL IN X FOR THE DIAMETER AT THE START OF THE RADIUS
G3X#100Z()R()----FILL IN Z FOR THE RADIUS AND R FOR THE RADIUS
This will do 1 pass at the shape you provided. Now there are ways of looping this based on the amount of raw stock and pick size you want to use. This would require the proper syntax that Okuma requires. In the example above you would set up a few more variables asking what the extra stock is and the pick size and build a loop using a IF[#103GE#104]GOTON100 or use a WHILE[#103GE#104]DO1. #103 and #104 being your extra stock and pick size. If this was inserted the code above would keep running until it reached the proper size.
I hope this helps.