I’m trying to convert legacy “Designworks” schematics and libraries to KiCad.
I’ve looked at the data files, and they are an unusual style that I don’t recognize. Much is apparently 7-bit ASCII, but there some binary mixed in also. Sometimes formats use parentheses to indicate structure, but I’m not seeing any.
Here is a sample from the start of the file shown as text:
It would certainly be a proprietary format. From a search their shopfront is still on the net, but their prices haven’t been adjusted since 2020 so probably no current development. Also it’s just a schematic capture tool AFAICT.
Worst comes to the worst you could reenter from the PDFs of the schematics.
This is not as bad as it seems at first. In KiCad you can load a picture of a schematic as a background image, scale it so it has roughly the same proportions as KiCad’s native symbols, and then simply trace over it. This reduces the job from “schematic design” to simple data entry. It’s a bit boring, but much faster.
How many of these schematics do you want to convert, and how complex are those schematics? Reverse-engineering a data format is a lot of work, and this “Designworks” software seems to be a bit of an obscure piece of software too. They managed to get around 64 posts on their forum in 10+ years. Even if you have several hundred projects, doing them by hand is probably still quicker then writing a converter. It’s nice to have importers into KiCad for as many Schematic / PCB design programs as possible, but realistically there are limits. My first impression is that there so few users of this software that it’s hardly worth writing an importer for it.
If you do want to write an importer. The format appears to be based on S-expressions A program that can reformat those (“beautifier”) is a nice aid. And there are also libraries to read s-expression based files into memory. For the rest, start looking at differences of simple files. For example compare an empty schematic with a schematic that has only a resistor on it. This (very likely) makes it easy to figure out what a resistor looks like in that file format. Then gradually add more objects. If you can get just resistors, capacitors, power symbols and wiring, then you already got 80% or so of the schematic.
There are also some projects to create a KiCad schematic from a programming language. This may be worth looking into to generate output. In KiCad V8 it’s also possible to open a python console inside the Schematic editor, but I’m not sure if there is much code behind that and what you can do with it inside KiCad.
Thanks for the reply! I have hundreds or maybe thousands of Designworks schematics and libraries from a period from 1994 to about 2015 when I started with KiCad. I started using Designworks at a company where cross platform Mac/Windows was important.
i have been manually converting and re-creating as required, but I thought maybe a conversion would be more efficient. I’d mostly like to have my libraries, so maybe I’ll start there.
Thanks for the reminder of S-Expressions. Maybe the format was inspired by S-Expressions, but it doesn’t really follow it. It is definitely not like the KiCad S-Expressions. The parentheses are not balanced for the entire file. I wrote a simple parser to display the files with newlines for each opening paren, with indent proportional to nesting depth. In some parts of the file there is a discernible structure, but other parts are not. The file ends at a positive indent level.
In summary, this is not going to be easy. I’m putting the idea on the back burner, and may think about it again from time to time as I enjoy this type of puzzle. Maybe the format is intentionally obfuscated, and there is a transformation that will make it more readable and parseable?
I used to discuss DesignWorks with the author, Neil Mackenzie. The last time I emailed him, it was about the imminent obsolescence of the current version, since it was a 32-bit App. He said that there were no plans to ever update it to 64-bit, which is what influenced me to switch to KiCad. I would suspect that the format is something that he came up with, 30+ years ago.
Since I have a lot of schematics in DW, I need to keep an old machine around so I can open them if I need to. I’ve been printing them all to PDFs, just as a backup.
Neil might be willing to work with you to parse the file, if you ask him.
@3Dogs, I’ve had an ongoing email thread with Neil for decades. In the more recent years, his response time is measured in months. His last message was a few months ago when he said he cannot release source code or file formats due to “contractual obligations”. That is what started me on this journey of exploration.