├── .gitattributes ├── octoprint_DuCalibrator ├── static │ ├── less │ │ └── DuCalibrator.less │ ├── css │ │ └── DuCalibrator.css │ └── js │ │ ├── DuCalCommon.js │ │ ├── trilateration.js │ │ ├── DuCalGeometry.js │ │ ├── DuCalMachine.js │ │ ├── TrackballControls.js │ │ └── DuCalViewModel.js ├── templates │ ├── Parameters.jinja2 │ ├── DuCalibrator_tab.jinja2 │ ├── History.jinja2 │ ├── DuCalibrator_settings.jinja2 │ ├── Probing.jinja2 │ ├── Instructions.md │ ├── Geometry.jinja2 │ └── Calibration.jinja2 └── __init__.py ├── .gitignore ├── babel.cfg ├── MANIFEST.in ├── requirements.txt ├── .editorconfig ├── extras ├── README.txt └── DuCalibrator.md ├── translations └── README.txt ├── README.md ├── setup.py └── LICENSE /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /octoprint_DuCalibrator/static/less/DuCalibrator.less: -------------------------------------------------------------------------------- 1 | // TODO: Put your plugin's LESS here, have it generated to ../css. 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | .idea 4 | *.iml 5 | build 6 | dist 7 | *.egg* 8 | .DS_Store 9 | *.zip 10 | .vs/ 11 | -------------------------------------------------------------------------------- /babel.cfg: -------------------------------------------------------------------------------- 1 | [python: */**.py] 2 | [jinja2: */**.jinja2] 3 | extensions=jinja2.ext.autoescape, jinja2.ext.with_ 4 | 5 | [javascript: */**.js] 6 | extract_messages = gettext, ngettext 7 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | recursive-include octoprint_DuCalibrator/templates * 3 | recursive-include octoprint_DuCalibrator/translations * 4 | recursive-include octoprint_DuCalibrator/static * 5 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ### 2 | # This file is only here to make sure that something like 3 | # 4 | # pip install -e . 5 | # 6 | # works as expected. Requirements can be found in setup.py. 7 | ### 8 | 9 | . 10 | -------------------------------------------------------------------------------- /octoprint_DuCalibrator/static/css/DuCalibrator.css: -------------------------------------------------------------------------------- 1 | /* TODO: Have your plugin's CSS files generated to here. */ 2 | a.collapsed .fa-caret-down { 3 | display: none; 4 | } 5 | 6 | a.collapsed .fa-caret-right { 7 | display: inline-block; 8 | } 9 | 10 | a .fa-caret-right { 11 | display: none; 12 | } 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | charset = utf-8 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [**.py] 13 | indent_style = tab 14 | 15 | [**.js] 16 | indent_style = space 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /extras/README.txt: -------------------------------------------------------------------------------- 1 | Currently Cookiecutter generates the following helpful extras to this folder: 2 | 3 | DuCalibrator.md 4 | Data file for plugins.octoprint.org. Fill in the missing TODOs once your 5 | plugin is ready for release and file a PR as described at 6 | http://plugins.octoprint.org/help/registering/ to get it published. 7 | 8 | This folder may be safely removed if you don't need it. 9 | -------------------------------------------------------------------------------- /octoprint_DuCalibrator/templates/Parameters.jinja2: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /extras/DuCalibrator.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: plugin 3 | 4 | id: DuCalibrator 5 | title: Delta Micro Calibrator 6 | description: An OctoPrint Plugin for performing micro calibration in linear delta machines. 7 | author: Fabio Santos 8 | license: AGPLv3 9 | 10 | date: 2020-06-24 11 | 12 | homepage: https://github.com/Fabi0San/DuCalibrator 13 | source: https://github.com/Fabi0San/DuCalibrator 14 | archive: https://github.com/Fabi0San/DuCalibrator/archive/master.zip 15 | 16 | tags: 17 | - delta 18 | - calibration 19 | - 3d 20 | - visualization 21 | 22 | screenshots: 23 | - url: /assets/img/plugins/DuCalibrator/screenshot.png 24 | alt: Screenshot 25 | caption: Main calibration tab showing the full calibration workflow. 26 | 27 | compatibility: 28 | python: ">=2.7,<4" 29 | 30 | featuredimage: /assets/img/plugins/DuCalibrator/screenshot.png 31 | 32 | --- 33 | 34 | # Delta Micro Calibrator "ΔµCalibrator" 35 | An [OctoPrint](https://octoprint.org/) Plugin for performing micro calibration in linear delta machines. 36 | 37 | [README](https://github.com/Fabi0San/DuCalibrator/blob/master/README.md) 38 | 39 | ## Key features: 40 | * Automatic probing 41 | * Calibrates up to 18 geometry parameters 42 | * 3D visualization of probed points and estimated points after proposed calibration 43 | 44 |  45 | 46 | ## Demo 47 | 48 | {% include youtube.html vid="kTJlOl7_X2M" preview="'/assets/img/plugins/DuCalibrator/screenshot.png'" %} 49 | 50 | Watch it in full screen 51 | -------------------------------------------------------------------------------- /translations/README.txt: -------------------------------------------------------------------------------- 1 | Your plugin's translations will reside here. The provided setup.py supports a 2 | couple of additional commands to make managing your translations easier: 3 | 4 | babel_extract 5 | Extracts any translateable messages (marked with Jinja's `_("...")` or 6 | JavaScript's `gettext("...")`) and creates the initial `messages.pot` file. 7 | babel_refresh 8 | Reruns extraction and updates the `messages.pot` file. 9 | babel_new --locale=