I'd have a look at
rotate_extrude, generate the shape, then spin it around the axis to complete the funnel.
Simple example with a straight line:
rotate_extrude()
translate([2,0]) // need to ensure it is all in the X+ quadent, also makes the hole.
rotate(45)
square([25,1]);
Then workout a curvey shape; a little harder.
OpenSCAD Admin - email* me if you need anything, or if I've done something stupid...
* on the Forum, click on my MichaelAtOz label, there is a link to email me.
Unless specifically shown otherwise above, my contribution is in the Public Domain;
to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work.
Obviously inclusion of works of previous authors is not included in the above.