Code and KiCAD
typeCAD is meant to work closely with KiCAD, essentially replacing the schematic editor. But typeCAD can do a lot more than the schematic editor so the best way to go about things was getting a bit hazy.
The Problem
The vast majority of PCB design and layout can be done with typeCAD now. But there are still some things that KiCAD is better at and the best way to sync changes between moving parts in the editor versus what’s generated by code wasn’t clear.
The Solution
Nearly everything can have its state saved and typeCAD is smart enough to figure out what needs to be updated and what should be left as you manually edited it.
Some Improvements
Saving over KiCAD changes
typeCAD used to check for a lock file to see if the PCB file was open in KiCAD. It worked, but it wasn’t great. Now, it does some fancy window title checking, finds the open KiCAD window and checks for unsaved changes. The build process will stop and let you know and let you save (or not) before proceeding. If you’re on a system that doesn’t support this (Mac?), it will just check for the lock file.
Tracks
Tracks can have their widths changed in KiCAD, but not deleted. typeCAD will recreate deleted tracks, so if you want to modify a track, if it it created in code, it needs to be deleted in code (delete the line).
Preserved track changes are displayed during the build process, so you are made aware of any deviations from what the code as supposed to make.
Components
Components can be moved and rotated in KiCAD. typeCAD will preserve those changes. Nearly anything you can do with components in KiCAD will be preserved.
Vias
Vias can be created in typeCAD, so if you make any in KiCAD, the build process will let you know about them and give the coordinates so you can add them to your code.
The End Result
The goal is to have a smooth workflow between KiCAD and typeCAD. You should be able to make changes in either if you choose, while nudging in the direction of typeCAD for declaratively creating a PCB.