padstack
创建padstack
axlDBCreatePadStack(
t_name
r_drill
l_pad
[g_nocheck]
)
make_axlPadStackDrill
pad_list = cons(
make_axlPadStackPad(
?layer "TOP",
?type 'REGULAR,
?figure 'RECTANGLE,
?figureSize 25:60
)
nil
)
ps_id = axlDBCreatePadStack("smt_pad", nil, pad_list t)
drill_data = make_axlPadStackDrill(
?drillDiameter 42
?figure 'SQUARE,
?figureSize 60:60,
?plating 'PLATED
)
pad_list = cons(
make_axlPadStackPad(
?layer "TOP",
?type 'REGULAR,
?figure 'CIRCLE,
?figureSize 80:80
)
pad_list
)
pad_list = cons(
make_axlPadStackPad(
?layer "DEFAULT INTERNAL",
?type 'REGULAR,
?figure 'CIRCLE,
?figureSize 75:75
)
pad_list
)
pad_list = cons(
make_axlPadStackPad(
?layer "BOTTOM",
?type 'REGULAR,
?figure 'SQUARE,
?figureSize 80:80
)
pad_list
)
ps_id = axlDBCreatePadStack("thru_pad", drill_data, pad_list t)
加载padstack
axlLoadPadstack (
t_padname
)
pad = axlLoadPadstack (VIA)
替换padstack
axlReplacePadstack (
o_dbid/lo_dbid
o_padstackdbid/t_padname
)
清除无用padstack
axlPurgePadstack (
S_mode
t/nil
)
axlPurgePadstacks('padstacks nil)
axlPurgePadstacks('via t)
拷贝padstack
axlDBCopyPadstack(
rd_dbid
l_startEnd
[g_dontTrim]
)
1) To derive an exact copy:
newPadId = axlDBCopyPadstack(padId, '("ETCH/TOP" "ETCH/BOTTOM"))
2) To derive and trim to only connect from top layer to 2
newPadId = axlDBCopyPadstack(padId, '("ETCH/TOP" "ETCH/2") t)
保存padstack
axlPadStackToDisk(
[t_padName]
[t_outPadName]
)
Example 1
axlPadstackToDisk()
Dumps all the padstacks in the layout.
Example 2
axlPadstackToDisk("pad60cir36d")
Dumps padstack "pad60cir36d" from the layout as "pad60cir36d.pad".
Example 3
axlPadstackToDisk("pad60cir36d" "mypadstack")
Dumps padstack "pad60cir36d" from the layout as "mypadstack.pad"
创建PIN
axlDBCreatePin(
t_padstack
l_anchorPoint
r_pinText
[f_rotation]
)
mytext1 = make_axlTextOrientation(
?textBlock "6",
?rotation 60.,
?mirrored nil,
?justify "center"
)
mypin1 = make_axlPinText(
?number "1",
?offset 0:75,
?text mytext1
)
axlDBCreatePin( "pad1", 0:0, mypin1, 45.)
mytext2 = make_axlTextOrientation(
?textBlock "6",
?justify "left"
)
mypin2 = make_axlPinText(
?number "2",
?offset -125:0,
?text mytext2
)
axlDBCreatePin( "pad0", -100:-100, mypin2)
mytext3 = make_axlTextOrientation(
?textBlock "6",
?rotation -45.,
?mirrored t,
?justify "right"
)
mypin3 = make_axlPinText(
?number "3",
?offset 50:0,
?text mytext3
)
axlDBCreatePin( "pad0", 100:-100, mypin3)
创建Symbol轮廓
axlDBCreateSymbolSkeleton(
t_refdes
l_anchorPoint
g_mirror
f_rotation
l_pinData
)
or
axlDBCreateSymbolSkeleton(
l_symbolData
l_anchorPoint
g_mirror
f_rotation
l_pinData
)
mypins = list(
make_axlPinData(
?number "2",
?padstack "pad1",
?origin -100:-100
?rotation 45
)
make_axlPinData(
?number "4",
?padstack "pad1",
?origin -100:-300
?rotation 45
)
make_axlPinData(
?number "6",
?padstack "pad1",
?origin -100:-500
?rotation 45
)
make_axlPinData(
?number "9",
?padstack "pad1",
?origin 200:-500
?rotation 45
)
make_axlPinData(
?number "11",
?padstack "pad1",
?origin 200:-300
?rotation 45
)
make_axlPinData(
?number "13",
?padstack "pad1",
?origin 200:-100
?rotation 45
)
)
axlDBCreateSymbolSkeleton( list("dip14"), 5600:4600, nil, 0, mypins)
创建VIA
axlDBCreateVia(
t_padstack
l_anchorPoint
[t_netName]
[g_mirror]
[f_rotation]
[o_parent]
)
myvia = axlDBCreateVia( "pad1", 5600:4200, "sclkl", t, 45., nil)
获取钻孔电镀类型
axlDBGetDrillPlating
t_padstackname
)
添加过孔约束
axlCnsAddVia(
t_csetName
t_padstackName
)
删除过孔约束
axlCnsDeleteVia(
t_csetName
t_padstackName
)
获取指定约束的过孔列表
axlCnsGetViaList()
t_csetName
)
获取所有过孔列表
axlGetAllViaList (
[g_attrVias]
)
获取PAD
axlDBGetPad(
o_dbid
t_layer
t_type
)
(defun showPad ()
mypopup = axlUIPopupDefine(
nil
(list (list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter(
?enabled list("noall")
?onButtons "noall"
)
axlSetFindFilter(
?enabled list("pins" "vias")
?onButtons list("pins" "vias")
)
(while axlSelect()
progn(
mypad = axlDBGetPad(car(axlGetSelSet()) "etch/top" "regular")
printf( "Pad figure type : %s\n", mypad->figureName)
)
)