Pular para o conteúdo principal

Add-in Development

Welcome. This wiki is for developers building add-ins for Oblikovati — the parametric, feature-based CAD application. Add-ins extend the host with new ribbon commands and drive the live model — parts and assemblies (sketches, parameters, features, occurrences, representations, view, materials) — through a stable, permissively-licensed contract.

This wiki is generated. It is rebuilt automatically from Oblikovati.API every time a pull request merges to develop. Edit the sources under docs/wiki/ in that repo — manual edits made here will be overwritten on the next merge. The API Docs page is produced directly from the contract's Go source and doc comments.

What an add-in is

An add-in is a shared library (.so / .dll / .dylib) that the host loads in-process at runtime. It links only the Apache-2.0 contract module (oblikovati.org/api) and talks to the host across a small C ABI. Because the boundary is a byte protocol (JSON over a single host callback), an add-in can be closed-source while the contract it depends on stays open.

┌────────────────────┐ C ABI (JSON method calls) ┌──────────────────────┐
│ Your add-in │ ────────────────────────────────────▶ │ Oblikovati host │
│ (.so / .dll) │ oblikovati.org/api/client │ (kernel + UI head) │
│ links only │ ◀──────────────────────────────────── │ owns the live model │
│ oblikovati.org/api │ replies / events │ │
└────────────────────┘ └──────────────────────┘

Start here

PageWhat it covers
Oblikovati ArchitectureHow the application and its geometry kernel are put together.
First StepsBuild an add-in that adds a ribbon button which sketches a rectangle and extrudes a cube.
Oblikovati API ArchitectureThe four contract packages, the two consumption paths, and how to add to the surface.
Testing AutomationHow to unit- and integration-test an add-in while respecting the license boundary.
API DocsAuto-generated reference for every exported type, function, and method in the contract.

License at a glance

  • The contract you build against (oblikovati.org/api) is Apache-2.0.
  • The host application is GPL-2.0 and is never linked by an add-in.
  • Your add-in may carry any license you choose — see Testing Automation for how the build keeps that boundary honest.