Giter Club home page Giter Club logo

designinto3d's Introduction

description
A system for parametric design of projects for CNC or traditional techniques

Introduction

Design into 3D is an effort to create a systematic set of design and fabrication techniques and project generators for objects made using CNC machines, documenting things well enough that one would be able to draw up traditional plans using pen and pencil and fabricate an instance of a project using hand tools, or create files which will efficiently and correctly make toolpaths for cutting on a CNC.

It is simultaneously:

The design philosophy touches on the idea that fundamentally there are only two types of furniture:

  • platforms
  • boxes

with more complicated pieces incorporating both structures, and that any object is fundamentally described in two ways:

  • its design
  • its dimensions

Currently it uses BlockSCAD and OpenSCAD Graph Editor as front-ends to OpenSCAD, a 3D modeling tool which can then afford a comfortable front-end using the customizer feature in OpenSCAD which is available in current versions.[1] A new development is that it is now possible to load OpenSCAD files into a web browser using: https://github.com/seasick/openscad-web-gui which will make available files from GitHub or Printables.com and then export to DXF, SVG, or STL.

There are several possible approaches for making designs from BlockSCAD/OpenSCAD:

  • use the Projection() command to allow the exporting of a 2D view of the design as a DXF or SVG which may then have toolpaths made using a traditional CAM tool
  • directly export the 3D design as an STL which may then have toolpaths made using a 3D CAM tool such as MeshCAM or pyCAM
  • import the OpenSCAD file into FreeCAD and use the Path Workbench to create G-Code
  • exporting the parameters from the customizer as a preset in a JSON file (which is stored in the same directory as the OpenSCAD source file) the JSON may then be loaded into a program developed using a second language which generates a design using those parameters ― eventually for cutting, or toolpaths without further user intervention. As an example, the initial implementation of this from the afore-mentioned paper in TUGboat uses METAPOST via the library embedded in LuaTeX and importing the JSON file using the Lua scripting language
  • from within OpenSCAD (or some other programming/modeling tool) develop the design so that toolpaths are modeled and the coordinate information may be exported as G-Code commands ― RapCAD (a fork of OpenSCAD) gained the ability to write out files in v1.0.2, see: https://forum.makerforums.info/t/g-code-preview-using-openscad-rapcad/85729

The first and last two options will be explored in the course of this text.

An alternative which is worth exploring is working up a program in a general-purpose programming language and writing out in parallel both .scad code for a 3D model as a preview, and G-Code for actually cutting out the parts. Two examples of this approach are:

This online ebook is available under a Creative Commons license: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) https://creativecommons.org/licenses/by-nc-sa/3.0/

The Kickstarter edition and print versions are available under a license which will allow commercial usage to a reasonable degree.

Please contact [email protected] if you wish to arrange for any other sort of arrangement.

designinto3d's People

Contributors

willadams avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

astrolemonade

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.