配置文件
✈️env
一般我们只改`$home$/pcbenv`路径下的 env 文件1 设置快捷键
bash
# alias:需按回车键触发
alias ~D delete # Ctrl+D删除
# funckey:即时触发
funckey w add connect
# 通过replay命令调用脚本
funckey ept replay $HOME/pcbenv/scr/export_dxf.scr
2 设置变量
TIP
变量来自菜单 Setup+User Preference
bash
set autosave
set autosave_time = 10
set pcb_cursor = cross ;infinite
set no_dragpopup
set slide_arcs
set Display_nohilitefont
set Display_nocolor_dynamics
set Display_drcfill
set display_nohilitefont
set static_shapes_fill_solid
set Av_endcapstyle=round
set shape_add_filltype = static
set showmeasure_altunits = millimeters
# unset display_raster_ops
# unset display_noskeletal_draw
# unset bug_solaris_hlt_lines
# unset no_dynamic_zoom
# unset undo_depth
# unset color_dlg_auto_apply
# unset hidecolorpalette
# unset title_allegro
# unset fontface
# unset wheel_zoom_center
# unset draw_etch_outline
# unset disable_opengl_cache
# unset disable_opengl
# unset viewer_useoglgraphics
# unset display_nocolor_dynamics
# unset display_shapefill
# unset old_shape_fill_style
# unset no_shape_fill_dyn_ood
# unset display_norefdes
# unset display_refdes_rats
# unset display_nohilitefont
# set display_nodynamicarcwidth
# set display_nosaved_geometry = size
# set display_manual_colorpriority
# set gloss_pad_shape
# set no_zoom_to_object
# set noswapripup
# set new_shape_fill_nt
# set slide_arcs
# set display_backingstore on
# set display_backingstore = on
# set display_shapefill_analysis 1
# set disable_html_datatip_style
# set allegro_html
# set acon_disable_nullnet_route
# set allegro_long_name_size = 255
# set shape_merge_props
# set ext_artwork = art
# set fontsize = 15
# set fontfixedface =
# set infinite_cursor_bug_nt
# set pcb_cursor = infinite
# set display_refdes_subclass =
# set wv_voltage_nets
# set place_text_filename =
# set logic_edit_enabled
# set schematic_editor =
# set appmode = placementedit
# set allegro_new_accuracy = 2
3 指定资源路径
TIP
多个值之间用空格间隔 menu/form 等菜单新增后,需带上系统自带的路径,不然会打不开
bash
set menupath = . $ALLEGRO_SITE/menus $GLOBAL/cuimenus
set VIEWPATH = . $ALLEGRO_SITE/views ~/pcbenv/views
set scriptpath = $scriptpath ~/pcbenv/scripts $HOME/pcbenv/skill/
# set PADPATH = . symbols .. ../symbols $ALLEGRO_SITE/padstacks $compalib
# set PSMPATH = . symbols .. ../symbols $ALLEGRO_SITE/symbols $compalib
# set VIEWPATH = . $ALLEGRO_SITE/views
# set scriptpath = $scriptpath D:/Cadence/SPB_Data/pcbenv/pcbenv_Config/scripts/scripts/
# set modulepath = . F:/Cadence/SPB_16.6/share/local/pcb/modules Z:/MODULE/
# set MODULEPATH = . $ALLEGRO_SITE/modules
# set steppath = "Z:/STEP MOUDLE/"
# set BMPPATH = . $ALLEGRO_SITE/icons $GLOBAL/icons $ALLEGRO_INSTALL_ROOT/share/fsp/legends $ALLEGRO_INSTALL_ROOT/tools/fsp/legends
# set FORMPATH = . $ALLEGRO_SITE/forms $GLOBAL/forms
# set MENUPATH = . $ALLEGRO_SITE/menus $GLOBAL/cuimenus
# set MATERIALPATH = . $LOCALENV $ALLEGRO_SITE $GLOBAL $GLOBAL/materials
# set CAPATH = . $LOCALENV $ALLEGRO_SITE $ALLEGRO_INSTALL_DIR/channelanalysis
# set AMIMODELPATH = . $LOCALENV $ALLEGRO_SITE/ami/$CDSPLAT $ALLEGRO_INSTALL_DIR/channelanalysis/ami/toolkit/dll/$CDSPLAT
# set PRFEDITPATH = . $LOCALENV/configure/prfedit $ALLEGRO_SITE/configure/prfedit $ALLEGRO_INSTALL_DIR/configure/prfedit
# set BATCHHELPPATH = . $ALLEGRO_INSTALL_DIR/batchhelp
# set SPROUTEPATH = $ALLEGRO_INSTALL_DIR/configure/sproute
# set HELPPATH = . $ALLEGRO_INSTALL_DIR/help $GLOBAL/help
# set PDFPATH = . $ALLEGRO_INSTALL_DIR/help/pdf
# set IMAGEPATH = . $ALLEGRO_INSTALL_DIR/examples/image
# set AXLPLUGINPATH = . $LOCALENV/$CDSPLAT $ALLEGRO_SITE/$CDSPLAT $ALLEGRO_INSTALL_DLL
# set INTERFACEPATH = $ALLEGRO_INSTALL_ROOT/share/library/interface
# set VECTORFONTPATH = . $GLOBAL
# set ANSIFONT = ansifont
# set KANJIFONTPATH = . $GLOBAL/fonts/kanji
# set KANJIFONT1 = kanjifont1
# set KANJIFONT2 = kanjifont2
# set compalib = $ALIBPATH/symbols $COMPLIBPATH/symbols
# set topfilelib = $ALIBPATH/templates $COMPLIBPATH/templates
# set signal_install_dir = $ALLEGRO_INSTALL_DIR/signal
# set signal_optlib_dir = $signal_install_dir/optlib
# set TILEPATH = . $ALLEGRO_SITE/modules
# set WBPATH = . $ALLEGRO_SITE/wbtiers
# set pcell_lib_path = $ALLEGRO_SITE/../../rfsip/sip_pcells . sip_pcells .. ../sip_pcells $ALLEGRO_INSTALL_DIR/../rfsip/sip_pcells
# set TECHPATH = . $ALLEGRO_SITE/tech $GLOBAL/tech
# set PARAMPATH = . $ALLEGRO_SITE/parameter
# set TOPOLOGY_TEMPLATE_PATH = . templates .. ../templates $ALLEGRO_SITE/topology $topfilelib
# set MISCPATH = . $ALLEGRO_SITE/misc $GLOBAL
# set ARTPATH = . .. $ALLEGRO_SITE
# set APTPATH = . .. $ALLEGRO_SITE
# set CLIPPATH = .
# set DCLPATH = . .. $ALIBPATH $COMPLIBPATH
# set DEVPATH = . devices .. ../devices $ALLEGRO_SITE/devices $ALIBPATH/devices $COMPLIBPATH/devices
# set DFAAUDITPATH = . $ALLEGRO_SITE/assembly $ALLEGRO_INSTALL_DIR/assembly
# set DFACNSPATH = . dfa .. ../dfa $ALLEGRO_SITE/dfa
# set NCDPATH = . .. $ALLEGRO_SITE/nclegend $GLOBAL/nclegend
# set TEXTPATH = . $ALLEGRO_SITE/extracta $GLOBAL/views
# set XTALK_TABLE_PATH = . xtalk_tables .. ../xtalk_tables $ALLEGRO_SITE/xtalk $ALIBPATH/xtalk_tables
# set WIZARD_TEMPLATE_PATH = $ALLEGRO_SITE/new_templates $ALLEGRO_INSTALL_DIR/pcb_lib/symbols/template
# set LDFPATH = .
# set SCFPATH = . scfs .. ../scfs
✈️allegro.ilinit
用于在软件启动时自动加载 SKILL 脚本、定义快捷键及配置环境路径
文件默认路径 %HOME%/pcbenv/allegro.ilinit
lisp
; <cdsroot>/share/pcb/examples/skill/example.ilinit
; This example file shows how to load Skill files (those with the
; extension ".il" in the current directory.
; To use copy to allegro.ilinit if to be used by all Allegro based programs
; or <programName>.ilinit if intended for only one program
;
; Setting Allegro environment variable, LoadSkillFilesDebug will turn
; on printing the name of each file as it is loaded.
unless(boundp('LoadSkillFilesDebug)
LoadSkillFilesDebug = axlGetVariable("LoadSkillFilesDebug"))
when(LoadSkillFilesDebug printf("\n"))
(foreach file (rexMatchList "\\.il$" (getDirFiles "."))
when(LoadSkillFilesDebug printf("Loading Skill file: %s\n" file))
(load strcat("./" file))
)
; Load any ini files (containing axlCmdRegister)
(foreach file (rexMatchList "\\.ini$" (getDirFiles "."))
when(LoadSkillFilesDebug printf("Loading Skill file: %s\n" file))
(load strcat("./" file))
)
when(LoadSkillFilesDebug printf("\n"))
1 扩展路径
lisp
;使用 setSkillPath() 扩展SKILL搜索路径
;此命令将 D:/skill 添加到默认路径,该目录下的SKILL文件可直接通过文件名调用
setSkillPath(buildString(append1(getSkillPath() "D:/skill")))
2 加载脚本
lisp
;加载非加密skill文件
load("xxx.il")
;加载加密SKILL文件
load("xxx.il" "password")
3 设置快捷键
lisp
;axlSetFunckey 定义即时触发键
axlSetFunckey("g" "zoom in")
;axlSetAlias 定义需回车执行的命令别名
axlSetAlias("F2" "oops")
✈️allegro.men
TIP
修改菜单有两种方式,其一是直接编辑系统路径下的allegro.men文件(参考路径C:\Cadence\Cadence\SPB_17.4\share\pcb\text\cuimenus\allegro.men
),其二是通过加载 skill 文件动态修改(我们更推荐此方式)
1 直接修改 men 文件
bash
# 在allegro.men中HELP菜单后追加:
POPUP "&MyTools"
BEGIN
MENUITEM "布线优化", "route_optimize" # 调用SKILL优化命令
MENUITEM "导出Gerber", "my_export_gerber"
MENUITEM SEPARATOR
MENUITEM "&3D预览", "view_3d_model"
END
如下图所示
重启 PCB 后可见菜单如下所示
2 创建 skill 文件进行加载
参考以下模版创建 skill 脚本,然后在 allegro.ilinit 文件中加载即可
lisp
defun(toolmenucreat (arg)
judge = axlGetVariable("autosave_dbcheck")
case(judge
(nil
SKILLToolsMenu = '(
(popup "MyTools")
;-----------------------
; 常用功能
;-----------------------
("[Skill Window-for debug]","set telskill")
("[Workdir]" "filemgr")
(separator)
;-----------------------
; 自定义功能区
;-----------------------
(popup "miniTools")
("mm2mil","mm2mil")
("loadColorpattern","load_colorpattern demo")
(end)
)
)
)
let( (q)
q = axlUIMenuFind(nil -1) /*定位菜单位置于主菜单尾部*/
res = axlUIMenuInsert(q SKILLToolsMenu)
)
)
axlTriggerSet('menu 'toolmenucreat)