From 29ffa1309209c561531be4bacb0586b79eee1f90 Mon Sep 17 00:00:00 2001 From: jmsgrogan Date: Fri, 20 Oct 2017 12:30:47 +0100 Subject: [PATCH] Initial commit. --- src/product_gen/__init__.py | 0 src/product_gen/__init__.pyc | Bin 0 -> 174 bytes src/product_gen/generate_lamp.py | 101 + src/product_gen/generate_lamp.pyc | Bin 0 -> 2487 bytes src/product_gen/render_lamp.py | 87 + src/product_gen/render_lamp.pyc | Bin 0 -> 2326 bytes src/utility/base.stl | 33819 ++++++++++++++++++++++ src/utility/chord.stl | 15171 ++++++++++ src/utility/generate_image.py | 40 + src/utility/lamp.png | Bin 0 -> 23411 bytes src/utility/shade.stl | 42107 ++++++++++++++++++++++++++++ test/base.stl | 33819 ++++++++++++++++++++++ test/chord.stl | 15171 ++++++++++ test/lamp.png | Bin 0 -> 23411 bytes test/lamp.stl | 42093 +++++++++++++++++++++++++++ test/shade.stl | 42107 ++++++++++++++++++++++++++++ test/test_generate_lamp.py | 31 + 17 files changed, 224546 insertions(+) create mode 100644 src/product_gen/__init__.py create mode 100644 src/product_gen/__init__.pyc create mode 100644 src/product_gen/generate_lamp.py create mode 100644 src/product_gen/generate_lamp.pyc create mode 100644 src/product_gen/render_lamp.py create mode 100644 src/product_gen/render_lamp.pyc create mode 100644 src/utility/base.stl create mode 100644 src/utility/chord.stl create mode 100644 src/utility/generate_image.py create mode 100644 src/utility/lamp.png create mode 100644 src/utility/shade.stl create mode 100644 test/base.stl create mode 100644 test/chord.stl create mode 100644 test/lamp.png create mode 100644 test/lamp.stl create mode 100644 test/shade.stl create mode 100644 test/test_generate_lamp.py diff --git a/src/product_gen/__init__.py b/src/product_gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/product_gen/__init__.pyc b/src/product_gen/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc0b1f0041e8b209573cb82df26b8aa0fd8cf61f GIT binary patch literal 174 zcmZ9GO$q`r3`Q%u5W#!Qrse>Oc!Jru5LcykVyD#pkW|Ezc_!Chzzn!D@V&qbgm3;? zuePuE*{R>mWFI8F5DZEkyUFyOK>dMF;$SQZ!Bg=z177u`Pz>2avJ|mtLPkq&1a=f^ qWAK>u#kz=j044{O%5ZnhhzDar4$YWNeYU0i-X*!+a6dI*iTVQD@hl1e literal 0 HcmV?d00001 diff --git a/src/product_gen/generate_lamp.py b/src/product_gen/generate_lamp.py new file mode 100644 index 0000000..3fc63cd --- /dev/null +++ b/src/product_gen/generate_lamp.py @@ -0,0 +1,101 @@ + +import sys +from argparse import ArgumentParser +# freecad setup +FREECADPATH = "/usr/lib/freecad/lib/" +sys.path.append(FREECADPATH) +import numpy as np +import FreeCAD +import Part + +# def generate_bulb(height, radius, thickness): +# +# light_angle = np.arcsin(0.25) + np.pi/2.0 +# light_arc_length = radius*light_angle+np.pi/2.0 +# num_divisions = 25 +# segment_length = light_arc_length/float(num_divisions) +# +# edges = [] +# for idx in range(1, num_divisions): +# angle0 = float(idx-1)/float(num_divisions)*light_angle +# angle1 = float(idx)/float(num_divisions)*light_angle +# x0 = -radius*np.sin(angle0) +# y0 = -radius*np.cos(angle0) +# x1 = -radius*np.sin(angle1) +# y1 = -radius*np.cos(angle1) +# edges.append(Part.makeLine((x0, y0, 0), +# (x1, y1, 0))) +# +# edge0 = Part.makeLine((0.0, height, 0), +# (-radius, 0.0, 0)) +# edge1 = Part.makeLine((-radius, 0.0, 0), +# (-radius -thickness, 0.0, 0)) +# edge2 = Part.makeLine((-radius -thickness, 0.0, 0), +# (-radius -thickness, height, 0)) +# edge3 = Part.makeLine((-radius -thickness, height, 0), +# (0.0, height, 0)) +# wire1 = Part.Wire([edge0, edge1, edge2, edge3]) +# face = Part.Face([wire1,]) +# +# pos = FreeCAD.Vector(0.0, 0.0, 0.0) +# vec = FreeCAD.Vector(0.0, 1.0, 0.0) +# angle = 360 +# solid = face.revolve(pos, vec, angle) +# return solid + +def generate_chord(height, radius, thickness): + + edge0 = Part.makeLine((0.0, height, 0), + (-radius, 0.0, 0)) + edge1 = Part.makeLine((-radius, 0.0, 0), + (-radius -thickness, 0.0, 0)) + edge2 = Part.makeLine((-radius -thickness, 0.0, 0), + (-radius -thickness, height, 0)) + edge3 = Part.makeLine((-radius -thickness, height, 0), + (0.0, height, 0)) + wire1 = Part.Wire([edge0, edge1, edge2, edge3]) + face = Part.Face([wire1,]) + + pos = FreeCAD.Vector(0.0, 0.0, 0.0) + vec = FreeCAD.Vector(0.0, 1.0, 0.0) + angle = 360 + solid = face.revolve(pos, vec, angle) + return solid + +def generate_base(height, radius, thickness): + + edge0 = Part.makeLine((0.0, 0.0, 0), + (-radius, -height, 0)) + edge1 = Part.makeLine((-radius, -height, 0), + (-radius -thickness, -height, 0)) + edge2 = Part.makeLine((-radius -thickness, -height, 0), + (-thickness, 0.0, 0)) + edge3 = Part.makeLine((-thickness, 0.0, 0), + (0.0, 0.0, 0)) + wire1 = Part.Wire([edge0, edge1, edge2, edge3]) + face = Part.Face([wire1,]) + + pos = FreeCAD.Vector(0.0, 0.0, 0.0) + vec = FreeCAD.Vector(0.0, 1.0, 0.0) + angle = 360 + solid = face.revolve(pos, vec, angle) + return solid + +def generate_shade(height, radius, thickness): + + edge0 = Part.makeLine((0.0, 0.0, 0), + (-radius, -height, 0)) + edge1 = Part.makeLine((-radius, -height, 0), + (-radius -thickness, -height, 0)) + edge2 = Part.makeLine((-radius -thickness, -height, 0), + (-thickness, 0.0, 0)) + edge3 = Part.makeLine((-thickness, 0.0, 0), + (0.0, 0.0, 0)) + wire1 = Part.Wire([edge0, edge1, edge2, edge3]) + face = Part.Face([wire1,]) + + pos = FreeCAD.Vector(0.0, 0.0, 0.0) + vec = FreeCAD.Vector(0.0, 1.0, 0.0) + angle = 360 + solid = face.revolve(pos, vec, angle) + return solid diff --git a/src/product_gen/generate_lamp.pyc b/src/product_gen/generate_lamp.pyc new file mode 100644 index 0000000000000000000000000000000000000000..89f3ab296138eac8daeedad9c4640b47860d0225 GIT binary patch literal 2487 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 MRyR