Hoping that others will find this useful. This represents about a week of work to figure out for an expert user of EagleCAD, a moderately experienced user of SolidWorks, and a Linux user of 12 years. If you have any other suggestions definitely comment either on the post or here! I'm willing to pay some money for software, but not $7k/year per head for Altium...
In your experience, what is the "best" open source alternative to SolidWorks? I'm kind of interested in contributing to a project, but haven't played with them in a while.
I'm afraid I haven't found any of them to be good in terms of actually offering similar functionality, but I haven't looked all that seriously.
To me, the key features that make SolidWorks (and Autodesk Inventor) stand out is the use of constraint driven assembly creation. Everything else seems to me to mostly be possible to work around. SolidWorks and Inventor have many, many added nice features like integration with CAM software, ability to assign materials from a database, ability to add things like fasteners and so on. It's a big list, and why people pay so much for it.
But if all you had was the ability to make sketches (using constraints and dimensions) combined with simple feature creation (linear and rotated extrusions, sweeps, and linear/circular/mirror patterns) to make individual parts, along with the ability to assemble parts using constraint driven logic it would be good enough for 90% of what I do as a non-professional mechanical designer.
If anyone knows of such a thing I'd also be interested in trying it... but I have not encountered such a thing yet.
We've been using Blender[0] for electromechanical rendering. Lots of importers available, and Python backend to hack. We've had some fun using Shapeways[1] for 3D printing of Blender models.
Why does Solidworks justify the price tag but Altium doesn't? They are in the same pricing ballpark. Your description of Solidworks sounds very much like why I would choose Altium over Eagle.
First, all of my design experience is in EagleCAD, so there is some vendor lock-in. If Altium had been available at a price I could afford when I was first starting work on electronics, it could have gone differently for sure. Additionally, when I was first getting into circuit board design (2004 or so) the people I knew using Altium constantly complained about how poorly it worked.
Mostly, I haven't run into a problem I couldn't solve with EagleCAD other than this MCAD/ECAD interoperability stuff. And I can live without that additional feature which makes it a luxury upgrade. On the other hand, without SolidWorks, I seriously doubt I could produce mechanical designs to send to machine shops for manufacturing.
That all said, I already have Solidworks available because my roomate is a professional mechanical designer. It's also readily available at the local hackerspace computer lab. I'd actually love to try Altium, and if my company ever makes enough money to justify it I would not hesitate to consider it. I'd be very excited to see what I'm missing actually!
There was a post on the EEVBlog recently about how Altium is probably going to introduce a hobbyist/hopefully free version of their software.
I've seen some videos of Altium and know PCB designers who swear by it. Seems like very good stuff and I'd be excited for something available to me: I am not a professional and so couldn't reasonably buy it at the current price.
> That all said, I already have Solidworks available because my roomate is a professional mechanical designer. It's also readily available at the local hackerspace computer lab.
Is that...legal? I mean, sounds like you're happy to use solidworks for your commercial endeavors as long as you don't actually have to pay for it?
To the best of my knowledge. It's not an educational version, and only one license is in use at any time. If I didn't have access to a commercially licensed version, I wouldn't use it anymore.
I had the opportunity to use the educational edition of SolidWorks for a few weeks a year or so ago. It seemed to have a fair number of the extra features included with it, one of which was CircuitWorks. I generated a model from a CircuitWorks example board and it turned out really well. When I tried to generate a model from one of my own Eagle projects it didn't look as good. From what I remember if there is no model of a component in the library, CircuitWorks just drops a bounding box in it's place which you can replace with your own model of the component. I had a deadline looming so I ended up using a photo of a prototype board as a texture on the part for the renderings I needed to do. This [1] help page mentions a lite version of CircuitWorks being available for all SolidWorks users, but I haven't tried it myself so I'm not sure about it's limitations.
In the context of a severely cash strapped startup it is fine --and almost necessary-- to get clever, jump through hoops and get things done any way you can.
However, at one point you will have to face the reality that your time is incredibly valuable and should be devoted to pushing the cart forward rather than stopping it to reinvent the wheel.
If I read this correctly three people spent a week coming up with a solution to a problem. If each one of you is worth $100 per hour, you just devoted somewhere in the order of $12,000 or more to reinvent something that is available in professional tools. My guess is that if you honestly evaluate the process you probably devoted much more time to this than a week.
There are multiple hidden costs to these solutions. There could be a recurring cost in the form of productivity loss each and every time you have to do this task due to the limitations of the solution. There's also the fact that, by choosing this tool path, you have constrained your ability to offload this work or expand your team by simply hiring professionals well-versed in "industrial grade" solutions.
Beyond that, there are all the non-ideal cases as well as the lack of flexibility you may have introduced into your process. Every time you need to do something you have to go back to reinventing the wheel and lose focus.
I am not critical of your approach. I've been there. I've done exactly what you are doing. I know the drill. I am simply pointing out that sometimes it is a far better idea to spend money and get on with the work you are really supposed to be doing.
I have two examples of this from my own professional experience: CNC machining and SMT assembly.
For the longest time I wanted to have the ability to machine parts in-house. I hated the nature of the process of working with machine shops. All the documentations. The low-tech nature of most shops. The piles of specifications you have to produce. Tolerances. Fucking tolerances! Lead times. And, in general, how the process seriously interferes with your ability to get creative.
For years I worked hard to bring CNC machining in-house. First I bought a used Bridgeport CNC knee mill (not a conversion, a real original CNC). I thought I was set. Well, I wasn't. The machine was old. I had to replace the computer with a PC, install new motor amplifiers and, in general terms, rewire the entire machine. But, hey, I was smart! I only paid $1,800 for this massive machine. Until the transmission started to have problems. And I discovered backlash, because it was well used. And I realized I really needed a larger work envelope. And the damn thing made coolant and chips fly everywhere.
I sold it at a loss and moved on. I decided to build my own. I was smart. I could do it. I wanted to save money. I wasn't about to buy an overpriced $100K+ machine just to cut metal. No way. So, I set out on this path to build a beefy CNC gantry machine that could do what I needed. When I got about $20K into it the tooling supplier I had been working with sat me down and pointed out just how stupid I had been. He was a much older guy who had seen many small companies come and go. A business father figure, if you will. He was right.
I sold my pile of parts on eBay and put in an order for a Haas VF3-SS Vertical Machining Center. Not cheap. I took a one week class and was making parts right off Solidworks in no time at all. All of a sudden I went from knocking my head against the walls to try to reinvent the wheel to actually pushing the cart forward every day. My every effort was devoted in the direction of making MY PRODUCT rather than trying to make a cheaper version of someone else's product that I simply needed to use.
I learned a similar lesson with surface mount manufacturing. I wanted to build circuit boards in house. I bought a small used SMT pick-and-place machine as well as a small multi-zone conveyorized reflow oven and all the bits and pieces to go with them. I actually thought about building my own (with the CNC machine) but quickly decided that was a dumb idea.
This setup sort of worked OK for a while. It was a pain to use. We didn't do this every day and you always had to tweak here and there and relearn how to run the system. I took notes and created a go-to manual that was quick and easy to follow every time we had to run a board. In the end, the thing was eating-up more human clock cycles than it was actually worth. The proverbial straw that broke this idea was when we had to do mid to large pin count BGA's and QFN parts. Now the thing needed optical alignment and more capabilities than we had with this machine. The oven had to be better. And, we also really needed to have optical and x-ray inspection capabilities.
This time it didn't take me long to understand that I was in the "I want to build my own CNC machine" scenario all over again. However, rather than go out and spend half a million dollars putting together in-house SMT manufacturing I found a really good contract manufacturer and got rid of all my SMT equipment.
Software tools are tools just as much as a CNC machine or an SMT Pick and Place machine. For some reason people don't have a problem placing a value of tens or hundreds of thousands of dollars on a big heavy and complicated machine tool. In sharp contrast to that, they recoil at the idea of paying a few thousand dollars for a software tool. It is actually very likely that the software tool had far more R&D, effort and investment put into developing and supporting it than the CNC machine, yet we reject paying for it. I think that's a false reality.
I've been using mechanical and electronic CAD/Design tools for a long time. I have to say that the combination of Altium Designer and Solidworks is, well, as close to an engineer's dream as you can get. The minute you start working with more advanced flows, such as large and complex FPGA designs it all becomes very clear. It's like driving a high power sports car. The power is there for you to use. Someone has already done the work to put it there. You might not use it every day. However, you know that when you need it is there. All you have to do is press on the pedal.
As for the integration of 3D rendered models and mechanical CAD. In general terms I've always found it is a waste of time to try to go to that extreme. It is a very easy matter to reserve a volume of space for the board and for protrusions above and below the board for most designs. With very tight designs that require close mechanical and electrical integration (I am thinking about something like an elaborate industrial control panel) one can easily start by modeling it with MCAD and iteratively verifying that it will be realizable in the ECAD domain. I have yet to find a project where one really needs full interactive bidirectional MCAD to ECAD integration with full 3D rendering of every single component. I've done very complex boards with thousands of components, including optics and thermal elements without the need to ever reach such extremes of integration. Also, integration at that level does not necessarily lend itself to a distributed design paradigm. You, all of a sudden, end-up with an "army of one" engineering paradigm because it is nearly impossible to split-up the design process when things are connected at such an interactive level.