Code Monkey home page Code Monkey logo

variable-width-contouring's Introduction

Variable-width-contouring

Code for the computing beads in a slice with varying width for minimizing underfill. This is the code developed for the publication

Variable-width contouring for additive manufacturing. ACM Transactions on Graphics 39(4) (Proc. SIGGRAPH 2020) [link]

Compilation dependencies

- CMAKE
- TCLAP http://tclap.sourceforge.net
- Clipper http://angusj.com/delphi/clipper.php
- CGAL https://www.cgal.org
- Cairo https://www.cairographics.org

BOOST Voronoi support should be available in the future as an alternative to CGAL.

Compiling

It should work alright on macOS and Ubuntu.

mkdir build
cd build
cmake ..
make

You may have to adjust the CMakeLists.txt. Please send us your pull requests!

There is a CMake option to disable the use of Cairo. Then no PDF is ever output.

Usage

fill -h will give you a a lot of options.

The basic usage is fill -p input_file -o output_file. Without -o just the PDF file input_file.pdf is generated (unless --no-pdf).

Input format

The input_file starts with the minimal and maximal allowed bead width. The rest is a sequence of polygonal closed curves. Each curve starts with the number of sample points (on one line). Then there is one sample per line. Each sample gives x, y.

Output format

The output_file is a (textual) sequence of print paths. Each print path start with the number of samples. Then there is one sample per line. Each sample gives x, y, radius (half width), tangent_x, tangent_y.

Dataset

The input/ directory has some sample input files.

The set of 300 input files in input/dataset/ is the one used in the paper and originates from the following work:

A framework for adaptive width control of dense contour-parallel toolpaths in fused deposition modeling. Tim Kuipers, Eugeni L. Doubrovski, Jun Wu, and Charlie C. L. Wang. 2020. arXiv:2004.13497 [cs.GR] In submission.

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.