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")