Commit a5b52b3a by Mathias Goldau

[ADD] Additional Artwork

parent 64027bb4
This image diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/////////////////////////////////////////////////////////////////////////////////////////
// 1. Load and position both raw mesh files
/////////////////////////////////////////////////////////////////////////////////////////
// load nut and transform to target position
module nut()
{
translate( [107, 0, 258.25] )
scale( v = [ 0.95, 1, 1 ] )
rotate( a = [0, 0, 5] )
rotate( a = [-92, 0, 0] )
rotate( a = [0, 0, 45] )
color( "Peru" ) import( file = "ow_logo_object_nut.stl" );
}
// load brain and transform to target position
module brain()
{
brainToNutScale = 1.7;
scale( v = [brainToNutScale, brainToNutScale, brainToNutScale] )
scale( v = [ 1.1, 0.96, 1] )
rotate( a = [ 0, 0, 0.55 ] )
translate( v = [ -6.8, 2.0, 70 ] )
mirror( [0, 0, 1] )
color( "White" ) import( file = "ow_logo_object_brain.stl" );
}
// the nut bounding box (somehow)
module nut_cube()
{
translate( [0, 0, 0] )
color( "Peru", 0.5 )
cube( size = [275,330,167], center = false );
}
// the brain bounding box (somehow)
module brain_cube()
{
translate( [0, -0, -167] )
color( "White", 0.5 )
cube( size = [275,330,167], center = false );
}
module brainnutplaced()
{
import( file = "both_halfs.stl" );
}
/////////////////////////////////////////////////////////////////////////////////////////
// 2. Create additional parts, like a stand and connectors between them
/////////////////////////////////////////////////////////////////////////////////////////
// create pyramid on xy plane
module pyramid()
{
// taken from OpenSCAD Wikibook
polyhedron(
points=[ [ 1, 1, 0 ], [ 1, -1, 0 ], [ -1, -1, 0 ], [ -1, 1, 0 ], // the four points at base
[ 0, 0, 1 ] ], // the apex point
triangles=[ [ 0, 1, 4 ], [ 1, 2, 4 ], [ 2, 3, 4 ], [ 3, 0, 4 ], // each triangle side
[ 1, 0, 3 ], [ 2, 1, 3 ] ] // two triangles for square base
);
}
// create a connecting part: brain-nut - simple cube
module connector_nutbrain()
{
// how deep should the casing go into the object?
depth = 45;
wallwidth = 2.5;
translate( v = [ wallwidth, wallwidth, 0 ] )
translate( v = [ 123, 148, 0 ] )
color( "green" ) cube( size = [ 25 - 2 * wallwidth, 25 - 2 * wallwidth, depth ] );
}
// as the nut and brain meshed are not solid, we add a casing for the connection peace to
module connector_nutbrain_casing()
{
// how deep should the casing go into the object?
depth = 50;
// carve out the connector
translate( v = [ 123, 148, 0 ] )
color( "red" ) cube( size = [ 25, 25, depth ] );
}
// create a stand for the Nut-Brain construction
module stand()
{
union()
{
translate( v = [ 0, -20, 0 ] )
scale( v = [ 1, 1, 0.5 ] )
{
// drill the casing into the plate
difference()
{
union()
{
connector_nutbrain_casing();
translate( v = [ 135.5, 160.5, 0 ] )
color( "red" )
scale( v = [ 25, 25, 200 ] ) pyramid();
}
translate( v =[ 105, 135, 70 ] )
color( "red" ) cube( size = [ 50, 50, 100 ] );
translate( v = [ 0, 0, -5 ] ) scale( v = [ 1, 1, 10 ] ) connector_nutbrain();
}
}
translate( v = [ 45, 10, 6 ] )
scale( v = [ 165, 235, 1 ] )
minkowski()
{
translate( v = [ 0.05, 0.05, -3 ] ) cylinder( r = 0.1, h = 3, $fn = 25 );
translate( v = [ 0, 0, -3 ] ) cube( size = [ 1, 1, 3 ] );
}
translate( v = [ 45, 10, 6 ] )
scale( v = [ 165, 235, 3 ] )
translate( v = [ 0.2, 1.05, 0 ] )
mirror( [ 0, 1, 0 ] )
rotate( a = [ 0, 0, 90 ] )
{
// Thanks to embossanova:
// https://cubehero.com/physibles/iamwil/embossanova
scale( [ 1/1050, 0.15 * 1/125, 1/256 ] )
surface( file = "logo.dat", convexity = 5 );
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////
// 3. Cut the meshes on the xy plane and place the connector case into the parts
/////////////////////////////////////////////////////////////////////////////////////////
// clean cut at the x-y plane at z = 0 everything where z < 0
// -> cut the mesh area which will be inside/around the nut
module brain_cut()
{
difference()
{
brain();
nut_cube();
}
}
// put a cube inside and carve out a smaller cube to connect brain and nut
module brain_with_connection_caseing()
{
difference()
{
union()
{
mirror( v = [ 0, 0, 1 ] ) connector_nutbrain_casing();
brain_cut();
}
mirror( v = [ 0, 0, 1 ] ) translate( v = [ 0, 0, -2 ] ) connector_nutbrain();
}
}
// clean cut at the x-y plane at z = 0 everything where z > 0
// -> cut the mesh area which will be inside/around the brain
module nut_cut()
{
difference()
{
nut();
brain_cube();
}
}
// put a cube inside and carve out a smaller cube to connect brain and nut
module nut_with_connection_caseing()
{
difference()
{
union()
{
// NOTE: carve in the casing through the whole nut. Use lower side for the stand
scale( v = [ 1, 1, 2.70 ] ) connector_nutbrain_casing();
nut_cut();
}
translate( v = [ 0, 0, -2 ] ) scale( v = [ 1, 1, 3.70 ] ) connector_nutbrain();
}
}
// create a bunch of connectors here
module sticks( size, num )
{
for( i = [ 0 : num - 1 ] )
{
translate( v = [ 700, ( i * 30 ) - 100, 0 ] )
scale( v = [ size, size, 0.80 * ( 135 / 2 + 45 ) / 45 ] ) // scale in z dir to lengthen the sticks to the half length of the casing through the brain plus the insertion depth (45). Use some additional shrink factor.
connector_nutbrain();
}
}
/////////////////////////////////////////////////////////////////////////////////////////
// 4. Construct the logo and position everything where it belongs for printing
/////////////////////////////////////////////////////////////////////////////////////////
// now build both halfs and translate them to lay on the xy plane with positive z
// HINT: please be aware that the CSG operations with our mesh take up a lot of RAM and
// take a while to calculate. So, for experimenting, please comment out the parts you
// won't need.
// shrink it a bit to match MakerBot's size constraints
scale( 0.25 )
{
// white parts:
// mirror to get to positive z
/*translate( v = [ 280, 0, 0] )
mirror( [0, 0, 1] )
brain_with_connection_caseing();
// place stand
translate( v = [ 550, 20, 0 ] )
scale( v = [ 1.0, 1.0, 1.0 ] )
stand();
*/
// NOTE: the connectors should fit tight. Please try some scales below to find the best for your printer
// place connector
sticks( 0.95, 2 );
translate( v = [ 0, 60, 0 ] ) sticks( 0.94, 2 );
translate( v = [ 0, 120, 0 ] ) sticks( 0.93, 2 );
// blue parts:
// the nut already is placed where it should be
//nut_with_connection_caseing();
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448"
height="1052.3622"
id="svg2"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="Flyer2.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="307.98543"
inkscape:cy="428.29452"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
showguides="false"
inkscape:window-width="958"
inkscape:window-height="883"
inkscape:window-x="2880"
inkscape:window-y="19"
inkscape:window-maximized="0"
inkscape:snap-from-guide="true" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,6.0896285e-5)">
<image
y="-367.88406"
x="536.77521"
id="image2993"
xlink:href="BrainNut.png"
height="304.31177"
width="380.70538"
transform="matrix(0,1,-1,0,0,0)" />
<rect
style="fill:#507aaa;fill-opacity:1;stroke:none"
id="rect3833"
width="480.92712"
height="76.597298"
x="0.01336596"
y="918.00885"
ry="0.091441676" />
<g
id="g3861"
transform="translate(30.783624,-18.384777)">
<text
sodipodi:linespacing="125%"
id="text3806"
y="979.55139"
x="47.823475"
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS Bold"
xml:space="preserve"><tspan
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS Bold"
y="979.55139"
x="47.823475"
id="tspan3808"
sodipodi:role="line">OpenWalnut</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2996"
y="1004.1232"
x="47.05785"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS Bold"
xml:space="preserve"><tspan
y="1004.1232"
x="47.05785"
id="tspan2998"
sodipodi:role="line">Neuroscience in a Nutshell</tspan></text>
</g>
</g>
</svg>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment