Quickie Hack: DXF Parabola
					 Uncategorized
							 Add comments
					
		Apr 112010
	Zach needed a parabola in QCAD, so I whipped up a quick script to generate DXF parabolas. Source inside.
You’ll need the SDXF dxf generator library. You can get it here. Just dump it in the same directory as this script, and you’re good to go. Twiddle the parameters, run the script, and you’ve got your parabola.
import sdxf
# Set your parabola's parameters here
focus=1.5
range=(-10.0,10.0)
delta=0.2
centerRadius = 0.5  # radius of circle marking focus
d=sdxf.Drawing()
d.layers.append(sdxf.Layer(name="PARABOLA"))
def parabolaPoint(x,focus):
    return (x,(x**2)/(4*focus))
def addParabola(drawing,focus=1,range=(-5.0,5.0),delta=0.1):
    middle = sum(range)/2.0
    if (middle - range[0] < delta):
        p1 = parabolaPoint(range[0],focus)
        p2 = parabolaPoint(range[1],focus)
        drawing.append(sdxf.Line(points=[p1,p2],layer="PARABOLA"))
    else:
        addParabola(drawing,focus,(range[0],middle),delta)
        addParabola(drawing,focus,(middle,range[1]),delta)
d.append(sdxf.Circle(center=(0,focus),radius=centerRadius,layer="PARABOLA"))
addParabola(d,focus,range,delta)
d.saveas("parabola.dxf")
			