Thank you for posting the source file of the font in SVG format.
I am not familiar with SVG format in any detail, yet I did notice that the file, which I opened using WordPad, had a number of statements with the word circle in them, of which the following is the first in the file.
I found the following.
http://www.w3.org/TR/SVG/shapes.html#CircleElement
http://www.w3.org/TR/SVG/eltindex.html
I had heard of Python but knew nothing about it and I had not heard of Fontforge.
It seems to me that it is possible that what is needed is to find the source code of the function that Fontforge uses to convert circle to a sequence of function calls for starting a contour, adding on-curve and off-curve points and ending a contour.
Then, using that source code as a guide as to what names are used for the various functions, such as, for example, whether it is on_curve_point(x,y) or on_curve(x,y) or whatever, try to write a new piece of code for the function that Fontforge uses to convert circle to a sequence of function calls for producing a contour.
I have no idea as to how to use that piece of code in Fontforge, but here is a guide to what I think might be the way to write the new function, using function names that I have made up for this explanation. The names will need changing around, yet hopefully what I have written below will help in producing the final code. The syntax is just a general sort of pseudo-code, sort of Pascal and Java mixed together. I prepared the code using WordPad using Arial at 24 point. Copying the following and pasting it into WordPad and formatting using Arial at 24 point may make it easier to analyse.
circle(xc, yc, r)
{
start_contour();
on_curve_point(xc+r, yc);
off_curve(xc+r, yc-0.4142r);
on_curve_point(xc+0.7071r, yc-0.7071r);
off_curve(xc+0.4142r, yc-r);
on_curve_point(xc, yc-r);
off_curve(xc-0.4142r, yc-r);
on_curve_point(xc-0.7071r, yc-0.7071r);
off_curve(xc-r, yc-0.4142r);
on_curve_point(xc-r, yc);
off_curve(xc-r, yc+0.4142r);
on_curve_point(xc-0.7071r, yc+0.7071r);
off_curve(xc-0.4142r, yc+r);
on_curve_point(xc, yc+r);
off_curve(xc+0.4142r, yc+r);
on_curve_point(xc+0.7071r, yc+0.7071r);
off_curve(xc+r, yc+0.4142r);
end_contour();
}
I found the following links.
http://www.w3.org/Graphics/SVG/
http://www.w3.org/TR/SVG/fonts.html
http://en.wikipedia.org/wiki/Scalable_Vector_Graphics
http://fontforge.sourceforge.net/
http://en.wikipedia.org/wiki/FontForge
http://python.org/
http://en.wikipedia.org/wiki/Python_(programming_language)
I hope that this helps. As this thread already has several participants and others may well be reading the thread with interest, I am hoping that although what I have written does not solve the problem entirely that it may be useful information in a group solving of the problem.
William Overington
30 January 2012