Coder Social home page Coder Social logo

bread's Introduction

Bread

This is an experimental slicer which allows users to print with 3D layers on conventional FDM machines. It also has rudimentary support for five-axis toolpaths with FANUC-2 style coordinates.

Why 3D Layers?

In short, why not? We have these machines that can move in 3 dimensions, we should probably make them move in 3 dimensions. More specific benefits include:

-Smooth, stairstep free top surfaces with curves and slopes.

-The ability to manipulate and orient the directional weakness of interlayer bonds, particularly on five-axis machines.

-Manipulate which parts get printed first to reduce the number of material switches in multimaterial printing (future feature)

Here's an example print: Wavy.

Getting Started

At this time, I can make absolutely no guarantees about the behavior of this Slicer. Most hardware was not designed with constant rapid Z motion in mind. There are definitely still bugs in this code, some of which may cause bed crashes, jerky movement that causes skipped steps, etc. No Guarantees.

To simply use this Slicer:

  1. Make sure you're running a 32 bit installation of Java 1.8.

  2. Place Bread.jar, config.txt, start.gcode, and end.gcode in a directory of your choice.

  3. Change the relevant settings in config.txt for your machine, and configure start.gcode and end.gcode to your liking. Set very conservative values for speeds on your first print.

  4. Choose a part to print, and model the layer shape you want to use in a second .stl. /Prints/wave.stl and /Prints/wavesurface.stl is one example. Alignment between part and surface currently must be done in your design software.

  5. In command line or shell, navigate to your chosen directory and execute Bread.jar [path to part.stl] [path to surface.stl] [path to config.txt] [path to write to]

Some important notes on making it play nice: Your layer shape needs to cover everywhere the head is going to go in X and Y, sort of like a height function over the plane. I think there's a little hack which makes it OK for travels to go outside the layer shape, but you should really avoid that. This includes the initial travel from (0,0), so if possible get the origin inside your layer shape too.

I haven't really characterized the effects of NozzleOffset. It essentially tries to make up for the fact that parts of the code treat the disk-like nozzle as if it's a point. You can enable or disable it by simply setting TipRadius to 0, or your nozzle radius respectively. Enabling it will cause a lot of stress on your Z axis, but may improve surface finish.

You may notice that with steep layer shapes the surface finish gets awful very quickly. This is caused by the leading edge of your nozzle colliding with the previous layer. In general, don't angle your surface up above the XY plane by more than arctan(layer height / nozzle diameter). If you aren't using a NozzleOffset (TipRadius set to 0), this angle limit is lower.

Contributing

While people are free to jump on this now, I'll be doing some pretty significant restructuring over the Summer. If you're eager to make a lasting contribution, the best way to do so is to optimize or improve some of the core components. For example, an octree implementation of Mesh3D.overlap could be dramatically faster than the current radix check, but I haven't gotten around to writing one. Surface3D.project(Point2D p) could benefit from similar optimizations.

Lastly, please submit issues if you find any. There are plenty.

License

This project is licensed under GPL v3. For more information, see https://www.gnu.org/copyleft/gpl.html

bread's People

Contributors

nick-parker avatar jacoby6000 avatar mohnjoosemiller avatar

Watchers

James Cloos avatar Luis Oliveira avatar

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.