|
在给多排BGA做Fanout时,可以用第一个代码,设置坐标原点在某一个Pin上设置任一Pin的位置为坐标原点)
设置个点的大小,通常设置为BGA的Pitch的一半.
使用时在命令栏输入"g xx"
1,---------------------------------------------------
defun( set_origin ()
popup = axlUIPopupDefine(nil (list
(list "Done" `axlFinishEnterFun)
(list "Cancel" `axlcancelEnterFun)))
axlUIPopupSet(popup)
axlClearSelSet()
axlSetFindFilter( ?enabled list("noall" "INS") ?onButtons list("noall" "INS"))
while( (axlSelect)
all = axlGetSelSet()
foreach(pin_db all
axlDBChangeDesignOrigin(list(minus(xCoord(pin_db->xy)) minus(yCoord(pin_db->xy))))
println(sprintf(nil "Design Origin Move to %.2f:%.2f" xCoord(pin_db->xy) yCoord(pin_db->xy)))
)
)
)
axlCmdRegister("Origin2Pin" 'set_origin)
2,---------------------------------------------------
defun(UC_grids_script_create ( cur_grid )
ScriptFileName=axlTempFile()
Script_File=outfile(ScriptFileName "w")
fprintf(Script_File "scriptmode +i\n")
fprintf(Script_File "define grid \nsetwindow form.grid\n")
fprintf(Script_File "FORM grid non_etch non_etch_x_grids %s \n" cur_grid)
fprintf(Script_File "FORM grid non_etch non_etch_y_grids %s \n" cur_grid)
fprintf(Script_File "FORM grid all_etch all_etch_x_grids %s \n" cur_grid)
fprintf(Script_File "FORM grid all_etch all_etch_y_grids %s \n" cur_grid)
fprintf(Script_File "FORM grid done\n")
close(Script_File)
sprintf(runScript,"replay %s",ScriptFileName)
axlShell(runScript)
;axlUIWPrint(gridsform axlPPrint(units))
deleteFile(ScriptFileName)
); end UC_grids_script_create
axlCmdRegister("g" 'UC_grids_script_create) |
|