Exemplo n.º 1
0
def pumpkin():
    spheres = [
        cadmium.Sphere(r=1.1).translate(np.sin(2.0 * np.pi * r),
                                        np.cos(2.0 * np.pi * r), 0)
        for r in np.linspace(0.0, 1.0, 12)
    ]
    sum(spheres).toSTL("pumkin.stl")
Exemplo n.º 2
0
def dodecahedron(side=1.0):
    verts = icosahedronVerts()
    cubes = [
        rot(cadmium.Box(x=1.5 * side, y=1.5 * side, z=1.5 * side, center=True),
            *tuple(v)).translate(*tuple(v * side)) for v in verts
    ]
    dodeca = (cadmium.Sphere(r=side, center=True) - sum(cubes))
    return dodeca
Exemplo n.º 3
0
 def test(self):
   sph = cadmium.Sphere(r=1, center=True)
   sph.toSTL('sphere.stl')
   self.assertTrue(are_same('sphere.stl','data/sphere.stl'))
   os.remove('sphere.stl')
   sph.toJSON('sphere.json.gz', compress=True)
   self.assertTrue(are_same('sphere.json.gz','data/sphere.json.gz'))
   os.remove('sphere.json.gz')
Exemplo n.º 4
0
def octahedron(side=1.0):
    verts = cubeVerts()
    cubes = [
        rot(cadmium.Box(x=1.5 * side, y=1.5 * side, z=1.5 * side, center=True),
            *tuple(v)).translate(*tuple(side * v)) for v in verts
    ]
    octa = (cadmium.Sphere(r=0.7 * side, center=True) - sum(cubes))
    octa.toSTL("octa.stl")
    return octa
Exemplo n.º 5
0
def golf():
    verts = icosahedronVerts()

    d = distance(verts)[0]
    newverts = NewVertsAtDistance(verts, d)
    verts += newverts

    d1, d2 = distance(verts)[:2]
    centers = closestThree(verts, d1, d2)

    for v in newverts:
        centers.append(tuple([round(v[0], 4), round(v[1], 4), round(v[2], 4)]))

    spheres = [
        cadmium.Sphere(r=0.1, center=True).translate(*v) for v in centers
    ]
    print "subtracting ", len(spheres), " dimples"

    (cadmium.Sphere(r=1.0, center=True) - sum(spheres)).toSTL("golf.stl")
Exemplo n.º 6
0
def icosastar(side=1.0):
    verts = icosahedronVerts()

    cubes = [
        cadmium.Sphere(r=side, center=True).translate(*tuple(v * 1.7 * side))
        for v in verts
    ]

    icosa = sum(cubes)

    return icosa
Exemplo n.º 7
0
def tetrahedron(side=1.0):
    verts = tetrahedronVerts()
    norms = closestNorm3(verts)

    cubes = [
        rot(cadmium.Box(x=2.0 * side, y=2.0 * side, z=2.0 * side, center=True),
            *tuple(n)).translate(*tuple(n * (mag(n) + side) / mag(n)))
        for n in norms
    ]
    tetra = (cadmium.Sphere(r=side, center=True) - sum(cubes))
    tetra.toSTL("tetra.stl")
    return tetra
Exemplo n.º 8
0
def icosahedron(side=1.0):
    verts = icosahedronVerts()
    norms = closestNorm3(verts)

    cubes = [
        rot(cadmium.Box(x=side, y=side, z=side, center=True),
            *tuple(n)).translate(*tuple(n * side)) for n in norms
    ]
    sphere = cadmium.Sphere(r=side / 2.0, center=True)
    icosa = (sphere - sum(cubes))
    # icosa.toSTL("icosa.stl")
    return icosa
Exemplo n.º 9
0
def generate_data():
  cyl = cadmium.Cylinder(r=5, h=10, center=True)
  cyl.toSTL('data/cylinder.stl')
  cyl.toJSON('data/cylinder.json.gz',compress=True)

  box = cadmium.Box(x=4,y=4,z=4, center=True)
  box.toSTL('data/box.stl')
  box.toJSON('data/box.json.gz', compress=True)

  cone = cadmium.Cone(r=5,h=10, center=True)
  cone.toSTL('data/cone.stl')
  cone.toJSON('data/cone.json.gz', compress=True)

  wedge = cadmium.Wedge(dx=5,dy=5,dz=5, center=True)
  wedge.toSTL('data/wedge.stl')
  wedge.toJSON('data/wedge.json.gz', compress=True)

  torus = cadmium.Torus(r1=1, r2=.2, center=True)
  torus.toSTL('data/torus.stl')
  torus.toJSON('data/torus.json.gz', compress=True)

  sph = cadmium.Sphere(r=1, center=True)
  sph.toSTL('data/sphere.stl')
  sph.toJSON('data/sphere.json.gz', compress=True)