Skip to content

feat(schematic): add native KiCad V9 S-Expression parsing and hierarchical AST mapping#50

Open
billwestrup wants to merge 1 commit intotscircuit:mainfrom
billwestrup:main
Open

feat(schematic): add native KiCad V9 S-Expression parsing and hierarchical AST mapping#50
billwestrup wants to merge 1 commit intotscircuit:mainfrom
billwestrup:main

Conversation

@billwestrup
Copy link
Copy Markdown

  • Extended the upstream kicadts AST parser by registering 11 new V9 visual graphic primitives natively (arc, circle, polyline, rectangle, bezier, etc.) using strictly-typed ES6 class extension injection.
  • Implemented robust geometry transformation (applyToPoint) enabling precise structural fidelity for complex symbol boundaries and floating texts.
  • Implemented topological routing for hierarchical_labels and global_labels, enabling tscircuit to natively resolve multi-sheet net bridges through structural source_component_hier_* declarations.
  • Added full wiring logic for multi-node buses, busEntries, and correctly generating visual no_connect 'X' stubs matching Altium/KiCad schematic styling.

…hical AST mapping

- Extended the upstream `kicadts` AST parser by registering 11 new V9 visual graphic primitives natively (`arc`, `circle`, `polyline`, `rectangle`, `bezier`, etc.) using strictly-typed ES6 class extension injection.
- Implemented robust geometry transformation (`applyToPoint`) enabling precise structural fidelity for complex symbol boundaries and floating texts.
- Implemented topological routing for `hierarchical_labels` and `global_labels`, enabling `tscircuit` to natively resolve multi-sheet net bridges through structural `source_component_hier_*` declarations.
- Added full wiring logic for multi-node `buses`, `busEntries`, and correctly generating visual `no_connect` 'X' stubs matching Altium/KiCad schematic styling.
@seveibar
Copy link
Copy Markdown
Contributor

Hey @billwestrup , sorry it took so long to take a look at this- you just need to PR to kicadts, we don't monkey-patch it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants