Volume of revolution

I'm struggling to try and find a way to generate a volume of revolution from a graph of a function f=y(x).

I'm wishing to generate a surface from rotating my function about the line X=500 (from graph attached) - then display on a Gizmo plot

Any help appreciated
THanks
Assuming that you want to revolve this around the Y-axis I'd create a parametric surface in Gizmo. Here is an example. Suppose your function has the form:
Function fr(inr,rmax)
    Variable inr,rmax
   
    Variable x2=inr/rmax
    return sqrt(1-x2*x2)
End


I'd create a parametric surface of the desired resolution, e.g.,
make/n=(101,101,3) ddd
•ddd[][][0]=p-50
•ddd[][][1]=q-50
•ddd[][][2]=fr(sqrt((p-50)^2+(q-50)^2),50)


Now create a new Gizmo and append a parametric surface. You can do so manually or simply execute the following recreation macro:
Window Gizmo0() : GizmoPlot
    PauseUpdate; Silent 1   // Building Gizmo 6 window...
    NewGizmo/N=Gizmo0/T="Gizmo0" /W=(536,44,1167,675)
    ModifyGizmo startRecMacro
    AppendToGizmo Surface=root:ddd,name=surface0
    ModifyGizmo ModifyObject=surface0 property={ srcMode,4}
    ModifyGizmo ModifyObject=surface0 property={ surfaceCTab,Rainbow}
    ModifyGizmo setDisplayList=0, object=surface0
    ModifyGizmo SETQUATERNION={0.571268,0.028073,0.091655,0.815146}
    ModifyGizmo autoscaling=1
    ModifyGizmo currentGroupObject=""
    ModifyGizmo compile
    ModifyGizmo endRecMacro
End


I hope this helps,

A.G.
WaveMetrics, Inc.

With all due respect to the Gizmo-meister, A.G., my preference (with more tutorial transparency) for the parametric Gizmo surface would be expressed in terms of the rotation angle as one parameter, and the function argument axis as the other, as in:
function foo( rin, rmax)
    variable rin, rmax
   
    variable rho = rin/rmax
    return (cos(2*pi*rho))^2
end

function show()
    variable rmax =10
    make/O/N=(90, 100, 3) wsurf
    setscale/I x, 0, 2*pi,"" wsurf
    setscale y, 0, rmax, "" wsurf
    wsurf[][][0] = cos(x)* y
    wsurf[][][1] = sin(x) * y
    wsurf[][][2] = foo(y, rmax) // use this as
// a parametric surface for Gizmo
end