This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
design_guide_3d_primitives [2018/02/12 13:02] z3dev |
design_guide_3d_primitives [2018/04/14 03:11] z3dev [3D Primitives] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== 3D Primitives ===== | ===== 3D Primitives ===== | ||
- | Introduction | + | ‘3D’ stands for three (3) dimensional. A 3D primitive is any shape that has three dimensions, which are often called width, height, and depth (or X, Y, Z.) 3D shapes have a known volume if closed. |
+ | |||
+ | {{ :wiki:mathisfun-3d.svg?nolink&145 |}} | ||
+ | |||
+ | The mathematical study of 3D shapes and dimensions is called [[https://simple.m.wikipedia.org/wiki/Solid_geometry|solid geometry]]. | ||
==== Resolution of Shapes ==== | ==== Resolution of Shapes ==== | ||
Line 12: | Line 16: | ||
If the ''resolution'' option is omitted, the following resolution is used. | If the ''resolution'' option is omitted, the following resolution is used. | ||
- | * CSG.defaultResolution3D | + | * CSG.defaultResolution3D = 12 |
OpenSCAD like functions support the ''fn'' parameter, which is the same as ''resolution''. | OpenSCAD like functions support the ''fn'' parameter, which is the same as ''resolution''. | ||
- | ==== Cube ==== | + | {{page>design_guide_cube}} |
- | + | ||
- | Cubes or rounded cubes are created by specifying one or more radius values. | + | |
- | + | ||
- | <code javascript> | + | |
- | cube(1); | + | |
- | cube({size: 1}); | + | |
- | cube({size: [1,2,3]}); | + | |
- | cube({size: 1, center: true}); // default center:false | + | |
- | cube({size: 1, center: [false,false,false]}); // individual axis center true or false | + | |
- | cube({size: [1,2,3], round: true}); | + | |
- | </code> | + | |
- | + | ||
- | Also, using CSG library directly is possible. TO BE DECOMMISSIONED | + | |
- | + | ||
- | <code javascript> | + | |
- | CSG.cube({ | + | |
- | center: [0, 0, 0], | + | |
- | radius: [1, 1, 1] | + | |
- | }); | + | |
- | + | ||
- | CSG.cube({ // define two opposite corners | + | |
- | corner1: [4, 4, 4], | + | |
- | corner2: [5, 4, 2] | + | |
- | }); | + | |
- | + | ||
- | CSG.roundedCube({ // rounded cube | + | |
- | center: [0, 0, 0], | + | |
- | radius: 1, | + | |
- | roundradius: 0.9, | + | |
- | resolution: 8, | + | |
- | }); | + | |
- | </code> | + | |
- | + | ||
- | ==== Sphere ==== | + | |
- | + | ||
- | Spheres can be created like this: | + | |
- | <code javascript> | + | |
- | sphere(1); | + | |
- | sphere({r: 2}); // Note: center:true is default (unlike other primitives, as OpenSCAD) | + | |
- | sphere({r: 2, center: true}); // Note: OpenSCAD doesn't support center for sphere but we do | + | |
- | sphere({r: 2, center: [false, false, true]}); // individual axis center | + | |
- | sphere({r: 10, fn: 100 }); | + | |
- | sphere({r: 10, fn: 100, type: 'geodesic'}); // geodesic approach (icosahedron further triangulated) | + | |
- | + | ||
- | CSG.sphere({ | + | |
- | center: [0, 0, 0], | + | |
- | radius: 2, // must be scalar | + | |
- | resolution: 128 | + | |
- | }); | + | |
- | </code> | + | |
- | + | ||
- | In case of ``type: 'geodesic'`` the fn tries to match the non-geodesic fn, yet, actually changes in steps of 6 (e.g. fn=6..11 is the same), fn = 1 reveals the base form: the icosahedron. | + | |
- | + | ||
- | ==== Cylinder ==== | + | |
- | + | ||
- | Cylinders and cones can be created like this: | + | |
- | <code javascript> | + | {{page>design_guide_sphere}} |
- | cylinder({r: 1, h: 10}); // openscad like | + | |
- | cylinder({d: 1, h: 10}); | + | |
- | cylinder({r: 1, h: 10, center: true}); // default: center:false | + | |
- | cylinder({r: 1, h: 10, center: [true, true, false]}); // individual x,y,z center flags | + | |
- | cylinder({r: 1, h: 10, round: true}); | + | |
- | cylinder({r1: 3, r2: 0, h: 10}); | + | |
- | cylinder({d1: 1, d2: 0.5, h: 10}); | + | |
- | cylinder({start: [0,0,0], end: [0,0,10], r1: 1, r2: 2, fn: 50}); | + | |
- | CSG.cylinder({ //using the CSG primitives | + | {{page>design_guide_cylinder}} |
- | start: [0, -1, 0], | + | |
- | end: [0, 1, 0], | + | |
- | radius: 1, // true cylinder | + | |
- | resolution: 16 | + | |
- | }); | + | |
- | CSG.cylinder({ | + | |
- | start: [0, -1, 0], | + | |
- | end: [0, 1, 0], | + | |
- | radiusStart: 1, // start- and end radius defined, partial cones | + | |
- | radiusEnd: 2, | + | |
- | resolution: 16 | + | |
- | }); | + | |
- | CSG.roundedCylinder({ // and its rounded version | + | |
- | start: [0, -1, 0], | + | |
- | end: [0, 1, 0], | + | |
- | radius: 1, | + | |
- | resolution: 16 | + | |
- | }); | + | |
- | </code> | + | |
{{page>design_guide_torus}} | {{page>design_guide_torus}} | ||
+ | {{page>design_guide_polyhedron}} |