Skip to main content

loobric-fusion

Loobric client for Autodesk Fusion tool libraries. File-based: it reads and writes Fusion's .tools export (a zip wrapping a single tools.json) or the bare tools.json, and syncs it bidirectionally with a Loobric server — no Fusion add-in required, so it runs anywhere the file does (including a Linux host with Fusion in a VM).

What syncs

Import (file → server). Every cutting tool becomes a ToolInstanceRecord:

  • The whole tool dict rides verbatim in clients.fusion360.data.tool — expressions, post-process, holder, start-values all survive losslessly.
  • The well-understood facts are asserted canonically with provenance asserted:fusion360: name, geometry.shape (from the Fusion type), and the ISO-13399-coded dimensions DC/OAL/LCF/SFDM/NOF, each stamped with the tool's own unit system (mm/in). Unmapped codes are honestly absent.
  • Cutting data presets (start-values.presets) are translated into the ratified normal form and contributed through the preset door: v_cvc (m/min or ft/min by the tool's units), f_zfz (mm or in), v_f_plunge/v_f → the vertical-feed ratio, the material statement verbatim, coolant/ramp-angle/guid in extras. Raw RPM and feeds are never persisted — they are derivations, not source data. A preset below the server's floor (no material statement, or no engineering values — e.g. a probe's approach feeds, or Fusion's all-zero defaults) stays in the client section, counted, never guessed.

Export (server → file). Each record regenerates from its verbatim client copy; canonical values win only where they actually differ (parallel expressions entries are updated in step so Fusion doesn't recompute the old number). Other origins' preset recommendations — a manufacturer's, FreeCAD's, an agent's — are materialized as native Fusion presets named <origin>: <label>, with RPM and feed computed from the tool's own diameter and flute count. Re-importing an exported file never forks another origin's recommendation back as a fusion360 one; editing one in Fusion does fork it into your own — changed numbers are your recipe.

export --all additionally synthesizes best-effort Fusion tools from records other clients created (experimental — smoke-test the import in Fusion).

Usage

pip install loobric-fusion
export LOOBRIC_BASE_URL=https://api.loobric.com
export LOOBRIC_API_KEY=<a cam-preset key: read+sync+assert>

loobric-fusion doctor                       # check server, key, state
loobric-fusion import MyLibrary.tools       # Fusion -> Loobric
loobric-fusion import MyLibrary.tools --dry-run
loobric-fusion export FromLoobric.tools     # Loobric -> Fusion
loobric-fusion export FromLoobric.tools --all

In Fusion: CAM → Tool Library → right-click a library → Export to produce the .tools file; Import to bring one back. Identity is the tool guid (the server holds it as client_item_id; the local guid → record map lives in ~/.config/loobric/fusion-state.json), so repeat imports update instead of duplicating and an unchanged library is a no-op.

Development

python -m pytest tests/

Pure translation lives in mapping.py/presetsync.py (no network, no Fusion); the one dependency is the stdlib-only loobric client library from loobric-cli — client verbs are added there first. See loobric-server's docs/HOWTO_BUILD_A_CLIENT.md for the architecture this client follows.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loobric_fusion-0.1.0.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loobric_fusion-0.1.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file loobric_fusion-0.1.0.tar.gz.

File metadata

  • Download URL: loobric_fusion-0.1.0.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for loobric_fusion-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8d31ca24cf4587dfacb7435e69e044f4d6dfab9bb348e15b3f4641f3f0c9f0fc
MD5 b7785cb459c3e5b4d4f7b8c7537e2152
BLAKE2b-256 ae51146db83555d42cf3146cd8b8e1900b351bd5bff61d746d46b90565866447

See more details on using hashes here.

Provenance

The following attestation bundles were made for loobric_fusion-0.1.0.tar.gz:

Publisher: publish.yml on loobric/loobric-clients

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loobric_fusion-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: loobric_fusion-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for loobric_fusion-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf944d6285985c1c5b43283b2f93fb26c4ed7401fb24f79337ba2e3fe7954693
MD5 23b16212d1accd181a1f2b92ff11f3c7
BLAKE2b-256 69247efddd4a48e9199c1d66c0100e5a01d17435527442e9567a9c35e57e39df

See more details on using hashes here.

Provenance

The following attestation bundles were made for loobric_fusion-0.1.0-py3-none-any.whl:

Publisher: publish.yml on loobric/loobric-clients

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page