Hacker News new | ask | show | jobs
by someguy321 1832 days ago
I'm a mechanical engineer.

The version control software that we use (I'm most familiar with Windchill, and just a wee bit familiar with SolidWorks PDM) is dumb. It's a B2B market with fat margins that is ripe to be disrupted.

Typically in Windchill, a part has a part number, and can be checked out and checked in, iterated, and revised, in operations that are non-intuitive and difficult to reverse. If you ever wanted to build an assembly using older versions of current parts, the process to figure it out might take 100 clicks, or might not be possible depending on how your system administrator set things up.

Merging (in the style of git) is generally a completely foreign concept, and engineers generally avoid collaborating on a single part or assembly file for that reason. Dividing up the interior of a vehicle's engine bay, for example, is best done as separate assembly files that are only later brought together as a parent assembly. Communicating about the volumetric boundaries of these assemblies is complicated.

I'm often aware that I could be more productive and adaptable using a git repo (or similar) containing my parts, assemblies, and drawings than I currently am with Windchill's specialized system. Haven't ever seen it in the wild, though.

4 comments

I've used Windchill extensively and I've set up a Vault instance (the Autodesk equivalent). I completely agree with what you are saying. At most companies, there is a "Emperor's Clothes" scenario where even the expert users and administrators have no idea what's going on under the hood, or how to execute advanced operations. (granted, Git has the same issue sometimes, let's face it) To make matters worse, Windchill has quite possibly the worst UI of any software I use --- first off, it runs in an instance of Internet Explorer embedded in the Creo CAD package. Few icons are labeled, and the UI is not discoverable at all. Google is often no help, since it is relatively niche BTB software. Doing what the parent suggests, using old versions of parts in new assemblies, is only reliable when saving the old versions out as a "dumb solid" like a STEP and re-importing them into Windchill. Part of the issue is that version control and databased file systems as a mental model do not align very well with how the human brain operates. The hierarchical structure rules the day in the end, because it aligns well with how we think.
I met the founder of Grabcad when he made a trip to Shenzhen China around 2012. I took away that he was trying to build the "github for CAD". We tried the Grabcad system out in our office for a while and it was useful but didn't really meet that vision. I haven't tried it since the company was acquired by Stratasys in like 2014 but a quick login looks like it hasn't changed much.
I deployed PDM at my company. It works fine, and even for people who don’t really know what version control is.

Multiple downsides though… cost, only really wants Solidworks files (although does handle everything as binaries), but the worst and most unforgivable issue…

They keep full versions of every file, at every check in… forever.

If you have a 500MB file, change the color, and check it it, you now have 1GB of file space taken up, with no clear way to cut that down! Coupled with the fact that deleted files don’t delete until someone manually does a destroy operation, it’s a storage space murderer.

You can setup a cold storage scheme or enable vault compression for old versions to save space on your archive server to save space.
There was something that was a super pain in the ass about their cold storage solution, but I haven’t ever seen a vault compression. I wonder if it’s new or I just missed it.
Completely agree, there is a lot of opportunity here. I have extensive experience using Solidworks, its PDM and another vault software (Adept, don't get me started). Collaboration on reasonably complex assemblies is rarely worth the effort, it's easier to communicate in other channels and link up at the end. File versioning is needlessly complicated and often frustrating, especially for less tech-savvy designers.
I’ve spent thousands of hours on pro|e and sw. the past few years it’s been mostly onshape. Their implementation for version control is the best I’ve seen, and is continuously improving. Def check it out if you haven’t