GithubHelp home page GithubHelp logo

Gladius Slicer

An In-Progress Slicer for FDM 3D printing written in Rust with a focus on customization and modularity. This is the core application for the GUI see here.

Rust, LGPL. Copyright 2021 Lucas Ince/mrhatman

Questions? Please use the github discussion page.

Want to contribute? Open a PR. See contributing document for more information.

Gladius Slicer is currently in an alpha state and very little is stable so assume any new release will cause breaking bugs. If you need something stable, please open an issue or discussion, so we can plan out the interface.

Usage

This project is a command line application. That GUI project can be found here.

USAGE:
    gladius_slicer.exe [FLAGS] [OPTIONS] <INPUT>...

FLAGS:
    -m               Use the Message System ( useful for interprocess communication)
    -v               Sets the level of verbosity
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -o <OUTPUT>              Sets the output file to use
    -s <SETTINGS>            Sets the settings file to use
    -j <THREAD_COUNT>        Sets the number of threads to use in the thread pool (defaults to number of CPUs)

ARGS:
    <INPUT>...    Sets the input file to use

Input file examples:

  • "{\"Auto\":\"test_3D_models\\3DBenchy.stl\"}" : Automatically Centers 3DBenchy file in center of the build area
  • "{\"AutoTranslate\":[\"test_3D_models\\3DBenchy.stl\",-10,0]}" : Automatically centers 3DBenchy file in center of the build area offset -10 mm off center in the x dimension.
  • "{\"AutoTranslate\":[\"test_3D_models\\3DBenchy.stl\",0,-80]} " "{\"AutoTranslate\":[\"test_3D_models\\3DBenchy.stl\",0,80]} ": print 2 3DBenchy's
  • "{\"Raw\":[\"test_3D_models\\3DBenchy.stl\",[[1.0,0.0,0.0,124.0],[0.0,1.0,0.0,105.0],[0.0,0.0,1.0,0.0],[0.0,0.0,0.0,1.0]] }":3DBenchy with given transform matrix

Settings file example

Settings files are hJSON, a human readable json that supports comments. Examples can be found in the settings folder.

Current Status

Generated GCode has been used for multiple prints (Benchy, xyz calibration cube,marvin) with a Prusa Mk3 and gives similar results to other slicers.

Finished

  • Perimeters
  • Solid infill (Linear) and Partial Infill (Linear, Rectilinear,Triangle, and Cubic)
  • Brim and skirt support
  • Roof and Floors
  • Fan Control
  • Speed Control
  • Acceleration control
  • Temperature Control
  • Combinable/Chainable Settings Files
  • STL File format
  • Layer slow down for small layers
  • Change settings based on layer
  • Elephant foot compensation
  • Many other feature ( see settings file for more information)

In Progress

  • 3MF file format
    • Fails with multi-drive zip files ( like what is generated by microsoft 3D Builder)
    • This work should ideally be moved into its own repo/crate so other projects can use the code
  • Time Calculations
    • They are not very accurate, underestimates the time currently
    • Acceleration settings, Command processs time, etc are not current accounted for
  • Plugins/Mods
    • Traits have been started but no loading yet.
    • The type definitions are currently part of the shared crate.
  • Arc Optimization
    • Started but buggy and not active
  • Code Documentation
    • The entire shared library is now documented
    • Some other main crate code is documented
  • Support Generation
    • Supports can be generated but they are poor
  • Lightning Infill
    • Added and is functional but being watched for errors
  • GUI
    • A GUI is in active development
    • See here

Coming Shortly

  • Perimeter start options
  • Percentage Complete Gcode
  • Octoprint integration
  • Retraction Wipe
  • Support for non Merlin firmwares

Eventually

  • Multiple Extruder Support

Supported Printers

  • I only own a Prusa Mk3
  • Friend owns a CR10
  • Other Marlin firmware printers can easily be added
    • Additional access to community printers will be needed to support other firmwares/G-code flavors

Dependencies

This project uses Cargo as the build engine so the dependencies can be found in Cargo.toml file. All dependencies should be compatible with LGPL license.

gladiusslicer's Projects

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.