|
|
|
|
|
by bsilvereagle
3910 days ago
|
|
For something this complex, you may have an easier time with C#. All of your enumerations get Intellisensed, for example. I also recommend creating a standalone C# application, rather than trying to fit in the confines of a typical Solidworks Macro. Sure, you don't get a little button in the toolbar saying 'Export/Import', but instead you have the full flexibility of a console (or graphical diff potentially) application. In the short term (I noticed your last commit was 7 months ago), you may/may not know about the Solidworks 'Compare' utility. In 2015, Tools->Compare. In the Solidworks Tutorials there is a small and trivial example of using it. Interesting idea overall of trying to encapsulate a SLDPRT as a yaml. I imagine that assemblies are going to be a bear in this fashion. Have you looked into trying to reverse the SLDPRT file format? It must be possible if other companies are offering the option to import a SLDPRT (I believe the last time I used Creo there was a MVP importer). |
|
It's actually been a whole lot longer than 7 months since I worked on it. The whole thing was basically one monolithic commit I did after writing the snapshotting utility while doing release documentation for a product I was managing. Since then (and even while I was working on it) I've thought of a lot of much better approaches to this than I was taking with the macro. The macro was just a very early proof of concept. I'm also not totally sold on the yaml choice, I can see a lot of reasons to go with an open binary format -- but I think part of the success of JSON has been predicated on its choice of universally-parseable text. The ultimate goal would be to create a new CAD program marketed towards the sub-$100 software market. I'd couple that with a version control system specifically tailored (even if just in UI) to a hardware workflow, and then get recurring revenue from a github-like service. Really neat project and I'm confident I could execute on it successfully.
Except I've actually put this project on hold while I work on something more important to me - creating, implementing, and financially sustaining an open, encrypted, distributable social networking protocol (https://www.ethyr.net/blog/muse-101.html). Fixing solid modeling is an awesome and potentially very lucrative endeavor, but it's much less timing sensitive (and much less personally meaningful) than my current project is.