When you steer toward Manufacturing->Drill Customization a
spreadsheet-looking form comes up, obviously built using the
Anyone know how to access this info directly thru SKILL? I
vaguely remember it had something to do with axlGetParam
but I might well be wrong.
local Cadence guru
Hi Chris,The table looks to be built directly from the drills used in your design.You could easily emulate this using the pin/via definition attributes.eg. pin ->definition ->drillCharCheers, Dave
Hey Dave,Ya I could cycle through every pin/via in the design and build up a table but I was hoping for a more elegant solution.fxf gave me a clue to do something very similar to this 3 companies and 6 years ago, I just don't recall. Argh.fxf you out there?Chris Walterslocal Cadence guru()
You could do it via the extracta. I have generated my own drill tables that way - it's much faster than going through each object dbid by dbid. I would be interested in Frank's answer.
This form builds its table by finding all pins and vias in the design. Remember to set the "invisible" option in the axlSetFindFilter. For performance reasons, it uses this list of pins/vias to build a hash (see Skill association tabke) tableof all padstacks used in the design.See example finding all dbids of a type @ /share/pcb/examples/skill/select/ashfindall.il
Thanks Dave, fxf for responding.I solved the problem by picking off the drillfigure name and character info while iterating over axlDBGetDesign()->padstacks . And boy was the client surprised when we found the list contained some entries not in the manaully-editied drill legend! Thx again,Chris Walterslocal Cadence guru()
You should note that padstacks may be in axlDBGetDesign()->padstacks that are not used by thedesign. You should always get the list of vias and pins and build the used padstack list from that.
Ah, like if someone placed something that used padstack Z, then later deleted the something but the padstack itself remains in the design file. Subtle.Thx for the tip!Chris Walterslocal Cadence guru()
I run axlPurgePadstacks before I attempt to do anything that looks at ALL the pad stacks.
axlPurgePadstacks('padstacks nil) can also be used before axlDBGetDesign()->padstacks so that this list justhas padstacks used in the database. You might want to do axlDBRefreshId(axlDBGetDesign()) after the purge call.