skill padstack学习笔记

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)
		)
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值