Index: femsolvers.sch =================================================================== --- femsolvers.sch (nonexistent) +++ femsolvers.sch (revision 6816) @@ -0,0 +1,190 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-C.sym +V 34200 50100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 67300 44100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 69200 46700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 34200 46200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 58700 51400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 34200 45000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 34200 48600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 34200 47400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 58700 52600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 69200 47900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 48000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 46900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 45800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 44700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 43600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 49100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 50200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 42500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 40300 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 39200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 41400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 38100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 67300 43000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 37000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 67300 41900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 68300 38700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 35900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49700 34800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 67300 40800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 67400 36800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 72000 35500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 72000 34400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +T 34200 50100 9 10 1 0 0 4 1 +librecad +T 67300 44100 9 10 1 0 0 4 1 +openfoam +T 69200 46700 9 10 1 0 0 4 1 +paraview +T 34200 46200 9 10 1 0 0 4 1 +gmsh +T 58700 51400 9 10 1 0 0 4 1 +salome +T 34200 45000 9 10 1 0 0 4 1 +freecad +T 34200 48600 9 10 1 0 0 4 1 +brlcad +T 33800 49200 9 12 1 0 0 0 1 +3D CAD +T 34200 47400 9 10 1 0 0 4 2 +open +scad +T 33800 50700 9 12 1 0 0 0 1 +2D CAD +T 58700 52600 9 10 1 0 0 4 1 +onelab +T 69200 47900 9 10 1 0 0 4 1 +opendx +T 49700 48000 9 10 1 0 0 4 1 +maxfem +T 49700 46900 9 10 1 0 0 4 1 +openems +T 49700 45800 9 10 1 0 0 4 1 +meep +T 49700 44700 9 10 1 0 0 4 1 +angora +T 49700 43600 9 10 1 0 0 4 1 +EMTL +T 49700 49100 9 10 1 0 0 4 1 +fastmaxwell +T 49700 50200 9 10 1 0 0 4 1 +nec2 +T 49700 42500 9 10 1 0 0 4 1 +getdp +T 68500 48500 9 12 1 0 0 0 1 +3D Graphing +T 66900 44700 9 12 1 0 0 0 1 +3D CFD +T 49300 50800 9 12 1 0 0 0 2 +3D FEM +w/E&M Ability +T 49700 40300 9 10 1 0 0 4 1 +FEniCS +T 49700 39200 9 10 1 0 0 4 1 +dealii +T 49700 41400 9 10 1 0 0 4 1 +freedrake +T 50400 46800 9 12 1 0 0 0 2 +openems uses it's own format in matlab/ocatve script to process everything including geometry +it's output includes but is not limited to paraview and octave's native grapher + ?gnuplot? +T 50400 49100 9 12 1 0 0 0 1 +fastmaxwell might be abandonware. the project looks stalled post 2008. no info on mesh or geometry input is obivous on the site. +T 50400 48000 9 12 1 0 0 0 1 +maxfem is more for FEM mechanical issues like mechancial stresses from magnetics than electrical/rf work +T 50400 50200 9 12 1 0 0 0 1 +nec2 has frequency limitations and is meant mostly for the design of antennas. sadly versions after 2 are proprietary. this is the only solver i have seen that uses method of moments. +T 50500 41400 9 12 1 0 0 0 1 +firedrake is cool because it has gpu processing. i question their meshing. as yet i see no em work done in it. +T 50500 39200 9 12 1 0 0 0 1 +dealII is cool but i have trouble understanding it's documentation (only lgpl) +T 50500 40200 9 12 1 0 0 0 2 +FEniCS is another tool that seems to be mostly for mechanical people. However I like their example work on electromagnetics. +The one thing I dislike about their work is that the current front end is python. +T 50400 45700 9 12 1 0 0 0 1 +meep uses scheme. I feel that says everything. it is actively developed. one positive for it is that it supports hdf5 for output. +T 50400 43300 9 12 1 0 0 0 2 +EMTL is hard to google for some reason http://fdtd.kintechlab.com/en/start is the url +it would be good for modeling semiconductors but they don't really talk about anyting rf or pcb related in the documentation. +T 50400 44500 9 12 1 0 0 0 2 +angora is also hard to google to get results look for angoraftdt which should yeald http://www.angorafdtd.org/ +i don't like their documentation. it would appear to have been developed over the course of 1 year 2012-2013 and then abandoned. +T 50400 42400 9 12 1 0 0 0 1 +getdp is run via onelab using gmsh to do the meshing. i am not wild about onelab which is way too gui for me. we want to be able to drive everything from make. +T 49700 38100 9 10 1 0 0 4 1 +calculix +T 50500 38100 9 12 1 0 0 0 1 +calculix looks like a cfd/fem that someone wrote to do aeronautical work and then later an example of electromagnetics was run on it for show. +T 69900 47900 9 12 1 0 0 0 1 +opendx has it's fans and is still in use but it has been with out a new release in like 10 years. +T 69900 46700 9 12 1 0 0 0 1 +paraview has an excessive number of dependencies but just about everyone uses it. it is maintaned and well documented. +T 67300 43000 9 10 1 0 0 4 1 +code saturne +T 57900 53300 9 12 1 0 0 0 1 +FEM front ends +T 49700 37000 9 10 1 0 0 4 1 +feel++ +T 50500 37000 9 10 1 0 0 0 1 +feel++ (http://www.feelpp.org/) has a lot of current development and has some examples in the E&M domain but they are not really over lapping with what I think our users need. +T 67300 41900 9 10 1 0 0 4 1 +gerris +T 68000 41800 9 10 1 0 0 0 1 +Gerris Flow Solver (http://gfs.sourceforge.net/wiki/index.php/Main_Page) +T 68000 43000 9 10 1 0 0 0 1 +Code Saturne (http://code-saturne.org/cms/) +T 68300 38700 9 10 1 0 0 4 1 +code aster +T 50500 35800 9 10 1 0 0 0 1 +S4 (https://web.stanford.edu/group/fan/S4/index.html) +T 50500 34800 9 10 1 0 0 0 1 +Elmer (https://csc.fi/web/elmer/elmer) (http://www.elmerfem.org/) this is able to connect to salome which is nice and lists E&M as a feature but I could not find a single example of it in actual use on E&M via their wiki or examples page. +T 68900 38600 9 10 1 0 0 0 1 +Code Aster (http://code-aster.org/spip.php?rubrique2) This hooks into salome as well. For the mechanical folks it handles mechanical and thermal stuff. I know people who use it with Salome and love it. Honestly it is all over my head. +T 68300 39400 9 10 1 0 0 4 2 +3D FEM +Mechanical +T 59400 52500 9 10 1 0 0 0 1 +One Lab (http://onelab.info/wiki/Main_Page) +T 34800 46200 9 10 1 0 0 0 1 +gmsh (http://gmsh.info/) is a very well respected mesh generation program for FEM that has a 3D CAD built into it. For some formats it falls back on opencascade. +T 49700 35900 9 10 1 0 0 4 1 +s4 +T 49700 34800 9 10 1 0 0 4 1 +elmer +T 68000 44100 9 10 1 0 0 0 1 +openfoam is impressive and is aiming to be like comsol interms of it's universality. it is very well documented but none of the people i know in the modeling field have ever used it or even know anyone who has used it. +T 59400 51400 9 12 1 0 0 0 1 +i know a ton of people who use this and swear by it. the trouble is that all of the more appealing stuff in E&M is ftdt which this has yet to connect to as far as i can tell. +T 34800 50000 9 12 1 0 0 0 1 +librecad was originally qcad from QT. i liked qcad which had a very short learning curve. i still haven't gotten the hang of librecad for some reason. +T 34800 44800 9 12 1 0 0 0 2 +freecad is reported by some friends to be best in terms of ease of use compared to openscad and freecad. +I resist it because it uses opencascade which is only lgpl. +T 34800 47400 9 12 1 0 0 0 1 +openscad is favored by Igor2. It's 3D kernel is opencsg which is distributed seperately. +T 34800 48300 9 12 1 0 0 0 3 +brlcad is the old and well respected. It is also painful to use a problem they are trying to address with a new gui called archer. +brlcad supports more cad formats than any other open source program i could find. It has it's own 3D kernel. +they are so well respected openscad, linuxcnc and a few others have their google summer of code projects over seen by brlcad. +T 67300 40800 9 10 1 0 0 4 1 +su2 +T 68000 40800 9 12 1 0 0 0 1 +su2 http://su2.stanford.edu/ +T 67400 36800 9 10 1 0 0 4 1 +openfcst +T 68100 36800 9 12 1 0 0 0 2 +OpenFCST (http://www.openfcst.mece.ualberta.ca/index.html) open source fuel cell simulation tool box +Uses Deal.II, salome, and dakota +T 67400 37600 9 10 1 0 0 4 2 +3D FEM +Left Field +T 72700 35500 9 12 1 0 0 0 1 +dakota (https://dakota.sandia.gov/) ??? +T 72000 35500 9 10 1 0 0 4 1 +dakota +T 72000 36200 9 10 1 0 0 4 1 +Associated Libraries of Interest +T 72000 34400 9 10 1 0 0 4 1 +opencascade Index: femworkflows.sch =================================================================== --- femworkflows.sch (nonexistent) +++ femworkflows.sch (revision 6816) @@ -0,0 +1,382 @@ +v 20140308 2 +C 40000 40000 0 0 0 title-C.sym +V 42700 49400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 43100 49700 43800 50400 3 0 0 0 -1 -1 +L 42700 48900 42700 47900 3 0 0 0 -1 -1 +V 42700 49400 1500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 47700 50400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 47700 47300 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49900 53400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49900 51000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 47700 54000 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 50000 45500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 49900 52200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 47700 51600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 42700 46900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 42300 49700 41600 50400 3 0 0 0 -1 -1 +L 43800 48400 43100 49100 3 0 0 0 -1 -1 +L 42300 49100 41600 48400 3 0 0 0 -1 -1 +V 41400 47400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 44000 47400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 46000 45500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 41200 49400 42200 49400 3 0 0 0 -1 -1 +V 47700 48500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 47700 52800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 46300 48500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 44500 47400 47200 47400 3 0 1 0 -1 -1 +L 44200 49400 45800 48500 3 0 1 0 -1 -1 +L 46800 48500 47200 48500 3 0 1 0 -1 -1 +L 44200 49400 44200 47900 3 0 1 0 -1 -1 +V 42700 52400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 42700 53900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 43200 52400 45800 48500 5 0 1 0 -1 -1 +L 43200 53900 45800 48500 5 0 1 0 -1 -1 +V 50000 44200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 44200 49400 47200 50400 3 0 1 0 -1 -1 +L 44200 49400 47200 51600 3 0 1 0 -1 -1 +L 44200 49400 47200 52800 3 0 1 0 -1 -1 +L 44200 49400 47200 54000 3 0 1 0 -1 -1 +L 43200 53900 47200 50400 3 0 1 0 -1 -1 +L 43200 53900 47200 51600 3 0 1 0 -1 -1 +L 43200 53900 47200 52800 3 0 1 0 -1 -1 +L 43200 53900 47200 54000 3 0 1 0 -1 -1 +L 48200 52800 49400 52200 3 0 1 0 -1 -1 +L 48200 52800 49400 53400 3 0 1 0 -1 -1 +L 48200 51600 49400 52200 3 0 1 0 -1 -1 +L 48200 51600 49400 53400 3 0 1 0 -1 -1 +L 48200 50400 49400 51000 3 0 1 0 -1 -1 +V 49900 54600 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 48200 54000 49400 53400 3 0 1 0 -1 -1 +L 48200 54000 49400 54600 3 0 1 0 -1 -1 +V 49900 49500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 48200 51600 49400 49500 3 0 1 0 -1 -1 +L 48200 48500 49400 49500 3 0 1 0 -1 -1 +L 48200 47300 49400 49500 3 0 1 0 -1 -1 +L 48200 48500 49500 45500 3 0 1 0 -1 -1 +L 49500 45500 48200 47300 3 0 1 0 -1 -1 +V 52200 46100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 54400 49900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 49500 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 47300 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 52200 50200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 45100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 42700 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 46200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 56000 48400 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 54900 49900 55500 49500 3 0 1 0 -1 -1 +L 54900 49900 55500 48400 3 0 1 0 -1 -1 +L 54900 49900 55500 47300 3 0 1 0 -1 -1 +L 52700 46100 55500 48400 3 0 1 0 -1 -1 +L 52700 46100 55500 47300 3 0 1 0 -1 -1 +L 52700 46100 55500 46200 3 0 1 0 -1 -1 +L 52700 46100 55500 45100 3 0 1 0 -1 -1 +V 58400 47200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 54900 49900 55400 50300 3 0 1 0 -1 -1 +L 55400 50300 56600 50300 3 0 1 0 -1 -1 +L 56600 50300 57900 47200 3 0 1 0 -1 -1 +L 52700 46100 55500 44500 3 0 1 0 -1 -1 +L 55500 44500 56500 44500 3 0 1 0 -1 -1 +L 56500 44500 57900 47200 3 0 1 0 -1 -1 +L 56500 45100 57900 47200 3 0 1 0 -1 -1 +L 56500 46200 57900 47200 3 0 1 0 -1 -1 +L 56500 47300 57900 47200 3 0 1 0 -1 -1 +L 56500 48400 57900 47200 3 0 1 0 -1 -1 +L 56500 49500 57900 47200 3 0 1 0 -1 -1 +L 56500 43800 57900 47200 3 0 1 0 -1 -1 +V 52200 48800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 52200 47200 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 50000 42900 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 48200 48500 49500 44200 4 0 1 0 -1 -1 +L 48200 47300 49500 44200 4 0 1 0 -1 -1 +L 48200 47300 49500 42900 4 0 1 0 -1 -1 +L 48200 48400 49500 42900 4 0 1 0 -1 -1 +L 52700 48800 53900 49900 4 0 1 0 -1 -1 +L 52700 47200 53900 49900 4 0 1 0 -1 -1 +L 48200 48500 51700 48800 5 0 1 0 -1 -1 +L 48200 48500 51700 47200 5 0 1 0 -1 -1 +L 48200 48500 55500 42700 5 0 1 0 -1 -1 +V 52200 44100 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 52700 44100 55500 42700 3 0 1 0 -1 -1 +V 56000 43800 500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 52700 47200 55500 43800 4 0 1 0 -1 -1 +L 48200 48500 51700 46100 8 0 1 0 -1 -1 +L 56500 42700 57900 47200 3 0 0 0 -1 -1 +T 42700 49400 9 10 1 0 0 4 1 +libgeda +T 42700 50400 9 10 1 0 0 4 1 +gschem +T 41700 49100 9 10 1 0 0 4 1 +gattrib +T 43700 49400 9 10 1 0 0 4 1 +gnetlist +T 50000 45500 9 10 1 0 0 4 1 +gerbv +T 47700 47300 9 10 1 0 0 4 1 +pcb +T 47700 50400 9 10 1 0 0 4 1 +iverilog +T 47700 51600 9 10 1 0 0 4 1 +ng-spice +T 49900 52200 9 10 1 0 0 4 1 +gtkwave +T 42700 46900 9 10 1 0 0 4 1 +tragesym +T 42200 48400 9 10 1 0 0 4 1 +gsymcheck +T 49900 53400 9 10 1 0 0 4 1 +gwave +T 49900 51000 9 10 1 0 0 4 1 +dinotrace +T 47700 54000 9 10 1 0 0 4 1 +xyce +T 42700 51100 9 10 1 0 0 4 1 +geda +T 44000 47400 9 10 1 0 0 4 1 +gsch2pcb +T 41700 49700 9 10 1 0 0 4 1 +gschlas +T 41400 47400 9 10 1 0 0 4 1 +sarlacc +T 41200 45900 9 10 1 0 0 2 3 +* sarlacc and tragesym use libgeda +but only for colors?! They do not +apear to parse symbols via libgeda. +T 46000 45500 9 10 1 0 0 4 1 +make +T 47700 48500 9 10 1 0 0 4 1 +pcb-rnd +T 43100 48400 9 10 1 0 0 4 1 +gaf +T 47700 52800 9 10 1 0 0 4 1 +gnucap +T 46300 48600 9 10 1 0 0 4 1 +gsch2- +T 46300 48400 9 10 1 0 0 4 1 +pcb-rnd +T 42700 52400 9 10 1 0 0 4 1 +ltspice +T 42700 53900 9 10 1 0 0 4 1 +qucs +T 47100 49200 9 12 1 0 0 0 1 +PCB Layout +T 41800 54600 9 12 1 0 0 0 1 +Schematic Capture +T 46800 54700 9 12 1 0 0 0 1 +Circuit Simulation +T 50000 44200 9 10 1 0 0 4 1 +linuxcnc +T 49900 54600 9 10 1 0 0 4 1 +gnuplot +T 49900 49500 9 10 1 0 0 4 1 +cray lc +T 49300 55200 9 12 1 0 0 0 1 +2D Graphing +T 49500 49300 9 12 1 0 0 0 1 +(closed) +T 42300 52200 9 12 1 0 0 0 1 +(closed) +T 49500 50000 9 12 1 0 0 0 2 +3D FEM +parasitics +T 52200 46100 9 10 1 0 0 4 1 +salome +T 54400 49900 9 10 1 0 0 4 1 +onelab +T 53700 50600 9 12 1 0 0 0 1 +FEM front end +T 56000 49500 9 10 1 0 0 4 1 +getdp +T 56000 47300 9 10 1 0 0 4 1 +elmer +T 52200 50200 9 10 1 0 0 4 1 +gmsh +T 56000 45100 9 10 1 0 0 4 1 +code aster +T 56000 42700 9 10 1 0 0 4 1 +openems +T 56000 46200 9 10 1 0 0 4 1 +code saturne +T 56000 48400 9 10 1 0 0 4 1 +openfoam +T 51600 50800 9 12 1 0 0 0 1 +Mesh + CAD +T 55500 50100 9 12 1 0 0 0 1 +3D solvers +T 58400 47200 9 10 1 0 0 4 1 +paraview +T 49500 46100 9 12 1 0 0 0 1 +gerber view +T 49500 44800 9 12 1 0 0 0 1 +CNC Mill +T 52200 48800 9 10 1 0 0 4 1 +brlcad +T 51800 49400 9 12 1 0 0 0 1 +3D CAD +T 52200 47200 9 10 1 0 0 4 2 +open +scad +T 50000 42900 9 10 1 0 0 4 1 +openpnp +T 49500 43500 9 12 1 0 0 0 1 +CNC Stuff +T 41400 42000 9 12 1 0 0 0 8 +Key +Green - Workflows known to operate +Blue - Workflows believe to work based on format compatibility +Yellow - Workflows we would are considering in the near term. +Red - Workflows someone should do in the extreme far future. +Probably by/as other projects. +(state) - status of a project +[parent] - who is this a part of +T 52200 44100 9 10 1 0 0 4 2 +csxcad +[openems] +T 57700 47900 9 12 1 0 0 0 1 +3D Graphing +T 56000 43800 9 10 1 0 0 4 1 +FEniCS +T 50800 54900 9 10 1 0 0 0 8 +Note: For E&M solving you really need direct route from +pcb-rnd to the solver or atleast a front end for it. Meta- +data is lost when you transition through a 3D CAD about +where connections are and etc that is critical to E&M. +The flows via 3D CAD are documented here so that they +can be visualized for people who might want to look at +heat/air flow over populated boards and/or vibrational +modes of complete assemblies. +T 49300 40500 9 10 1 0 0 0 6 +Note: I am not proposing we actually build all or any of this +[block of 3D CAD&FEM stuff] past the part I have already +gotten involved with. I just wanted everyone to understand +how the workflows could be if one of these tools jumped +out as a "must have" to them or if one of their users +jumped at the chance to bridge the gap. +L 52700 50200 53900 49900 3 0 0 0 -1 -1 +L 52700 50200 55500 48400 3 0 0 0 -1 -1 +L 52700 50200 55500 43800 3 0 0 0 -1 -1 +T 45400 46100 9 12 1 0 0 0 1 +Automation +T 44000 47200 9 10 1 0 0 4 1 +[geda-gaf] +T 42700 46700 9 10 1 0 0 4 1 +[geda-gaf] +T 41400 47200 9 10 1 0 0 4 1 +[geda-gaf] +T 46300 48200 9 10 1 0 0 4 1 +[pcb-rnd] +L 52700 50200 55500 47300 3 0 0 0 -1 -1 +L 52700 50200 55500 46200 3 0 0 0 -1 -1 +L 52700 50200 55600 45400 3 0 0 0 -1 -1 +L 44200 47900 44200 48000 3 0 0 0 -1 -1 +L 51500 50000 51700 50200 4 0 1 0 -1 -1 +L 51500 48600 51700 48800 4 0 1 0 -1 -1 +L 51500 49000 51500 50000 4 0 1 0 -1 -1 +L 51500 49000 51700 48800 4 0 1 0 -1 -1 +L 51500 47400 51500 48600 4 0 1 0 -1 -1 +L 51500 47400 51700 47200 4 0 1 0 -1 -1 +L 51000 49800 51700 50200 4 0 1 0 -1 -1 +L 51000 44500 51000 49800 4 0 1 0 -1 -1 +L 51000 44500 51700 44100 4 0 1 0 -1 -1 +L 51700 47200 51300 46900 4 0 1 0 -1 -1 +L 51300 44600 51300 46900 4 0 1 0 -1 -1 +L 51300 44600 51700 44100 4 0 1 0 -1 -1 +L 51300 49900 51700 50200 4 0 1 0 -1 -1 +L 51300 47500 51700 47200 4 0 1 0 -1 -1 +L 51300 47500 51300 49900 4 0 1 0 -1 -1 +L 51200 48500 51700 48800 4 0 1 0 -1 -1 +L 51200 44600 51200 48500 4 0 1 0 -1 -1 +L 51700 44100 51200 44600 4 0 1 0 -1 -1 +T 56000 53200 9 10 1 0 0 0 16 +Note: Looking at rats nest between CAD programs some +might ask why not just use gmsh because it has the most +interconnections and there for looks the most capable. +The answer is simple, it isn't just the model you have to +move or for that matter the components that have to be +composited into it. You have to consider the solder fillets, +fasteners and chassis. Those are probably going to be +hard to add manually in the post pcb-rnd process. Really +someone will have to add a tool later to generate that +stuff in the correct locations. Doing that ether way in gmsh +is a large question but more importantly drafting the +chassis and etc in gmsh would be brutal for all but the +simplest geometries. Really you want gmsh in the flow for +most solvers but for non-E&M problems it has +to come after a 3D CAD where everything around the +board is developed. +T 56000 51700 9 10 1 0 0 0 7 +Note: Another question that might be commonly asked is +why do we care about paths to solvers not involving a +front end. The front ends make life easier but a lot of +solvers particularly multiphysics ones like openfoam fenics +more limited in functionality when channeled through a +front end. Those front ends are like help wizards they look +pretty but they narrow your functionality a lot. +L 48200 48500 50800 49000 8 0 1 0 -1 -1 +L 50800 49000 50800 49800 8 0 1 0 -1 -1 +L 50800 49800 51700 50200 8 0 1 0 -1 -1 +T 50800 51500 9 10 1 0 0 0 16 +Note: The blue vertical lines between CAD programs have +their limits. Moving anything from one 3D format to another +causes degeneration. Most 3D CAD formats are just bags +of triangles. More modern ones have splines and more +complex geometry but the point is that changing how these +are processed adds rounding error which is a problem. The +bottom line is don't hope 3D CAD programs just to add a +feature here or there to a model. It will also cost you most +if not all meta data about what features are. Most of these +programs only understand a very little about what the +geometry is in the first place. +Making matters worse each CAD engines native format can +store a whole model but to move that model to a new CAD +with all meta data require splitting the model up into parts +each in their own file and importing them into the other CAD. +This is a brutally unpleasant process. +L 51500 46900 51700 47200 4 0 1 0 -1 -1 +L 51500 46400 51500 46900 4 0 1 0 -1 -1 +L 51500 46400 51700 46100 4 0 1 0 -1 -1 +L 51500 44500 51700 44100 4 0 1 0 -1 -1 +L 51500 44500 51500 46000 4 0 1 0 -1 -1 +L 51500 46000 51700 46100 4 0 1 0 -1 -1 +L 51100 48600 51700 48800 4 0 1 0 -1 -1 +L 51100 46700 51100 48600 4 0 1 0 -1 -1 +L 51100 46700 51700 46100 4 0 1 0 -1 -1 +L 52700 50200 54500 49200 3 0 0 0 -1 -1 +L 54500 49200 55300 49200 3 0 0 0 -1 -1 +L 55300 49200 55500 49500 3 0 0 0 -1 -1 +L 52700 48800 55500 48400 4 0 1 0 -1 -1 +L 52700 47200 55500 48400 4 0 1 0 -1 -1 +L 52700 48800 55500 43800 4 0 1 0 -1 -1 +T 52200 45800 9 10 1 0 0 3 1 +(LGPL2.1) +T 57200 41700 9 10 1 0 0 0 15 +*brlcad +example +https://brlcad.org/wiki/SGI_Cube + +*openscad +The whole thing was built to be scripted. + +*salome +??? + +*freecad +Look at "The parametric way" here. +http://www.freecadweb.org/wiki/index.php?title=Drawing_Module +http://www.freecadweb.org/wiki/index.php?title=Topological_data_scripting +https://www.youtube.com/watch?v=Cann15ajYlY +T 58200 48700 9 10 1 0 0 0 11 +Converting geometry between cad programs... + +openscad can be read perfectly in freecad but the reverse requires reconstruction because of freecads fundamental architecture being BREP and not CSG. +http://www.freecadweb.org/wiki/index.php?title=OpenSCAD_Module + +to understand the difference between BREP and CSG look at how the brlcad developers explain it in this document page 4. +http://brlcad.org/w/images/6/66/Converting_Geometry.pdf +(note this document is rather out of date but the concepts it describes are still valid) + +https://sourceforge.net/p/brlcad/mailman/message/25933181/ +from the cocreator himself. don't change formats +T 52200 43800 9 10 1 0 0 3 1 +(LGPL3) +T 56000 42500 9 10 1 0 0 3 1 +(GPL3) Index: openems-layout-outline.sch =================================================================== --- openems-layout-outline.sch (nonexistent) +++ openems-layout-outline.sch (revision 6816) @@ -0,0 +1,110 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-C.sym +B 42000 51000 4500 4500 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +A 42000 55500 500 90 180 3 0 0 0 -1 -1 +A 46500 55500 500 270 180 3 0 0 0 -1 -1 +L 42000 56000 46500 56000 3 0 0 0 -1 -1 +L 42000 55000 46500 55000 3 0 0 0 -1 -1 +T 44800 55700 9 10 1 0 0 0 1 +trace +T 42300 56300 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 47800 56300 9 20 1 0 0 0 1 +What we need in OpenEMS. +A 42000 51000 500 180 180 3 0 0 0 -1 -1 +A 42000 55500 500 0 180 3 0 0 0 -1 -1 +L 41500 51000 41500 55500 3 0 0 0 -1 -1 +L 42500 51000 42500 55500 3 0 0 0 -1 -1 +T 41900 54000 9 10 1 0 90 0 1 +trace +A 46500 51000 500 270 180 3 0 0 0 -1 -1 +A 42000 51000 500 90 180 3 0 0 0 -1 -1 +L 46500 50500 42000 50500 3 0 0 0 -1 -1 +L 46500 51500 42000 51500 3 0 0 0 -1 -1 +A 46500 55500 500 0 180 3 0 0 0 -1 -1 +A 46500 51000 500 180 180 3 0 0 0 -1 -1 +L 47000 55500 47000 51000 3 0 0 0 -1 -1 +L 46000 55500 46000 51000 3 0 0 0 -1 -1 +T 43500 50900 9 10 1 0 180 0 1 +trace +T 46700 52600 9 10 1 0 270 0 1 +trace +B 48000 51000 4500 4500 3 0 0 1 -1 100 1 -1 -1 -1 -1 -1 +B 42000 43500 4500 4500 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +A 42000 48000 500 90 180 3 0 0 0 -1 -1 +A 46500 48000 500 270 180 3 0 0 0 -1 -1 +L 42000 48500 46500 48500 3 0 0 0 -1 -1 +L 42000 47500 46500 47500 3 0 0 0 -1 -1 +A 42000 43500 500 180 180 3 0 0 0 -1 -1 +A 42000 48000 500 0 180 3 0 0 0 -1 -1 +L 41500 43500 41500 48000 3 0 0 0 -1 -1 +L 42500 43500 42500 48000 3 0 0 0 -1 -1 +A 46500 43500 500 270 180 3 0 0 0 -1 -1 +A 42000 43500 500 90 180 3 0 0 0 -1 -1 +L 46500 43000 42000 43000 3 0 0 0 -1 -1 +L 46500 44000 42000 44000 3 0 0 0 -1 -1 +A 46500 48000 500 0 180 3 0 0 0 -1 -1 +A 46500 43500 500 180 180 3 0 0 0 -1 -1 +L 47000 48000 47000 43500 3 0 0 0 -1 -1 +L 46000 48000 46000 43500 3 0 0 0 -1 -1 +T 44800 48200 9 10 1 0 0 0 1 +trace +T 42300 48800 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 41900 46500 9 10 1 0 90 0 1 +trace +T 43500 43400 9 10 1 0 180 0 1 +trace +T 46700 45100 9 10 1 0 270 0 1 +trace +A 43500 46500 200 0 180 3 0 0 0 -1 -1 +L 43300 46500 43300 45300 3 0 0 0 -1 -1 +L 43700 46500 43700 45300 3 0 0 0 -1 -1 +A 43500 45300 200 180 180 3 0 0 0 -1 -1 +A 44100 46500 200 0 180 3 0 0 0 -1 -1 +L 43900 46500 43900 45300 3 0 0 0 -1 -1 +L 44300 46500 44300 45300 3 0 0 0 -1 -1 +A 44100 45300 200 180 180 3 0 0 0 -1 -1 +A 43500 46500 200 90 180 3 0 0 0 -1 -1 +L 43500 46300 44100 46300 3 0 0 0 -1 -1 +L 43500 46700 44100 46700 3 0 0 0 -1 -1 +A 44100 46500 200 270 180 3 0 0 0 -1 -1 +A 44100 45300 200 270 180 3 0 0 0 -1 -1 +L 43500 45100 44100 45100 3 0 0 0 -1 -1 +A 43500 45300 200 90 180 3 0 0 0 -1 -1 +L 43500 45500 44100 45500 3 0 0 0 -1 -1 +B 48000 43500 4500 4500 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +A 50100 45300 200 270 360 3 0 0 0 -1 -1 +A 49500 45300 200 90 360 3 0 0 0 -1 -1 +T 49000 43100 9 10 1 0 0 0 1 +Board outline shown not filled in for readability +A 50100 46500 200 270 360 3 0 0 0 -1 -1 +A 49500 46500 200 270 360 3 0 0 0 -1 -1 +T 55000 40700 9 10 1 0 0 0 1 +Board Outline and Cutouts +L 50100 46300 53100 46000 3 0 0 0 -1 -1 +L 50300 45800 53100 45500 3 0 0 0 -1 -1 +L 49300 46500 49500 46700 3 0 0 0 -1 -1 +L 49500 46700 50100 46700 3 0 0 0 -1 -1 +L 50100 46700 50300 46500 3 0 0 0 -1 -1 +L 50300 46500 50300 45300 3 0 0 0 -1 -1 +L 50300 45300 50100 45100 3 0 0 0 -1 -1 +L 50100 45100 49500 45100 3 0 0 0 -1 -1 +L 49500 45100 49300 45300 3 0 0 0 -1 -1 +L 49300 45300 49300 46500 3 0 0 0 -1 -1 +L 55000 44300 55200 44500 3 0 0 0 -1 -1 +L 55200 44500 55800 44500 3 0 0 0 -1 -1 +L 55800 44500 56000 44300 3 0 0 0 -1 -1 +L 56000 44300 56000 43100 3 0 0 0 -1 -1 +L 56000 43100 55800 42900 3 0 0 0 -1 -1 +L 55800 42900 55200 42900 3 0 0 0 -1 -1 +L 55200 42900 55000 43100 3 0 0 0 -1 -1 +L 55000 43100 55000 44300 3 0 0 0 -1 -1 +T 53200 46000 9 10 1 0 0 0 1 +The rounded corners are done with cylinders. +T 53200 45000 9 10 1 0 0 0 3 +The polygon is used to take up the body of the cutout is +made using tangent lines between the outside edges of +the cylinders and extruding the Z axis +T 54400 44600 9 10 1 0 0 0 1 +The polygon on it's own. Index: openems-layout-simple.sch =================================================================== --- openems-layout-simple.sch (nonexistent) +++ openems-layout-simple.sch (revision 6816) @@ -0,0 +1,183 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-C.sym +B 49000 53000 6500 2000 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +A 50000 54000 500 90 180 3 0 0 0 -1 -1 +A 54500 54000 500 270 180 3 0 0 0 -1 -1 +L 55800 54400 55000 54100 3 0 0 0 -1 -1 +L 55800 55300 55500 55000 3 0 0 0 -1 -1 +B 41500 53000 6500 2000 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +A 50000 54000 500 270 180 3 0 0 2 100 100 +L 50400 54300 51300 55900 3 0 0 0 -1 -1 +A 42500 54000 500 90 180 3 0 0 0 -1 -1 +A 47000 54000 500 270 180 3 0 0 0 -1 -1 +L 42500 54500 47000 54500 3 0 0 0 -1 -1 +L 42500 53500 47000 53500 3 0 0 0 -1 -1 +L 42200 53600 42600 52700 3 0 0 0 -1 -1 +L 46500 52600 46200 53000 3 0 0 0 -1 -1 +T 52100 52700 9 10 1 0 0 0 1 +Body of the trace replaced with a rectangle +T 55800 54400 9 10 1 0 0 0 1 +Ends of the trace replaced with a smaller polygon extruded vertically +T 55800 55300 9 10 1 0 0 0 1 +board outline is now a polygon extruded vertically +T 51300 55900 9 10 1 0 0 0 1 +annular ring is here but occupies the same space as the body of the trace and it's round end. +T 45500 53900 9 10 1 0 0 0 1 +trace +T 42600 52700 9 10 1 0 0 0 1 +end of trace +T 46500 52600 9 10 1 0 0 0 1 +board outline +T 42300 56300 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 50300 56300 9 20 1 0 0 0 1 +What we need in OpenEMS. +L 54500 54500 54500 53500 3 0 0 2 100 100 +L 50000 54500 54500 54500 3 0 0 0 -1 -1 +L 54500 53500 50000 53500 3 0 0 0 -1 -1 +L 50000 54500 50000 53500 3 0 0 2 100 100 +T 44500 40300 9 10 1 0 0 0 6 +To me the most annoying corner case is the trouble of board outline vs board cutout. +PCB fabs by default assume the outline of the board is the middle of the lines drawn +around the layout. Board cutouts are however milled to the exterior edge of the lines +drawn in the gerber. Since both are done on the outline layer in pcb-rnd we have to +figure out which is the outline of the board and which is the outline of the cutout +before converting the geometry. +L 50000 54600 50000 53400 3 0 0 4 100 100 +A 54500 54000 600 180 360 3 0 0 4 100 100 +L 54500 54500 54500 53500 3 0 0 2 100 100 +L 54500 54600 54500 53400 3 0 0 4 100 100 +L 54500 53400 50000 53400 3 0 0 4 100 100 +L 54500 54600 50000 54600 3 0 0 4 100 100 +L 52100 52700 51500 53500 3 0 0 0 -1 -1 +A 42500 54000 600 90 180 3 0 0 4 100 100 +A 47000 54000 600 270 180 3 0 0 4 100 100 +L 47000 53400 42500 53400 3 0 0 4 100 100 +L 47000 54600 42500 54600 3 0 0 4 100 100 +A 50000 54000 600 180 360 3 0 0 4 100 100 +A 54500 54000 500 90 180 3 0 0 2 100 100 +L 55000 53700 55800 53500 3 0 0 0 -1 -1 +T 52800 55600 9 10 1 0 0 0 1 +clearance around the trace's body is just a square sharing 2 of the same edges with the body only wider +L 52800 55600 52100 54600 3 0 0 0 -1 -1 +T 55800 53100 9 10 1 0 0 0 3 +Clearance around the end of the trace (required if we are in a + polygon) is a cylinder of what ever matterial the copper + was displacing (air, solder mask, substrate/adheasive). +L 43700 54600 44500 55400 3 0 0 0 -1 -1 +T 44500 55400 9 10 1 0 0 0 1 +Clearance around the trace +B 47500 47000 2500 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 48500 48500 200 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +V 48500 48500 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +A 48500 48500 800 270 360 3 0 0 4 100 100 +A 48500 48500 500 90 360 3 0 0 0 -1 -1 +T 50100 52000 9 10 1 0 0 0 3 +Clearance around the end of the trace (required if we are in a + polygon) is a cylinder of what ever matterial the copper + was displacing (air, solder mask, substrate/adheasive). +L 49700 53500 50100 52400 3 0 0 0 -1 -1 +L 48500 49300 50300 50600 3 0 0 0 -1 -1 +L 48900 48800 50300 49100 3 0 0 0 -1 -1 +L 50300 48300 48700 48500 3 0 0 0 -1 -1 +L 50300 47800 48700 48300 3 0 0 0 -1 -1 +T 50300 50200 9 10 1 0 0 0 3 +Clearance around the via (required if we are in a polygon) is + a cylinder of what ever matterial the copper was + displacing (air, solder mask, substrate/adheasive). +T 50300 49100 9 10 1 0 0 0 1 +annular ring is here but occupies the same space as the body of the trace and it's round end. +T 50300 48300 9 10 1 0 0 0 1 +via hole is now a cylinder of air which ends just at the start of the solder mask layer. +T 50300 47800 9 10 1 0 0 0 1 +the vias plating is a cylinder which is at a priority above the substrate. +T 50300 49700 9 10 1 0 0 0 1 +board outline is now a polygon extruded vertically +T 47500 50900 9 20 1 0 0 0 1 +Vias in OpenEMS +A 42000 48500 500 90 360 3 0 0 0 -1 -1 +V 42000 48500 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +V 42000 48500 200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 42200 48400 43800 47800 3 0 0 0 -1 -1 +L 42100 48200 43800 47500 3 0 0 0 -1 -1 +L 42100 48000 43800 47200 3 0 0 0 -1 -1 +L 43800 49700 43500 49500 3 0 0 0 -1 -1 +A 42000 48500 800 270 360 3 0 0 4 100 100 +L 42000 49300 43800 50100 3 0 0 0 -1 -1 +T 43800 47800 9 10 1 0 0 0 1 +via hole +T 43800 47500 9 10 1 0 0 0 1 +via hole plating +T 43800 47200 9 10 1 0 0 0 1 +annular ring (overlapped by end of trace) +T 43800 49700 9 10 1 0 0 0 1 +board outline +T 41000 50900 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 43800 50100 9 10 1 0 0 0 1 +Clearance around the via +B 41000 47000 2500 2500 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 50300 49700 50000 49500 3 0 0 0 -1 -1 +L 47700 44600 49200 43800 3 0 0 0 -1 -1 +L 47700 43800 48000 43600 3 0 0 0 -1 -1 +B 53000 41800 4200 3700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 55300 46000 54300 44100 3 0 0 0 -1 -1 +L 57500 43100 57200 43000 3 0 0 0 -1 -1 +A 54600 42700 1500 0 90 3 0 0 0 -1 -1 +A 54600 42700 500 0 90 3 0 0 0 -1 -1 +A 55600 42700 500 180 180 3 0 0 0 -1 -1 +A 54600 43700 500 90 180 3 0 0 0 -1 -1 +A 54600 43700 500 270 180 3 0 0 2 100 100 +L 54600 44200 54600 43200 3 0 0 2 100 100 +L 56100 42700 55100 42700 3 0 0 2 100 100 +A 55600 42700 500 0 180 3 0 0 2 100 100 +L 57500 42600 56000 42400 3 0 0 0 -1 -1 +B 48000 41800 4200 3700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 57500 43900 55800 43600 3 0 0 0 -1 -1 +A 49700 42700 500 0 90 3 0 0 0 -1 -1 +A 49700 43700 500 90 180 3 0 0 0 -1 -1 +A 49700 42700 1500 0 90 3 0 0 0 -1 -1 +A 50700 42700 500 180 180 3 0 0 0 -1 -1 +A 49700 43700 600 90 180 3 0 0 4 100 100 +L 47700 45300 49600 44300 3 0 0 0 -1 -1 +A 49700 42700 1600 0 90 3 0 0 4 100 100 +A 50700 42700 600 180 180 3 0 0 4 100 100 +A 49700 42700 400 0 90 3 0 0 4 100 100 +A 54600 42700 1600 0 90 3 0 0 4 100 100 +A 55600 42700 600 180 360 3 0 0 4 100 100 +A 54600 42700 400 0 90 3 0 0 4 100 100 +L 56200 42700 55000 42700 3 0 0 4 100 100 +L 54600 44300 54600 43100 3 0 0 4 100 100 +L 47700 42400 50100 42700 3 0 0 0 -1 -1 +L 55900 42200 57500 42300 3 0 0 0 -1 -1 +L 56100 43300 57500 43500 3 0 0 0 -1 -1 +A 54600 43700 600 180 360 3 0 0 4 100 100 +T 50200 43400 9 10 1 0 0 0 1 +arc +T 47700 44600 9 10 1 0 0 6 1 +annular ring (overlapped by end of trace) +T 47700 43800 9 10 1 0 0 6 1 +board outline +T 48000 45700 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 57500 43900 9 10 1 0 0 0 1 +Rotational box to form the body of the arc +T 57500 43100 9 10 1 0 0 0 1 +board outline +T 53000 45700 9 20 1 0 0 0 1 +OpenEMS +T 55300 46000 9 10 1 0 0 0 1 +cylinders for the ends of the arc +T 57500 42600 9 10 1 0 0 0 1 +cylinder used to add rounded end to the arc +T 47700 45300 9 10 1 0 0 6 1 +trace clearance +T 47700 42400 9 10 1 0 0 6 1 +outline of trace clearance +T 57500 42300 9 10 1 0 0 0 1 +cylinder used to add clearance in plane(s) +T 57500 43500 9 10 1 0 0 0 1 +rotated box used to create clearance around arc +T 55200 46300 9 10 1 0 0 0 1 +cylinder used to add clearance +L 55200 46300 54200 44200 3 0 0 0 -1 -1 Index: openems-notes-layout.sch =================================================================== --- openems-notes-layout.sch (nonexistent) +++ openems-notes-layout.sch (revision 6816) @@ -0,0 +1,181 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-C.sym +B 48500 50500 6500 2000 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +A 49500 51500 500 90 180 3 0 0 0 -1 -1 +A 54000 51500 500 270 180 3 0 0 0 -1 -1 +V 49500 51500 200 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +V 49500 51500 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +L 50900 49900 49700 51500 3 0 0 0 -1 -1 +L 50400 49500 49700 51300 3 0 0 0 -1 -1 +L 55300 51900 54500 51600 3 0 0 0 -1 -1 +L 55300 52800 55000 52500 3 0 0 0 -1 -1 +B 41500 50500 6500 2000 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +A 49500 51500 500 270 180 3 0 0 2 100 100 +L 49900 51800 50500 53400 3 0 0 0 -1 -1 +A 42500 51500 500 90 180 3 0 0 0 -1 -1 +A 47000 51500 500 270 180 3 0 0 0 -1 -1 +V 42500 51500 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +V 42500 51500 200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 42500 52000 47000 52000 3 0 0 0 -1 -1 +L 42500 51000 47000 51000 3 0 0 0 -1 -1 +L 42700 51400 43700 50200 3 0 0 0 -1 -1 +L 42500 51200 43400 50000 3 0 0 0 -1 -1 +L 42200 51100 42800 49800 3 0 0 0 -1 -1 +L 46500 50100 46200 50500 3 0 0 0 -1 -1 +T 51600 50200 9 10 1 0 0 0 1 +Body of the trace replaced with a rectangle +T 55300 51900 9 10 1 0 0 0 1 +Ends of the trace replaced with a smaller polygon extruded vertically +T 55300 52800 9 10 1 0 0 0 1 +board outline is now a polygon extruded vertically +T 50900 49900 9 10 1 0 0 0 1 +via hole is now a cylinder of air which ends just at the start of the solder mask layer. +T 50400 49500 9 10 1 0 0 0 1 +the vias plating is a cylinder which is at a priority above the substrate. +T 50500 53400 9 10 1 0 0 0 1 +annular ring is here but occupies the same space as the body of the trace and it's round end. +T 45500 51400 9 10 1 0 0 0 1 +trace +T 43700 50200 9 10 1 0 0 0 1 +via hole +T 43400 50000 9 10 1 0 0 0 1 +via hole plating +T 42800 49800 9 10 1 0 0 0 1 +annular ring (overlapped by end of trace) +T 46500 50100 9 10 1 0 0 0 1 +board outline +T 43100 53900 9 20 1 0 0 0 1 +What we have in pcb-rnd. +T 50000 54600 9 20 1 0 0 0 1 +What we need in OpenEMS. +V 49700 45700 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +V 49700 45700 200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 49700 45500 47700 44800 3 0 0 0 -1 -1 +L 47700 44500 49700 45400 3 0 0 0 -1 -1 +L 47700 46600 49200 45800 3 0 0 0 -1 -1 +L 47700 45800 48000 45600 3 0 0 0 -1 -1 +T 50500 45100 9 10 1 0 0 0 1 +arc +T 47700 44800 9 10 1 0 0 6 1 +via hole +T 47700 44500 9 10 1 0 0 6 1 +via hole plating +T 47700 46600 9 10 1 0 0 6 1 +annular ring (overlapped by end of trace) +T 47700 45800 9 10 1 0 0 6 1 +board outline +T 48100 47800 9 20 1 0 0 0 1 +What we have in pcb-rnd. +B 53000 43800 4200 3700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +V 54600 45700 300 3 0 0 1 -1 100 0 -1 -1 -1 -1 -1 +L 54800 45700 57500 46700 3 0 0 0 -1 -1 +L 57500 46300 54900 45600 3 0 0 0 -1 -1 +L 55500 48300 54300 46100 3 0 0 0 -1 -1 +L 57500 45100 57200 45000 3 0 0 0 -1 -1 +A 54600 44700 1500 0 90 3 0 0 0 -1 -1 +A 54600 44700 500 0 90 3 0 0 0 -1 -1 +A 55600 44700 500 180 180 3 0 0 0 -1 -1 +A 54600 45700 500 90 180 3 0 0 0 -1 -1 +T 57500 45900 9 10 1 0 0 0 1 +Rotational Polygon to form the body of the arc +T 57500 46700 9 10 1 0 0 0 1 +via hole is a cylinder filled with air +T 57500 46300 9 10 1 0 0 0 1 +via hole plating a cylinder of metal through the core +T 55500 48300 9 10 1 0 0 0 1 +two cylinders: 1 from via annular ring +T 57500 45100 9 10 1 0 0 0 1 +board outline +T 53100 47800 9 20 1 0 0 0 1 +OpenEMS +A 54600 45700 500 270 180 3 0 0 2 100 100 +L 54600 46200 54600 45200 3 0 0 2 100 100 +L 56100 44700 55100 44700 3 0 0 2 100 100 +T 56600 48100 9 10 1 0 0 0 1 +2. from the end of the arc +A 55600 44700 500 0 180 3 0 0 2 100 100 +V 54600 45700 200 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +T 57500 44600 9 10 1 0 0 0 1 +cylinder used to add rounded end to the arc +L 57500 44600 56000 44400 3 0 0 0 -1 -1 +B 48000 43800 4200 3700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 54000 52000 54000 51000 3 0 0 2 100 100 +L 49500 52000 54000 52000 3 0 0 0 -1 -1 +L 54000 51000 49500 51000 3 0 0 0 -1 -1 +L 49500 52000 49500 51000 3 0 0 2 100 100 +L 57500 45900 55800 45600 3 0 0 0 -1 -1 +A 54600 45700 800 270 360 3 0 0 4 100 100 +A 49700 45700 800 270 360 3 0 0 4 100 100 +T 47700 45200 9 10 1 0 0 6 1 +via clearance +L 47700 45200 48900 45600 3 0 0 0 -1 -1 +L 56700 47900 55000 46400 3 0 0 0 -1 -1 +T 58700 48000 9 10 1 0 180 0 1 +cylinder for via clearance +A 49700 44700 500 0 90 3 0 0 0 -1 -1 +A 49700 45700 500 90 180 3 0 0 0 -1 -1 +A 49700 44700 1500 0 90 3 0 0 0 -1 -1 +A 50700 44700 500 180 180 3 0 0 0 -1 -1 +A 49700 45700 600 90 180 3 0 0 4 100 100 +T 47700 47300 9 10 1 0 0 6 1 +trace clearance +L 47700 47300 49600 46300 3 0 0 0 -1 -1 +A 49700 44700 1600 0 90 3 0 0 4 100 100 +A 50700 44700 600 180 180 3 0 0 4 100 100 +A 49700 44700 400 0 90 3 0 0 4 100 100 +A 54600 44700 1600 0 90 3 0 0 4 100 100 +A 55600 44700 600 180 360 3 0 0 4 100 100 +A 54600 44700 400 0 90 3 0 0 4 100 100 +L 56200 44700 55000 44700 3 0 0 4 100 100 +L 54600 46300 54600 45100 3 0 0 4 100 100 +T 47700 44000 9 10 1 0 0 6 1 +outline of trace clearance +L 47700 44000 50100 44700 3 0 0 0 -1 -1 +T 57500 44300 9 10 1 0 0 0 1 +cylinder used to add clearance in plane(s) +L 55900 44200 57500 44300 3 0 0 0 -1 -1 +L 56100 45300 57500 45500 3 0 0 0 -1 -1 +T 57500 45500 9 10 1 0 0 0 1 +rotated box used to create clearance around arc +A 49500 51500 800 270 360 3 0 0 4 100 100 +L 49500 52100 49500 50900 3 0 0 4 100 100 +A 54000 51500 600 180 360 3 0 0 4 100 100 +L 54000 52000 54000 51000 3 0 0 2 100 100 +L 54000 52100 54000 50900 3 0 0 4 100 100 +L 54000 50900 49500 50900 3 0 0 4 100 100 +L 54000 52100 49500 52100 3 0 0 4 100 100 +L 51600 50200 51000 51000 3 0 0 0 -1 -1 +A 42500 51500 800 270 360 3 0 0 4 100 100 +A 42500 51500 600 90 180 3 0 0 4 100 100 +A 47000 51500 600 270 180 3 0 0 4 100 100 +L 47000 50900 42500 50900 3 0 0 4 100 100 +L 47000 52100 42500 52100 3 0 0 4 100 100 +A 54600 45700 600 180 360 3 0 0 4 100 100 +A 49500 51500 600 180 360 3 0 0 4 100 100 +A 54000 51500 500 90 180 3 0 0 2 100 100 +L 54500 51200 55300 51000 3 0 0 0 -1 -1 +T 52300 53100 9 10 1 0 0 0 1 +clearance around the trace's body is just a square sharing 2 of the same edges with the body only wider +L 52300 53100 51600 52100 3 0 0 0 -1 -1 +T 55300 50600 9 10 1 0 0 0 3 +Clearance around the end of the trace (required if we are in a + polygon) is a cylinder of what ever matterial the copper + was displacing (air, solder mask, substrate/adheasive). +L 43700 52100 44500 52900 3 0 0 0 -1 -1 +L 42500 52300 43400 53300 3 0 0 0 -1 -1 +T 44500 52900 9 10 1 0 0 0 1 +Clearance around the trace +T 43400 53300 9 10 1 0 0 0 1 +Clearance around the via +T 50400 53700 9 10 1 0 0 0 3 +Clearance around the via (required if we are in a polygon) is + a cylinder of what ever matterial the copper was + displacing (air, solder mask, substrate/adheasive). +L 49500 52300 50400 54100 3 0 0 0 -1 -1 +T 49600 48700 9 10 1 0 0 0 3 +Clearance around the end of the trace (required if we are in a + polygon) is a cylinder of what ever matterial the copper + was displacing (air, solder mask, substrate/adheasive). +L 49300 50900 49600 49100 3 0 0 0 -1 -1 +T 46300 56000 9 10 1 0 0 0 1 +I drew these first and then realized they were too cluttered. There is a second set in the new file that is cleaner. Index: openems-notes.sch =================================================================== --- openems-notes.sch (nonexistent) +++ openems-notes.sch (revision 6816) @@ -0,0 +1,322 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-C.sym +B 52000 50100 500 4800 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +B 52100 50100 300 4800 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +L 53300 55300 53100 54700 3 0 0 0 -1 -1 +B 49500 52100 5500 700 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 49500 53600 5500 600 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 49500 53000 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 49500 53400 49500 53600 3 0 0 0 -1 -1 +L 55000 52800 55000 53600 3 0 0 0 -1 -1 +L 49500 52800 49500 53000 3 0 0 0 -1 -1 +B 51400 51500 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 55000 51900 55000 52100 3 0 0 0 -1 -1 +L 49500 51300 49500 52100 3 0 0 0 -1 -1 +L 55000 51300 55000 51500 3 0 0 0 -1 -1 +B 49500 49900 5500 600 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 51400 49700 51800 50100 3 0 0 0 -1 -1 +B 49500 50700 5500 600 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 49500 54200 5500 200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +B 49500 50500 5500 200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +B 51400 50100 1700 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 51400 54400 1700 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 52500 51100 54000 49800 3 0 0 0 -1 -1 +B 58500 50100 500 4800 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +B 58600 50100 300 4800 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +L 59600 55200 59200 54800 3 0 0 0 -1 -1 +B 56000 51900 5500 1100 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 56000 53400 5500 1000 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 56000 53000 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 61500 53000 61500 53400 3 0 0 0 -1 -1 +B 57900 51500 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 56000 51500 56000 51900 3 0 0 0 -1 -1 +B 56000 49900 5500 600 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +L 57900 49700 58300 50100 3 0 0 0 -1 -1 +B 56000 50500 5500 1000 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 57900 50100 1700 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 57900 54400 1700 500 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 59000 51100 60600 49700 3 0 0 0 -1 -1 +B 43000 41000 500 3100 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +B 43100 41000 300 3100 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +L 44100 44500 43700 44100 3 0 0 0 -1 -1 +B 40500 41000 5500 3100 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +L 42200 40500 42700 41000 3 0 0 0 -1 -1 +L 43500 41500 45100 40400 3 0 0 0 -1 -1 +B 49500 42400 5500 1100 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 52200 42400 300 1100 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +B 52100 42400 500 1100 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +L 51100 54400 51100 55000 3 0 0 0 -1 -1 +L 51100 55000 49500 55000 3 0 0 0 -1 -1 +L 49500 55000 49500 54400 3 0 0 0 -1 -1 +L 53400 54400 53400 55000 3 0 0 0 -1 -1 +L 53400 55000 55000 55000 3 0 0 0 -1 -1 +L 55000 55000 55000 54400 3 0 0 0 -1 -1 +L 51400 55400 51700 55000 3 0 0 0 -1 -1 +B 51400 54800 1700 100 3 0 0 0 -1 -1 3 1 4 200 -1 -1 +L 52800 55100 52900 54900 3 0 0 0 -1 -1 +T 40500 52300 9 10 1 0 0 0 5 +The exporter should ask what the lowest priority it can use is and what the highest +is. That way if you run out of room it can warn. I want to be able to set the pcb's +base priority so that it can be super imposed in designs. I am not sure how well +that will work but it is just a question of what number to use so we are not talking +about a minor addition to the complexity we already have. +T 55400 40800 9 10 1 0 0 0 4 +http://openems.de/index.php/Tutorial:_Importing_with_hyp2mat + +3D copper used to model antennas +http://openems.de/index.php/Tutorial:_Simple_Patch_Antenna +T 49700 54600 9 10 1 0 0 0 1 +Solder Mask +T 52100 52300 22 10 1 0 0 0 1 +Air +T 53300 55300 9 10 1 0 0 0 1 +Annular Ring +T 50100 53100 9 10 1 0 0 0 1 +trace on inside layer +T 49700 52400 9 10 1 0 0 0 1 +substrate +T 54100 52400 9 10 1 0 0 0 1 +substrate +T 54100 53800 9 10 1 0 0 0 1 +substrate +T 49700 53800 9 10 1 0 0 0 1 +substrate +T 53600 53200 9 10 1 0 0 0 1 +adheasive +T 50800 52800 9 10 1 0 0 0 1 +adheasive +T 50800 53400 9 10 1 0 0 0 1 +adheasive +T 40500 53500 9 10 1 0 0 0 15 +we have to assume the board is planar otherwise impedances will be a nightmare. +yes in real life some vendors squish boards in ways that make the outline of +internal copper layers embossed into all the layers over them. This type of +manufacturing is impossibly bad for calculating impedances. + +To save computational power in the E&M solver we should also ingore the tiny +layer of adheasive under and over the copper layer. Making the stackup the same +thickness but the substrate slightly thicker. So the stackup above on the left +is altered into the one on the right. + +I am not sure if the annular ring actually has adheasive under it or if it is plated +directly onto the board. This may vary with process. More research is needed. + +If we do mechanical simulation or export later we should add in a feature to +support export with adheasive because it adds required boundary conditions. +T 54600 51600 9 10 1 0 0 6 1 +trace on inside layer +T 50900 51700 9 10 1 0 0 6 1 +adheasive +T 53700 51300 9 10 1 0 0 6 1 +adheasive +T 53700 51900 9 10 1 0 0 6 1 +adheasive +T 54800 50300 9 10 1 0 180 0 1 +Solder Mask +T 51400 49700 9 10 1 0 180 0 1 +Annular Ring +T 50400 51100 9 10 1 0 180 0 1 +substrate +T 54800 51100 9 10 1 0 180 0 1 +substrate +T 50800 54200 9 10 1 0 0 0 1 +adheasive +T 53000 54200 9 10 1 0 0 0 1 +adheasive +T 50800 50500 9 10 1 0 0 0 1 +adheasive +T 53800 50500 9 10 1 0 0 0 1 +adheasive +T 53000 49600 9 10 1 0 0 0 1 +copper plating on the hole +T 58600 52300 22 10 1 0 0 0 1 +Air +T 59600 55200 9 10 1 0 0 0 1 +Annular Ring +T 56500 53100 9 10 1 0 0 0 1 +trace on inside layer +T 56200 52400 9 10 1 0 0 0 1 +substrate +T 59900 52400 9 10 1 0 0 0 1 +substrate +T 60000 53800 9 10 1 0 0 0 1 +substrate +T 56200 53800 9 10 1 0 0 0 1 +substrate +T 60100 53200 9 10 1 0 0 0 1 +adheasive +T 61100 51600 9 10 1 0 0 6 1 +trace on inside layer +T 57400 51700 9 10 1 0 0 6 1 +adheasive +T 61300 50300 9 10 1 0 180 0 1 +Solder Mask +T 57900 49700 9 10 1 0 180 0 1 +Annular Ring +T 56900 51100 9 10 1 0 180 0 1 +substrate +T 61000 51100 9 10 1 0 180 0 1 +substrate +T 59600 49500 9 10 1 0 0 0 1 +copper plating on the hole +T 47900 41300 9 10 1 0 0 0 1 +Note: None of these drawings are to scale. +T 49400 55800 9 20 1 0 0 0 1 +Worst case for PCB-RND storage. +T 56500 55800 9 20 1 0 0 0 1 +Worst case for OpenEMS. +T 40500 50900 9 10 1 0 0 0 6 +I am going to assume for simulation that the tiny amount of adheasive under and +over the traces is not important to modeling in the E&M domain. If it was we would +have to worry about minor variations in it's thickness and etc which would be brutal. + +I am also going to assume that the adheasive is not exactly the same impedance as +the substrate. +T 43100 42400 22 10 1 0 0 0 1 +Air +T 44100 44500 9 10 1 0 0 0 1 +Annular Ring +T 40700 42500 9 10 1 0 0 0 1 +substrate +T 40700 43900 9 10 1 0 0 0 1 +substrate +T 42200 40500 9 10 1 0 180 0 1 +Annular Ring +T 45800 41200 9 10 1 0 180 0 1 +substrate +T 44100 40200 9 10 1 0 0 0 1 +copper plating on the hole +T 40500 44700 9 20 1 0 0 0 1 +Multilayer accelerated with 2D mesh +T 45700 43400 9 10 1 0 180 0 1 +substrate +T 52200 42900 22 10 1 0 0 0 1 +Air +T 49700 42900 9 10 1 0 0 0 1 +substrate +T 54100 42900 9 10 1 0 0 0 1 +substrate +T 49500 44400 9 20 1 0 0 0 1 +3D copper replaced with 2D mesh +T 51400 55400 9 10 1 0 0 6 1 +Exposed Via +T 53500 54600 9 10 1 0 0 0 1 +Solder Mask +T 52800 55100 9 10 1 0 0 6 1 +ENIG Plating +L 59900 54400 59900 55000 3 0 0 0 -1 -1 +L 59900 55000 61500 55000 3 0 0 0 -1 -1 +L 61500 55000 61500 54400 3 0 0 0 -1 -1 +L 57600 54400 57600 55000 3 0 0 0 -1 -1 +L 57600 55000 56000 55000 3 0 0 0 -1 -1 +L 56000 55000 56000 54400 3 0 0 0 -1 -1 +T 60000 54600 9 10 1 0 0 0 1 +Solder Mask +T 56200 54600 9 10 1 0 0 0 1 +Solder Mask +T 51100 55200 9 10 1 0 0 6 1 +Solder Mask Clearance +L 51100 55200 51300 54900 3 0 0 0 -1 -1 +L 57900 55400 58200 55000 3 0 0 0 -1 -1 +L 57600 55200 57800 54900 3 0 0 0 -1 -1 +T 57900 55400 9 10 1 0 0 6 1 +Exposed Via +T 57600 55200 9 10 1 0 0 6 1 +Solder Mask Clearance +T 40500 47100 9 10 1 0 0 0 18 +Every matterial has a priority, matterial and geometry in OpenEMS. We can only +add matterials we can not subtract. However we can add non-conductive things +at higher priority so that we create voids with pockets of air. + +There is an added complexity in that we don't want to have to cut around traces +and annular rings that are inside/adjacent to planes. + +The following is how the priorities are to be used. The number after the item is the +priority relative to the 0 point that users set. I want this feature because there might +be a structure people want to layer this over/under after export. + +holes, mask clearance & cutouts (air) 6 +copper traces & copper planes with no clearance 5 +substrate (adheasive) clearance 4 +copper planes 3 +adheasive 2 +substrate 1 +environment (air) 0 x and y set at time of export z left as a variable to the user +L 40500 43100 46000 43100 3 0 0 0 -1 -1 +L 46000 42000 40500 42000 3 0 0 0 -1 -1 +L 42400 42000 46000 42000 7 4 0 2 100 100 +L 40500 43100 44100 43100 7 4 0 2 100 100 +L 42400 41000 44100 41000 7 4 0 2 100 100 +L 42400 44100 44100 44100 7 4 0 2 100 100 +L 51400 42400 55000 42400 7 4 0 2 100 100 +L 49500 43500 53100 43500 7 4 0 2 100 100 +B 58500 43200 500 4800 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +B 58600 43200 300 4800 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +L 59600 48400 59200 48000 3 0 0 0 -1 -1 +B 56000 43600 5500 3900 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 56000 46100 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 57900 44600 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 57900 42800 58300 43200 3 0 0 0 -1 -1 +B 57900 43200 1700 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 57900 47500 1700 500 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +L 59000 44200 60600 43100 3 0 0 0 -1 -1 +B 49500 46400 5500 1100 3 0 1 0 -1 -1 0 -1 -1 -1 -1 -1 +B 49500 47500 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 51400 46000 3600 400 3 0 0 0 -1 -1 2 1 -1 100 -1 100 +B 52200 46000 300 1900 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 +B 52100 46000 500 1900 3 0 1 1 -1 100 0 -1 -1 -1 -1 -1 +T 58600 45400 22 10 1 0 0 0 1 +Air +T 59600 48400 9 10 1 0 0 0 1 +Annular Ring +T 46200 42600 9 10 1 0 0 0 1 +trace on inside layer as 2D mesh +T 56200 45500 9 10 1 0 0 0 1 +substrate +T 56200 46900 9 10 1 0 0 0 1 +substrate +T 61100 44700 9 10 1 0 0 6 1 +trace on inside layer +T 57900 42800 9 10 1 0 180 0 1 +Annular Ring +T 61300 44200 9 10 1 0 180 0 1 +substrate +T 59700 42900 9 10 1 0 0 0 1 +copper plating on the hole +T 56300 48900 9 20 1 0 0 0 1 +Minimal Multilayer OpenEMS +T 61200 46400 9 10 1 0 180 0 1 +substrate +T 52200 46900 22 10 1 0 0 0 1 +Air +T 50100 47600 9 10 1 0 0 0 1 +trace on inside layer +T 49700 46900 9 10 1 0 0 0 1 +substrate +T 54100 46900 9 10 1 0 0 0 1 +substrate +T 54700 46100 9 10 1 0 0 6 1 +trace on inside layer +T 48400 48500 9 20 1 0 0 0 1 +What we need in OpenEMS for minimal 2 layer. +T 40500 45600 9 10 1 0 0 0 6 +In E&M solvers it is not uncommon to cheat a little and make the copper a 2D +mesh applied over the substrate to save processing time. The problem is that +openems does not currenly have any kind of 2D curved primitive. Emulating curves +with a high order polygons would be unpleasant. We should IMHO wait until +openems has 2D curve and arc primitives to invest time in acceleration using 2D +mesh. +L 46200 42600 45300 42000 3 0 0 0 -1 -1 +T 46200 43900 9 10 1 0 0 0 1 +trace on inside layer as 2D mesh +L 46200 43900 43700 43100 3 0 0 0 -1 -1 +T 49200 43800 9 10 1 0 0 0 1 +trace as 2D mesh +L 50600 43800 51100 43500 3 0 0 0 -1 -1 +T 53800 42000 9 10 1 0 0 0 1 +trace as 2D mesh +L 53800 42000 53400 42400 3 0 0 0 -1 -1 +T 58000 46200 9 10 1 0 0 6 1 +trace on inside layer +T 56600 48700 9 10 1 0 0 0 1 +This only works in with 3D representation of copper.