forked from 1b-agent/opencadstudio-upstream
Brings in the DXF round-trip fixes merged as cadcodec #48 and #51 and the block-definition fixes for cadcodec issues #49 and #52. cadkernel moved to the same codec revision first, so the graph keeps a single acadrust. The Python plugin, which is outside the workspace, has its own lock moved too: its staging script requires the plugin and the host to share one acadrust source. The canaries that asserted the old wrong results were flipped against the real-IPC audits, all 60 of which pass with the plugin built: Helix, Light, Underlay, ViewBorder and SectionSymbol now round-trip through DXF, as do the text style flags, the dimension style's text style name, the block description, the table's merged ranges and the leader's annotation link and vectors. Those five kinds move to Complete in the coverage ledger. Two narrower gaps stay pinned. The ATTDEF writer emits no group 280, so `lock_position` is still lost on a DXF save; every other field now survives. A true-colour leader `override_color` cannot be held by DXF group 77, which takes an ACI index, and the DWG writer does not store it. Behaviour change for users: a text style's oblique angle is now written to DXF in degrees, as the format defines it. DXF files written by earlier versions carry radians there and reopen with a much smaller slant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plugin registry
registry.json is the curated list of third-party plugins Open CAD Studio
offers in its Plugin Manager → marketplace. The app fetches it from this
repo's main branch at runtime, so adding an entry makes a plugin discoverable
to every user without an app update.
Add your plugin
Open a pull request adding one object to the array in
registry.json:
{
"repo": "your-account/your-plugin-repo",
"name": "Human-readable name",
"description": "One line describing what it does."
}
Requirements for the linked repo:
- Builds a
cdylibagainstocs_plugin_apiand exports the host symbols viaocs_plugin_api::export_plugin!. - Publishes per-platform binaries plus
plugin.tomlas GitHub Release assets (seecrates/ocs_example_pluginand its release workflow for a template). Asset names carry the platform, e.g.your.plugin-linux-x86_64.so,…-windows-x86_64.dll,…-macos-aarch64.dylib. plugin.tomldeclares anapi_versioncompatible with the host.
The host reads the release matching the user's platform, checks the API version, and installs it into the user's plugins folder.
Listing is curation, not endorsement or a security review. Installing a plugin runs its native code; users install at their own risk.