...for the people doing the proposal document. This could give missed good ideas or simply not-useful stuff or too esoteric one.
Got a demo from a (rich) colleague of mine using Allegro. He's rich but not too much, so it's some year behind... maintenance license is way to expensive, it seems. That thing is so big that the menubar itself needs 1280px :P also lots and lots of buttons. Opengl is supported but optional (since on some cards is glitchy i.e. eats tooltips), the only thing it does as a plus is alpha blending (but then is an old version) However, interesting things about how it handles layers. Allegro splits the issue in two areas, proper layers (stackup) and 'classes'. Classes are then subclassable by the user. Proper layers are in face subclasses; so are pcbnew layers and 'render items' (for example, they have a subclass for refdes and a subclass for value; we handle them as items). Copper layers are of class etch, that's easy (but pins are in another class, so they can have another color). There is the concept of 'plane' layer, while other stackup layers are dielectric (implicit in pcbnew), coatings and esoteric stuff like bond wires and whatever. The new gerbers talks about silver/gold/carbon platings layers and so on, I suppose these are handled as coatings. I don't know the exact technology behind them (except thick film deposition) but probably we can handle them with pads. Layers in stackup have a material too, since they do fancy controlled impedance routing/simulation. Maybe some simple attribute is enough? Stuff not in stackup is controlled by class only. From the help file it says that by default there are 110 subclasses (if you paid the full license of course:P) however many of them are duplicated or specific to manufacturing (for board houses). Obviously like in pcbnew some (sub)classes are 'magic' i.e. with specific behaviour. BTW (sub)class names are simple no-spaces strings (like ASSEMBLY_DETAIL); probably the same rules as DXF apply (no spaces, all uppercase, only ASCII). In the manual there is almost only a list for them, you are supposed to do (expensive) training for learning all. Subclassing is free-form in boards and libraries. I don't know what happens on mismatch (he never added a custom class), probably it merges? Layer pairing (i.e. top and bottom) is done by name. So if you have a SOMETHING_TOP it's paired with SOMETHING_BOTTOM. No flags, just a naming convention like ours. The thing with classes subclasses drives the display, too. The color dialog is *bigger* than Altium's one, really. I'm impressed :D As for the predefined stuff: - Copper layers have different subclasses for vias, tracks, pads and antipads (we do that with renderitems but don't handle 'internal pads' or antipads); Antipads are mostly for power planes and I could survive without having an option to set the via color for each different layer:P - Lots of 'drawing' layers: assembly notes/details, tooling, dimensioning, page border/title block/revision block have separate subclasses and so on; - The usual board stuff: outline, silkscreen, solder mask; since there are a lot of subclasses the final plot is done merging them: for example the silkscreen is done with the silkscreen proper, the refdes layer, another layer with generated silkscreen... the idea between layer groups, I think - Manufacturing oriented layers: plating equipment attachment bars, other tooling stuff, gerber film box, probing points (D356 stuff), drill map and so on - Miscellaneous CAD stuff: DRC markers, indicator, thingies (no idea of what many of these are for) - Components have refdef, value, device type, tolerances and user values (all of these available on silk, assembly and display only... here's how they did 110 subclasses for start... now thing about how many colors you can change in a component:D). Instead of the courtyard they handle the package (little more than a name change, it seems). And of course the center position (our anchor) - Areas: for each area you have only one 'keepin', defined at board level and one ore more keepout defined at board level or in a symbol (makes sense). Areas are simply polygons so you take the keepin (or the whole board) and subtract the keepouts one by one to have the resulting surface. They seem to have tought of *anything* so you have areas for: component placement (common), route placement (common), wire keepout (can contains vias but not routes, useful for plane bonding), vias keepout (routes but not vias:P) areas of different preferred routing orientation (i.e. horizontal where the rest of the layer is vertical), areas with different 'glossing' (route cleanup, seems the same as in Altium) and even areas where the grid is different (like a metric board with imperial I/O areas). Another cute thing I have seen: some rudimental 'styling' of text; you have 16 styles for text in a table where you specify the metrics. Then on the text you choose the style instead of having to type height/width/tickness every time if not the default. All in all, for the layers, nothing really particular popped up (routing is another thing, he had some serious amount of my drool on the desk at the end:P). The only thing I've never seen before is the grid-depending on the zone. Of course I'll live without it for a very looong time. Hope it has given some good ideas Keep on the good work, -- Lorenzo Marcantonio Logos Srl _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

