

Converting Circuit Boards to 3D CAD - neltnerb
http://blog.saikoled.com/post/63105697548/converting-circuit-boards-to-3d-cad

======
neltnerb
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...

~~~
krschultz
Excellent write up, appreciate it!

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.

~~~
neltnerb
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.

~~~
mbell
I'm curious:

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.

~~~
neltnerb
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!

~~~
mbell
> 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?

~~~
neltnerb
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.

------
mbell
Certainly an interest approach for hobbyist work. But, for commercial work
Altium is well worth the price in my opinion.

------
robomartin
You are smart guys and will certainly go places.

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.

