3D modelling, CAD, and its relevance to PCB design
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Alternative Title |
| |
Title of Series | ||
Number of Parts | 150 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/34354 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2015 |
Content Metadata
Subject Area | |
Genre |
00:00
Radio-frequency identificationComputer-aided designWhiteboardDigital electronicsProduct (business)Endliche ModelltheorieConstraint (mathematics)Module (mathematics)MereologyData modelDisintegrationDissipationMassMathematical analysisComputational fluid dynamicsConfidence intervalMultiplicationIntegrated development environmentEndliche ModelltheorieBranch (computer science)Disk read-and-write headWhiteboardResultantContext awarenessProduct (business)Module (mathematics)Digital electronicsMereologyPoint (geometry)Transformation (genetics)CASE <Informatik>Computer configurationMechanism designConnectivity (graph theory)GeometryDataflowPolygon meshCartesian coordinate systemObservational studyDisplacement MappingVolume (thermodynamics)Projective planeStructural loadVirtual machineData structureExecution unitUniform resource locatorFile formatSpacetimeBitRepresentation (politics)Order (biology)Computer-assisted translationObject (grammar)Natural numberPlanningPrototypeVolumenvisualisierungReal numberRoundness (object)MultilaterationTouch typingMultiplication signTelecommunicationCodeVoltmeterLevel (video gaming)Online helpMotion captureSheaf (mathematics)Square numberRectangleDistanceAreaElectronic design automationOpen sourceAuditory maskingPatch (Unix)Software repositoryStack (abstract data type)Basis <Mathematik>Software suiteComputer simulationField (computer science)Arithmetic progressionMatching (graph theory)NP-hardForm (programming)GodGroup actionVideo gameTheoryTerm (mathematics)Solid geometryCellular automatonMarkup languageAssembly languageSampling (statistics)Physical systemWave packetRepository (publishing)Sinc functionGenderDampingMathematical analysisCountingWärmestrahlungXMLComputer animation
09:31
Digital electronicsComputer-aided designMereologyFlow separationPoint (geometry)Constraint (mathematics)GeometryData modelEndliche ModelltheorieStandard deviationTerm (mathematics)BEEPWhiteboardKernel (computing)NP-hardSurfaceShape (magazine)File formatElectronic design automationMultiplicationDiscrete element methodRWE DeaAsynchronous Transfer ModeOpen sourceRow (database)Computer fileTraffic reportingSoftwareVibrationSimulationComputer simulationGUI widgetMultiplication signData structureCalculationLine (geometry)View (database)Moment (mathematics)CurveLinearizationLevel (video gaming)Endliche ModelltheorieField (computer science)Planar graphFile formatFiber bundleKeyboard shortcutConstructor (object-oriented programming)Vertex (graph theory)Greatest elementBoilerplate (text)BitDisk read-and-write headSlide ruleTask (computing)Standard deviationArtistic renderingOpen setGeometryFluxMetropolitan area networkPoint (geometry)Resolvent formalismMathematical analysisVector potentialProjective planeBranch (computer science)Revision controlException handlingTerm (mathematics)DataflowComputer fontQuicksortCompact spaceLibrary (computing)Computer-assisted translationService (economics)Physical systemRight angleMereologyFlickrGoodness of fitNP-hardCheat <Computerspiel>Web pageKernel (computing)Single-precision floating-point formatSheaf (mathematics)Event horizonCASE <Informatik>Configuration spaceOrder (biology)Dimensional analysisWhiteboardSpherical capVisualization (computer graphics)Digital electronicsCurvatureShape (magazine)InferenceWeightBendingPolygon1 (number)Fitness functionConstraint (mathematics)LengthWebsiteAreaLimit (category theory)Data miningState of matterConnected spaceFunctional (mathematics)TelecommunicationVideo gameContext awarenessCartesian coordinate systemTransformation (genetics)Solid geometryAssembly languageSurfaceoutputComputer-aided designKey (cryptography)CodeCodeComplete metric spaceForceLetterpress printingWärmestrahlungTracing (software)EmailArc (geometry)Computer animation
18:58
GoogolComputer animationLecture/Conference
Transcript: English(auto-generated)
00:07
Okay hello everyone, I think a lot of people are the same crowd that were here when we gave the JEDA introduction talk, but for the new faces in the room, I'm Peter Clifton, I've been contributing to the JEDA project since around about 2008.
00:23
Chief code procrastinator on the basis that when I last looked at my git repository, I'm still looking at stacks of patches for features that I started maybe five plus years ago that are still improving and getting to the point where the code might one day be of sufficient quality to merge upstream.
00:43
So one of the common workflows in the JEDA GAF software suite is to design PCB boards and we start off with schematic capture and then use our PCB layout engine to design board geometry. And like a lot of board layout packages, PCB is typically a two and a half D drafting
01:06
system. You draw 2D layers and you have a stack of 2D layers to form a circuit board assembly. However, and anyone who's done electronics design commercially or going from electronics design to product design, you'll find two and a half
01:24
D is somewhat limiting and there's a lot of things we actually quite like to do that involve three dimensional modeling and I think if open source CAD is to remain relevant in actual industrial applications, open source electronics CAD needs to adopt some 3D support.
01:44
And this talk's going to go over a little bit about what is supported. Some of the tools already have 3D features and what maybe we can do in the future. So where we need 3D, if you're designing electronics assemblies, a lot of the time you need to know clearances between components.
02:02
For my work, I often work with high voltage systems, so clearances between components is actually quite important. It's fundamentally part of the engineering design that we need to achieve sufficient spacing between a node at 30,000 volts and the next ground plane. But due to the nature of components, that doesn't necessarily reflect in the two dimensional world
02:23
where the closest point of approach actually is. So we're starting to look at 3D models and to look at the realized objects in free space to look at what our design intent is. Perhaps a less extreme example, any kind of product that involves circuit boards is going to usually put that circuit board in the context
02:42
of a case or a sub-assembly and either your mechanical guys and marketing team decide what that needs to look like and your PCB designer is left with a task of fitting the 101 components into the little couple of inches cubed square that they've given you. Or perhaps the electronics designer is calling the shots and I say, well, I need that amount of space for my circuit board, my mounting holes
03:05
are in the following locations and you toss that over the wall to the mechanical guys to try and make it fit in there, end of things. So in order to do this, we start to need to have a concept of what our board looks like in 3D. We need a bit more data on the stack up and potentially for some of the workflows, we might like to import models of 3D parts that are assembled onto our boards.
03:27
And actually use those within the context of the PCB modeling environment. So fortunately I was able to reuse this example which is a commercial example that I've been working
03:41
on recently and I've got permission to show you some of the screenshots of what was going on. This is a three dimensional assembly where we take multiple circuit boards which solder together to form a module in 3D space. This is a high voltage module so clearance is important and by actually using some 3D features
04:02
that I've been working on for PCB, we're able to actually get a greater confidence that when the end result comes out of the PCB fab that the boards assemble and actually produce a working product. So board layout, I thought I'd include that shot just for people who are not particularly familiar with PCB.
04:22
That is roughly what get head PCB will look like, although it isn't get head, it's one of my branches which for those interested I can give a URL on repo.org.cz where I hide my get code. There's some extra features there including a 3D step export for the board. I'll turn on the solder mask layer there just to illustrate in a perhaps more realistic way what the board looks like.
04:47
It's a high voltage assembly, it has cutouts and routing in the board which are to avoid creepage distances on the board and the three PCBs that actually form this design are probably quite clearly visible there.
05:02
You've got a rectangular square center section and two little side boards and those side boards through an exposed copper area on the back of the side board here will insert through the slot rooted in the center board and connect up when you assemble the device.
05:20
So first of all if you're looking at components, what's really neat is to be able to visualize some 3D components when you're designing the board. I find that is of invaluable help when you're thinking through conceptually what I'm trying to do at the design stage of the board. I want to know. Roughly what it's going to look like when it's finished now. A lot of people say well, that's just pretty sugar. You don't need this for me. I find it helps PCB doesn't support this. This is a mock up.
05:48
It's an actual mock up. I've got code that will spin that round and it's real models on the board, but in this particular example those resistors there and the capacitor are actually hard coded see models saying.
06:01
If we were to implement 3D import. This is what it would look like and was allowed me to test some of the features of the OpenGL render in PCB and to have a look at how the lighting works and just to really prototype whether this is a useful feature or not. On the designs I've been working on. Step export touch briefly on step later. If we have time.
06:25
You take your board and you. Turn it into an incredibly complicated standardized format which every 3D package in the world can read. So in this case, solid works is the cat package we were using and that's a representation of the board.
06:45
We import the side boards and I start to build up a component model. I don't have a component models in the PCB for these more complicated parts, but. One of our interns is modeled the components up with pretty realistic 3D and then allowed me to create an assembly.
07:02
And at the end of the day when this whole unit is sold together. It looks a bit like that. It's got a case works around it. It's got some support structures. And within the context of the product that sits inside of a larger case and by having an accurate model of what will. Come out when we produce the PC bees. I'm able to design this case before we've even seen circuit boards and as was the case on this project.
07:25
We'd probably actually got the plastic case back and had the metal tank. It all sits in under machining before the circuit boards are come back from China. So once you've got a 3D model, you're able to perform a load of design checks.
07:42
So validating component clearances was one of the cases in my case where I was interested. We can facilitate designing surrounding case works in this case enclosures and. The rest of the product around the electronics. We can have a look at where our connectors need to be and the example
08:04
will progress onto a little design case study for a flexible circuit in this application. And you can do some other checks. In this case it was important that I could calculate the amount of volume that the circuit displaced. It's insulated under transformer oil and in that kind of application where we're generating heat in an
08:24
enclosure full of transformer oil, you need to know how much transformer oil you have in your enclosure to calculate your thermal expansion and look at how much headspace you need in that enclosure. Potentially if you were interested or needed to do that kind of analysis, a 3D model like this could be
08:41
used for post-processing into a FEA mesh and you could perhaps construct either e-field simulations, thermal flow simulations. The possibilities are opened up by having this data in a way that without it you just simply don't have those options without remodeling from scratch.
09:01
Here's an example showing the clearance checking. In this case I'm just looking at a clearance between a grounded clip on a transformer versus one of the high voltage capacitors. That enables me to have some confidence that we haven't made too many mistakes with parts that are too close to each other in this final assembly. And that's the kind of clearance that we wouldn't be able to pick up with the most sophisticated courtyards
09:25
on the PCB because we're effectively looking at the Z height of one component versus the courtyard off the transformer. So in this application we've got a wiring loom and looking at it and having
09:41
built one I realized actually it was quite a time consuming and costly part to build. So what I was looking at was maybe we can put a flex circuit into the system to make a connection between this sealed bulkhead connector and the actual circuit assembly. So within SOLIDWORKS I have modeled where I would like my flex circuit to be.
10:02
That's all done in the context of the assembly in such a way that as I move the circuit assembly around within its housing the flex circuit will remain the length I've modeled it. And I can have a look at basically how that's going to work if we vary the height of the electronics or move it around. This isn't really a talk on SOLIDWORKS. Later versions of SOLIDWORKS would let you constrain that with a path length constraint.
10:27
So the workflow kind of looks like this. I know what I want to achieve with my flex circuit. I know what shape it needs to fold up into. And I've isolated that model that I've been using for a mechanical concept as a separate part.
10:41
If you're looking at flexible circuits in SOLIDWORKS or a CAD package, one trick that you'd want to use probably is to invoke the sheet metal features. Because that's the piece of a CAD package which can usually natively fold and unfold planar structures.
11:00
And they can usually even cope with quite complex curvatures. So in this case I've got a very simple flex circuit, but nevertheless it would apply even with the complicated ones. You take your shape and you unfold the bends to give you a net. That is effectively what your circuit would need to look like and the dimensions the circuit would need to be in order to achieve that final folded configuration.
11:24
So in this case I skip a step. I'm cheating. We don't have particularly good input for CAD data. Now in the ideal world what I would like to be able to do is export the flattened model of my flex circuit from the CAD system to either a step file and then reimport that as a 3D import in my PCB package.
11:45
Or I can section it and export a DXF or other 2D format and import that as an outline. In Jida and PCB we can just about manage importing DXF, but it is a flow that involves I think Inkscape, PostScript, intermediate files and PS2 edit.
12:03
And you might lose a little bit of fidelity on things like arcs and they end up getting approximated by linear segments. So that's my flex design as I actually want to embody it. It's slightly different from the concept in that I've narrowed down the active part of the circuit rather than the model which was fairly simplified.
12:23
And just a little tease, there's a 3D view. PCB does have 3D rendering and certainly in the branches I maintain it has a concept of Z-height between layers, although currently it's hard coded.
12:40
So you spit out your step file which opens in FreeCAD. I was embarrassed to see that I hadn't used more open source CAD in areas where you can just about make do with open source CAD. And in Solidworks and from there you can actually remodel the part and fold it up using the sheet metal tools to represent the part you would actually end up with.
13:02
Which will assemble and go back to your mechanical guys to drop into their models and they can do all the normal checks to say, does that work? Are you colliding with things? So in open tools, the limitations I kind of see is at the moment we're lacking in semantic data.
13:22
PCB does not currently have the concept of a broad outline which is defined as this polygon and these curve segments. The code I've been using infers it from lines and geometry it finds on the outline layer. Which is okay in the short term but I think a longer term solution really requires proper semantic modeling of this is the shape of your PCB.
13:44
This is the thickness and possibly in the future this is the stack up and the actual build of the board so we can support more models. Key CAD has 3D models. It has had for a long time. It uses a surface based rendering. It imports I believe VRML. So you can actually already do the visualization steps I showed mocked up for PCB if you use key CAD.
14:07
Step export is possible. I use it and I've been talking to the key CAD guys and will probably collaborate on actually getting a support for that across both packages. Import is hard. Step standard I would probably have shown if I had slightly more time just a
14:24
single part of the step standard and maybe 350 pages just to describe the graphical elements. There are thousands of parts to the step standard and it is incredibly complicated so realistically you need to leverage a CAD kernel or a large existing library to be able to open the same 3D formats all your commercial
14:43
CAD packages use and actually turn that into a faceted geometry ready for rendering as a sort of surface model. Up until recently licensing issues have meant that has been a problem for Open Cascade. It's slightly easier now. I think Open Cascade has re-licensed LGPL. Although as bad luck would have it, it is LGPL version 2 only and
15:04
other dependencies within the projects are starting to require a GPL 3 compatible license. So potentially that problem hasn't completely resolved, but the future is there if we can resolve the licensing issues or if we can do the gargantuan task of actually importing step.
15:24
So PCB would certainly benefit from a DXF import. There are exporters for DXF for going the other way and it would be nice if we could actually get some better semantic data into the tools. So I'm skipping the rest of the little bits I had on the underlying modeling of 3D.
15:46
There's kind of a few slides on the edges and vertices that make up a 3D model. Faces and how that constructs to a solid geometry, but just to give you an example, this board which is a cuboid produces this step file.
16:07
And I've already cut off a great deal of header and a little bit of boilerplate at the bottom. So we're not talking a trivial format and that's using planar and linear geometry, not even touching upon curves.
16:21
At the moment it's a board outline that's extruded. I had intended to export traces
16:46
and vias for the point of view of, for example, efield modeling or thermal modeling. I took a step back to work on some data structures that really to export that kind of level of detail and to have the routing between layers, you're going to need a 3D capable data structure within your software rather than just, for
17:03
example, these board outlines because it's a simple extrusion. You can pretty much open code print F's and generate the required files. Excellent. So for the record, the question was do we export the trace geometry as well as the board outline. I'd certainly like to
17:34
do that. People have told me it's really of very little use, but I'm going to do it anyway when I get the time.
18:16
So the comment was that one of the simulations you might want to do would be a
18:20
mechanical simulation looking at vibration modes of a completed circuit board assembly. That is an absolutely wonderful case. There are some big aerospace vendors, NASA, and some commercial board vendors actually looking at extracting this kind of data in a variant of the STEP standard to model complete circuit assemblies and to
18:41
feed simulations looking at PCB warpage analysis, vibration analysis. If you've got the data, you enable these flows.