@thi.ng/axidraw
Version:
Minimal AxiDraw plotter/drawing machine controller for Node.js
169 lines (126 loc) • 7.56 kB
Markdown
# Change Log
- **Last updated**: 2025-06-09T17:24:08Z
- **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
All notable changes to this project will be documented in this file.
Only versions published since **2022-01-01** are listed here.
Please consult the Git history for older version information.
See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
**Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
and/or version bumps of transitive dependencies.
### [1.1.123](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@1.1.123) (2025-04-16)
#### ♻️ Refactoring
- minor internal optimizations (vector ops) ([adfebba](https://github.com/thi-ng/umbrella/commit/adfebba))
### [1.1.59](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@1.1.59) (2024-02-22)
#### ♻️ Refactoring
- update object destructuring in all pkgs & examples ([f36aeb0](https://github.com/thi-ng/umbrella/commit/f36aeb0))
## [1.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@1.1.0) (2023-03-22)
#### 🚀 Features
- add save/restore commands ([317f8e0](https://github.com/thi-ng/umbrella/commit/317f8e0))
- add/update command types
- add SAVE/RESTORE to store/restore pen levels
- update AxiDraw.draw() to restore state after one-off pen config
- update DipOpts & dip() ([52d8924](https://github.com/thi-ng/umbrella/commit/52d8924))
- rename `down` => `downDelay`, `up` => `upDelay`
- add `down`/`up` level opts
- update dip() impl to store/restore pen state if using custom
up/down levels for dipping
- add palette command seq gens ([0e453c1](https://github.com/thi-ng/umbrella/commit/0e453c1))
- add linearPalette() & radialPalette() and config options
- update pkg export maps
- add global clipping bounds option ([a99a58e](https://github.com/thi-ng/umbrella/commit/a99a58e))
- add AxiDrawOpts.clip
- add support for paper sizes, home offset ([c44510f](https://github.com/thi-ng/umbrella/commit/c44510f))
- update AxiDrawOpts.bounds to accept paper sizes ([@thi.ng/units](https://github.com/thi-ng/umbrella/tree/main/packages/units) quantities)
- add AxiDrawOpts.home
- update AxiDraw ctor & move/sendMove methods
- add AxiDraw.setHome()
- update pkg deps
#### ♻️ Refactoring
- remove obsolete clamping ([50978ba](https://github.com/thi-ng/umbrella/commit/50978ba))
- update linearPalette()
- update bounds handling/clamping ([7850ed6](https://github.com/thi-ng/umbrella/commit/7850ed6))
- precalc scale factor & bounds in ctor
# [1.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@1.0.0) (2023-03-19)
#### 🛑 Breaking changes
- add/update command presets ([610f873](https://github.com/thi-ng/umbrella/commit/610f873))
- BREAKING CHANGE: update DrawCommands and cmd presets
- update MoveXYCommand to use `"M"`
- add MoveRelCommand (using `"m"`)
- add/update AxiDraw.moveTo()/moveRelative()
- migrate command presets to commands.ts
- refactor parametric command type presets as functions:
- PEN(), UP(), DOWN(), MOVE(), MOVE_REL(), WAIT(), COMMENT()
- add DIP() command sequence gen
#### 🚀 Features
- add command fns, add COMMENT cmd ([0d64b55](https://github.com/thi-ng/umbrella/commit/0d64b55))
- add MOVE(), WAIT(), COMMENT()
- add CommentCommand
- update AxiDraw.draw() to log comments
- add disconnect() ([af93177](https://github.com/thi-ng/umbrella/commit/af93177))
- add disconnect() for ISerial & AxiDraw
- update MockSerial impl
- update commands, docs & pkg exports ([1324cb8](https://github.com/thi-ng/umbrella/commit/1324cb8))
- update dip(), update imports. restructure /src ([b108760](https://github.com/thi-ng/umbrella/commit/b108760))
- add DipOpts, extend dip() functionality
- move dip() to own file dip.ts
- move complete() to commands.ts
- move registrationMark() to own file registration.ts
- update all imports
- update pkg exports map
## [0.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@0.5.0) (2023-02-05)
#### 🚀 Features
- add speedUp config, rename speed => speedDown ([197d610](https://github.com/thi-ng/umbrella/commit/197d610))
#### 🩹 Bug fixes
- add [@thi.ng/date](https://github.com/thi-ng/umbrella/tree/main/packages/date) dependency ([bd35a9e](https://github.com/thi-ng/umbrella/commit/bd35a9e))
required by axidraw.ts
## [0.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@0.4.0) (2023-01-10)
#### 🚀 Features
- also send "reset" cmd in .reset() ([30fe365](https://github.com/thi-ng/umbrella/commit/30fe365))
## [0.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@0.3.0) (2022-12-29)
#### 🚀 Features
- add draw metrics ([0ff015c](https://github.com/thi-ng/umbrella/commit/0ff015c))
- add Metrics interface
- update AxiDraw.draw() to record metrics
- update .moveTo() to return delay & distance
- add serial port abstraction & impls ([c774da1](https://github.com/thi-ng/umbrella/commit/c774da1))
- add SerialConnection adapter
- add `SERIAL_PORT` default impl (actual serial port)
- add `MOCK_SERIAL` & MockSerial impl for testing
- update AxiDrawOpts & AxiDraw to use adapter only
- add registrationMark() util, fix imports ([e05e99d](https://github.com/thi-ng/umbrella/commit/e05e99d))
- add Metrics.penCommands, fix nested metrics handling ([a7149cd](https://github.com/thi-ng/umbrella/commit/a7149cd))
- add counter for pen up/down commands
- add start/stop cmd metrics to current tally
#### ♻️ Refactoring
- update "no-browser" pkg handling ([0e84f1b](https://github.com/thi-ng/umbrella/commit/0e84f1b))
## [0.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@0.2.0) (2022-12-10)
#### 🚀 Features
- major updates/additions ([eb41c28](https://github.com/thi-ng/umbrella/commit/eb41c28))
- extract polyline() as standalone fn
- add complete() syntax sugar
- update UP/DOWN commands to accept opt. pen level/position
- add RESET command
- extract various draw commands into separate methods, simplify draw()
- update draw() w/ FSM to pause/resume/cancel processing
- add AxiDrawState FSM enum
- add AxiDrawControl class, use as default controller
- update AxiDrawOpts w/ new options
- update connect() to throw error if unsuccessful
- add SIGINT signal handler to handle Ctrl+C
- update .draw() to auto-wrap command seq ([60aaad2](https://github.com/thi-ng/umbrella/commit/60aaad2))
- add PolylineOpts, update polyline() ([c8a271f](https://github.com/thi-ng/umbrella/commit/c8a271f))
#### 🩹 Bug fixes
- fix polyline(), only apply custom speed for drawing ([c43b6f5](https://github.com/thi-ng/umbrella/commit/c43b6f5))
- update draw calls to disable cmd wrapping ([4cd5e53](https://github.com/thi-ng/umbrella/commit/4cd5e53))
- fix waiting for start/stop/home commands ([42bf4eb](https://github.com/thi-ng/umbrella/commit/42bf4eb))
#### ⏱ Performance improvements
- remove obsolete UP command (and delay) in polyline() ([f71c64b](https://github.com/thi-ng/umbrella/commit/f71c64b))
## [0.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/axidraw@0.1.0) (2022-12-06)
#### 🚀 Features
- import as new pkg ([cc43e84](https://github.com/thi-ng/umbrella/commit/cc43e84))
- arbitrary unit support, measure draw time ([32e3212](https://github.com/thi-ng/umbrella/commit/32e3212))
- add AxiDrawOpts.unitsPerInch to support any worldspace units
- remove paperSize opt
- add command constants for better mem use
- update AxiDraw.draw() to measure & return time taken
- add/update doc strings