I ventured in creating a TPS60120 that has a powerPad and vias (I don't care for the ST part, really) and can comment on a few details about footprint creation, as well as free_electron's takes on it.
Problem: DEX only has 1 grid dimension , and can only accept numerical entry in 1 unit type at a time.
I have never used mixed units, especially when trying to reproduce a part from the datasheet. Although it wouldn't hurt to allow this for the folks that want/like it.
The problem is that often you have no choice. You will send out the board and manufacturing will come back : we need pads which are 0.6mm wide to improve solderability... Damn this is a part that was completely made from imperial units ... The datasheet has the pads as 24 mils. Manufacturing wants to bump them to 0.6mm ... See the problem ? Being able to enter the unit suffix solves that problem immediately. Select the pad , type 0.6mm <enter> and done. The cad software recalculates for me.
We have a historical imperial/metric duality in the PCB world. There is nothing that can change that, except if we abolished all imperial system based parts, but that is not going to happen in the foreseeable future. The same problem exists in the printing world. Pica's, millimeter, mils, DPI, and other 'odd' units. The software in that world solves the problem the same way : let the user enter the suffix and we recalculate it to the scaling system we are in. For example in mechanical CAD programs i can type a thing like 1'2''7/64 : 1 foot 2 inches and 7/64 of an inch. Do i know what that is in millimeters? No ? Do i need to? No ? Should i have to attempt converting it myself using a pocket calculator ? No: We have computers and CAD software. It is expected that they do this.
Having the CAD program do the calculation removes the unit problem. The speed of working goes up and the number of errors goes down. Who was it again that f-ed up in one of the mars landers? That thing shot itself into the ground as opposed to landing... The British (who made the propulsion system)went: well, we thought , you guys being american , you had specified it in miles per second. NASA answered: we are a government institute and fully metric. So, speed was kilometers per second. Oops. 2 billion dollars of scrap metal now pollute a crater on mars...
So now it is mandated on every document that the units are explicitly mentioned. And now the CAD guys are growling cause they have to enter the damn thing every time : more work.
It woulds be like working in an environment where both Ohms and Siemens are commonly used. You very quickly would wish you could enter that suffix and let the computer deal with it. I need a 5000 Siemens current sensing resistor here.. shit, i put in 5 Kilo-ohm ...
You can only grab a selection by grabbing an edge. Be careful not to grab a corner because then DEX will scale it !
I personally don't see this as a big problem.
I do see it as a huge problem, and for this reason : PCB structures is all about dimensions. Dimensions given in numbers. Dimensions that need to be accurate.
Simply selecting a group of carefully placed elements, then taking the corner of the selection and, intentionally or unintentionally, shifting that corner 2 mm to the left and 0.5 millimeter down gives you what ? Something where nobody knows what the impact was on all the elements in the group, apart from being completely wrong now.
Scaling operations should be a deliberate action. If you need scaling that should be hidden under a menu and you deliberately need to invoke that.
The same goes for 'accidentally' moving the origin. I Had carefully set the 'origin point' at a certain stage and am working of this origin point. I Made a selection of a group of elements move them and the origin shifted because the CAD program treats it as a general object.
Origins , pick points should be immutable, unless a specific command is issued to move them. Here is the problem : Datasheets often have missing information in them. They are drafted by mechanical engineers and they will specify, for example the length of the pad, and the toe to toe dimensions of the columns. As PCB designers we really need center to center as that is how PCB programs work. Workaround : set the origin to the toe of one pad , pick the other column up at its toe and move it over by the given distance. Done. No calculations required. I Specified the origin from which i want to work , i gave the cad program the pickup point and the drop off point. CAD program does the rest.
Other things you will run into: sometimes specifying dimensions from one coordinate clutters up a mechanical drawing. So mechanical engineers tend to give dimensions from several 'home' points. in the same drawing you may find a bunch of numbers based on a hole , some other numbers given from one corner and yet another cluster of dimensions given from soe other point in the assembly. LCD displays are a prime example of that. You always have to spend 15 minutes figuring out how the hell you will get the location of that one point you really need ( like the distance between pin 1 and the top left corner of the actual glass so you can indicate where the display window will be).
Being able to set the working origin, and trusting it will stay in place and not move 'by accident', is the key solution here. So the re-positioning of an origin needs to be a deliberate action. Meaning : go to some menu or type some command to 'unlock' it. Once placed it is automatically re-locked.
Shortcomings of DEX in dealing with the above mentioned problems :
- too easy to move the origin , especially by mistake
- moving operations have no explicit 'pick up' and 'drop-off' points
- no snap to object edges, object corners, object edge centers, object centers , no concept of electric grid (This may require additional explanation. I will come back in a moment on this.)
We live in a world where mechanics meshes with electronics, where we have to deal with imperial and metric as well as have to deal with incomplete documentation. Having a flexible and rich tool set in the CAD program solves such problems.
Electrical grid : we have a part that is imperial based, let's say a pad pitch of 25 mils. We are currently working on a metric grid. Right now, if you draw a trace towards that pad the trace does not land in the center. It only snaps to the metric grid.So you end up with a stub of copper that connects off-center. In the PCB world that is a no-no. Manufacturing rules say that a trace shall enter only on a corner , or on the center of a side, except, when the aspect ratio between the trace width and the width of the pad edge is larger than <some number> I can't remember off the top of my head. Since I can't remember, I make it a general rule not to do it, just to simplify my life.
The underpinning reason is the following : a small trace connecting to a large pad becomes a mechanical stress point. Flex the board and that is where it will crack first. Connecting on a corner solves the stress point as , from the traces perspective, the trace gradually widens as opposed to a hard stop. Connecting it in the center of the pad allows for a teardrop structure to be created that adds such a stress relief. Not all boards are 1.62 mm thick. There are even flex boards. So we have to deal with these things. The CAD program has no idea what kind of board we are making. It does not know if this will be a flex board or a thin board or a thick board. It would be cumbersome to have to write design rules for this each and every time. So the solution is: the CAD program needs to have a concept of 'electrical grid'. The electrical grid is a grid that emanates from the center point , or end point of any electrical object in a very localized area. No further than half the objects' size. So when you approach, on your design grid (doesn't matter if imperial or metric), with a trace, and come within this 'local field' the CAD tool leaves the board grid and starts working of the objects grid. Since the objects grid emanates from the center coordinate of the object, or the end coordinate in case of a trace, you automatically terminate correctly.
The above is another example that differentiates a general purpose CAD tool from a PCB cad tool. The PCB cad tool understands these concepts.
The comments I make are based on the rules that drive the design of a PCB. PCB layout software differentiates itself from other CAD software, and its own competition, by the tool set it gives the user. The richer and more flexible the tool set the more enjoyable the program is. That is what killed OrCad. OrCad was great in its time but it started lacking in functionality. The competition added tools and capabilities and OrCad did not follow. Then they were absorbed by Cadence, mainly to get their hands on the Masstek router, they didn't care about the rest, they had a program and wanted to integrate it. At one point Cadence sent a 'Dear John' letter to its users saying that OrCad PCB was now on life support and that soon they would pull the plug. You should have heard the massive groan at that time.
Talk to users of certain layout tools from Mentor... that all call it 'Tormentor'. it has some really convoluted ways of doing things. Sometimes CAD companies just look at the current tool and go: there just is no fixing this thing as the base platform just is too convoluted... Let's build a new thing, completely from scratch using a different object model. We can't retrofit this in our existing code base as there is no telling what will be broken and how many patches will be undone...
Some of that is companies like Mentor and Cadence actually have several, completely different, tools. One tool is more designed to do this kind of work, another that kind of work.
I Still believe DEX could be a great PCB design tool. The base is there. But, in my opinion, as it is now; it has a sub-par toolset (compared with other CAD programs, not just PCB programs) and is more of a vector drawing program. It has some cool idea's, and even idea's that other PCB packages don't have.
It tries to simplify certain processes like automatically creating a schematic symbol when you work on the footprint, but at the same time sacrifices flexibility. This automatic symbol creation may be great for some, but for others that want the flexibility to create their own shape it is a hindrance. Touch the footprint and the symbol is destroyed.
You can have both. All that is required is an option setting somewhere that says : do not rearrange symbol pins, only add. Or even a per pin flag that says : the user has moved this one by hand, the automatic routine should not touch it anymore.
These are relatively simple things to add, I think, I don't know i am not a real programmer. My skills in programming are mediocre.
Anyway. I Am glad to see it is growing.
In this footprint experiment : the goal is not to make this footprint. The goal is to discover the manipulation toolset DEX has, to do such a thing in an easy way.
So i won't bitch if you get the number of via's wrong or some dimension wrong. That is not the purpose.
The intent is to find out : how can I align these two things ? How can I drop this, here ? How do I work with metric/imperial. What are the commands and where are they ?
That is why I said at the end of the L6203 footprint creation: do NOT use the wizard as base point. The wizard is great and in real life I use those all the time.
But the goal is to discover the base tool set. Using the wizard masks the discovery. The wizard finishes with the 0:0 set to center. I Want to know how I can set it to center when I need to. I May want to tweak the footprint and afterwards reset the origin to center. By having the wizard do that for me I have not discovered where that function is, or even if it exists.
Verbal explanation of CAD steps is hard to follow. I will record a short video showing how i go about designing this thing , making use of as much as the tools in the toolset i have access to.
I do understand that other programs have may have a different toolset. But at the same time I don't think that the tools I use are that 'special', or unique to 1 program, as I find these same base operations in many other programs, even non PCB programs (like Paintshop, Photoshop , Illustrator, Solidworks, Rhino) and even free programs like Paint.net, The Gimp, Inkscape and many more.
And yes I don't sugarcoat problems and can be blunt. So I'm sorry if i step on toes (probably much more than only toe's. I suspect at least up to the knees.)
The program looks great and you get a feeling of 'wow', this thing is killer.
When I run into problem after problem this initial 'elation' very quickly turns sour... and then i get very cranky.
I've said this many times before : i still think DEX has the potential, but it need spit and polish.
Many people have suggested 'why don't you review this or that'. Because those tools don't come anywhere close to what DEX already has on board. KiCad, up till a few months ago, still required you to assign footprints by hand prior to going to PCB. Such things are unforgivable in 2015. Nobody works like that anymore. So that makes such programs an immediate write-off.
Modern software is all about integrating various kinds of data and collaboration between fields. DEX already has that capability (3d model, datasheet links, the whole shebang) so it is worth looking at, picking and poking at and find out where it needs tweaking. It has some inconsistencies and some 'issues' that are annoying for people, like me, who are trying to do a bit more than your average PCB layouter that never deals with manufacturing, DFM or DFT and never builds a footprint tuned for production.