def make_dxf(xyrra_list): """turn an xyrra_list (xcenter, ycenter, radius_x, radius_y, angle of rotation) into a dxf file """ directory_now = os.path.dirname(os.path.realpath(__file__)) drawing = dxf.drawing(os.path.join(directory_now, 'test.dxf')) for i in range(xyrra_list.shape[0]): if i % 10000 == 0: print(xyrra_list.shape[0] - i, 'ellipses remaining in dxf creation...', flush=True) x,y,rx,ry,a = xyrra_list[i,:] if rx == ry: circ = dxf.circle(radius=rx / um, center=(x/um,y/um)) drawing.add(circ) else: ellipse = dxf.ellipse((x/um,y/um), rx/um, ry/um, rotation=a/degree, segments=16) drawing.add(ellipse) print('saving dxf...', flush=True) drawing.save()
def make_dxf(xyrra_list): """turn an xyrra_list (xcenter, ycenter, radius_x, radius_y, angle of rotation) into a dxf file """ directory_now = os.path.dirname(os.path.realpath(__file__)) drawing = dxf.drawing(os.path.join(directory_now, 'test.dxf')) for i in range(xyrra_list.shape[0]): if i % 10000 == 0: print(xyrra_list.shape[0] - i, 'ellipses remaining in dxf creation...', flush=True) x, y, rx, ry, a = xyrra_list[i, :] if rx == ry: circ = dxf.circle(radius=rx / um, center=(x / um, y / um)) drawing.add(circ) else: ellipse = dxf.ellipse((x / um, y / um), rx / um, ry / um, rotation=a / degree, segments=16) drawing.add(ellipse) print('saving dxf...', flush=True) drawing.save()
# if dxfwrite is not 'installed' append parent dir of __file__ to sys.path import os curdir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, os.path.abspath(os.path.join(curdir, os.path.pardir))) import dxfwrite from dxfwrite import DXFEngine as dxf name = 'ellipse.dxf' dwg = dxf.drawing(name) print("A ----- B" / n) print("drawing '%s' created.\n" % name) for axis in [0.5, 0.75, 1., 1.5, 2., 3.]: dwg.add(dxf.ellipse((0, 0), 5., axis, segments=200)) dwg.add(dxf.line((-7, 0), (+7, 0), color=1, linetype='DASHDOT')) dwg.add(dxf.line((0, -5), (0, +5), color=2, linetype='DASHDOT')) for rotation in [0, 30, 45, 60, 90]: dwg.add(dxf.ellipse((20, 0), 5., 2., rotation=rotation, segments=100)) for startangle in [0, 30, 45, 60, 90]: dwg.add( dxf.ellipse((40, 0), 5., 2., startangle=startangle, endangle=startangle + 90, rotation=startangle,
import os curdir = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, os.path.abspath(os.path.join(curdir, os.path.pardir))) import dxfwrite from dxfwrite import DXFEngine as dxf name = 'ellipse.dxf' dwg = dxf.drawing(name) print("A ----- B" /n) print("drawing '%s' created.\n" % name) for axis in [0.5, 0.75, 1., 1.5, 2., 3.]: dwg.add(dxf.ellipse((0,0), 5., axis, segments=200)) dwg.add(dxf.line((-7, 0), (+7, 0), color=1, linetype='DASHDOT')) dwg.add(dxf.line((0, -5), (0, +5), color=2, linetype='DASHDOT')) for rotation in [0, 30, 45, 60, 90]: dwg.add(dxf.ellipse((20,0), 5., 2., rotation=rotation, segments=100)) for startangle in [0, 30, 45, 60, 90]: dwg.add(dxf.ellipse((40,0), 5., 2., startangle=startangle, endangle=startangle+90, rotation=startangle, segments=90)) dwg.add(dxf.ellipse((40,0), 5., 2., startangle=startangle+180, endangle=startangle+270, rotation=startangle, segments=90)) dwg.save() print("drawing '%s' created.\n" % name)