/text2stl

3D text generator for 3D printing. EmberJs / Typescript / Three.js

Primary LanguageTypeScript

Netlify Status

text2stl

Generate STL with text easily !

Inspired from : https://github.com/mo22/textstl

TODO :

  • center 3D render
  • move mesh rendering in textMaker service
  • Add model size information
  • better UI
  • better font management (limit list, allow filtering, live preview)
  • add other type of shape (with support / negative text / badge)
  • html loader
  • counter of STL generated ?
  • fr/en translation
  • Language switcher
  • deploy
  • improve test coverage
  • finalize font-picker tests
  • Add somes options (multiple kerning, multiple suport spacing, round corner, hole in support ?)
  • multi-line text ? (#33)
  • save/load text (via URL encoded / local storage ?)
  • (or) QP to save current settings ?
  • handle custom font
  • Any way to handle emoji or special char like '★' ?
  • Multiple object for vertical support to allow multi-color print ?

Prerequisites

You will need the following things properly installed on your computer.

Google font api key

To be able to run the app, you'll need to generate a Google Fonts API key.

Then set the key as environment variable before running the ember serve command :

  • export GOOGLE_FONT_API_KEY="your-key-here"

Installation

  • git clone <repository-url> this repository
  • cd text2stl
  • npm install

Contribute

To write...

Running / Development

Code Generators

Make use of the many generators for code, try ember help generate for more details

Running Tests

  • ember test
  • ember test --server

Mesh snapshots

The text-maker service's unit tests use mesh snapshot to test the service works as expected.

If the service is updated (aka. when the generated mesh changes) the test will break.

To fix the tests, new mesh snapshots has to be generated. To generate the new snapshot use the command :

yarn generate:snapshot

Warning: Don't run this command to fix tests if no modifications was made on text-maker service (or three deps update) or if you don't know why you run it (generating new snapshots will generate new UUID for mesh & create new useless file diffs)

No longer work with node 14

Mesh snapshot need to be manualy updated, see console, when some mesh tests are failing...

Linting

  • npm run lint
  • npm run lint:fix

Building

  • ember build (development)
  • ember build --environment production (production)

Usefull links