Skip to content

配置文件

✈️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 文件动态修改(我们更推荐此方式)

allegro17.4 自定义菜单栏

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

如下图所示 picture 0
重启 PCB 后可见菜单如下所示 picture 1

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)