## 安装插件

1. 确保您的电脑已安装 Allegro，并有 `extracta` 组件（一般都有），低版本的Allegro不一定可以正常运行，请自行尝试。

2. 单击 `install-allegro-extension.bat` 右键通过管理员权限安装，即可自动安装插件.

    留意运行窗口, 如果有报错提示, 可以尝试手动安装(方法见后面的介绍).

3. 重启 Allegro 后，可看到菜单栏新增了 `Batch Conversion`, 否则说明安装失败.

### 手动安装插件的方法

如果自动安装失败, 可以尝试按以下方法手动安装:

1. 查看是否存在 `ALLEGRO_PCBENV` 环境变量

    可在windows命令提示符输入 `echo %ALLEGRO_PCBENV%` 快速查看环境变量值, 其值类似于 `C:\Users\YourName\pcbenv`

    一般安装Allegro之后就存在 `ALLEGRO_PCBENV` 环境变量，如果没有请手动添加。

    可在windows命令提示符输入 `setx ALLEGRO_PCBENV "%UserProfile%\pcbenv"` 设置该环境变量

2. 将以下4个文件复制到 `ALLEGRO_PCBENV` 环境变量所指目录下
    -  `convertPcbToAscii.ile`
    -  `convert.form`
    -  `convert_about.form`
    -  `brdCmdFile.txt`
    -  `draCmdFile.txt`

3. 查看该目录下是否已存在 `allegro.ilinit` 文件
    - 不存在, 则将 `allegro.ilinit` 文件复制进去
    - 已存在, 则在该文件中添加一行代码 `loadi("convertPcbToAscii.ile" "ascii")`

## 使用方式

1. 启动 Allegro
2. 点击菜单栏 `Batch Conversion`
3. 以转换 PCB 文件为例；点击子菜单项 `Convert PCB To ASCII...`，会打开一个弹窗

4. 在弹窗中填写 **Source Directory** 和 **Output Directory** 路径后，点击 `Translate`，开始转换

    **Source Directory**即 Allegro PCB 文件（*.brd）所在文件夹

5. 稍等片刻，会有一个弹窗提醒转换完成。在输出文件夹可以看到转换好的ASCII *.ebrd 文件

    脚本开始执行后，无法中断。如果转换文件较多，请耐心等待

## 存在的问题

此处所说旧版插件指`1.6.0`或更早版本.

1. 旧版插件的 `HOME` 环境变量问题

    旧版插件需要 `HOME` 环境变量, 新版已不需要. 现在可以删除该环境变量或恢复以前的值.

2. 旧版插件需要手动移除

    如果以前安装了该插件的旧版本(1.6.0或更早), 则需要手动移除, 按旧版的安装方法反向操作即可(删除复制进去的文件和代码). 新版的安装路径和旧版不同了.

## 常见问题

| 问题 | 详细问题 |可能原因|快速排查|
| --- | --- | --- | --- |
| 菜单不显示| `Batch Conversion` 菜单不显示| 环境变量不对导致脚本未加载 | skill 弹窗中输入 `getShellEnvVar("ALLEGRO_PCBENV")` 及 `getSkillPath()` 查看环境变量的值； 输入 `_openConvertDialog("PCB")` 依据报错提示确认脚本是否加载|
| 菜单不显示| `Batch Conversion` 菜单或子菜单不显示| 脚本冲突 |卸载掉其他脚本；输入 `_openConvertDialog("PCB")` 测试能否打开弹窗|
| 弹窗不显示 |点击子菜单后弹窗不显示|脚本执行报错|联系开发|
| 转换失败 |转换结束后，日志显示所有文件转换都失败|脚本问题|联系开发|



## 更新

### 20240625
1. 批量生成device文件

### 20240606
1. 修复库文件转换失败问题

### 20240520
1. 获取全局动态铺铜参数
2. 获取等长网络组

### 20240507
1. 提高调用 extracta 兼容性
2. 修复对 Allegro 文件后缀识别大小写敏感问题
3. 完善提取信息。分组、禁止区域属性、差分对、FORMAT 和 MECHANICAL 类型符号

### 20241127
1. 完善提取信息。新增元件属性相关信息提取：COMP_CLASS COMP_VALUE FUNC_DES FUNC_TYPE

### 20241211
1. 增加3合1转换菜单及功能
2. 不再需要 `HOME` 环境变量, 避免设置 `HOME` 环境变量的副作用

### 20241212
1. 完善自动安装脚本 bat 文件

### 20241216
1. 完善提取信息。新增网络属性相关信息提取：NETCLASS_GRP_NAME PHYSICAL_CONSTRAINT_SET SPACING_CONSTRAINT_SET
2. 获取网络类/等长网络组/差分对/网络类-网络类/电气属性（网络长度）规则

### 20241218
1. 修正3合1弹窗后其它单项也变成了3合1的问题

### 20250224
1. 完善提取信息。新增禁止区域禁止图元属性信息提取：SHAPES_ALLOWED
1. 完善提取信息。新增图元锁定属性信息提取：FIXED

### 20250303
1. 完善提取信息。新增COMPOSITE_PAD大类的pad数据，里面包括了一些没有实体焊盘但是存在钻孔的焊盘数据

### 20250306
1. 获取区域规则

### 202503020
1. 获取physical/Spacing的分层数据

### 20250327
1.取消配置文件brdCmdFile.txt中BOUNDARY（动态铺铜轮廓）数据的获取
2.从Allegro skill中获取BOUNDARY（动态铺铜轮廓）数据，包括priority、bBox

### 20250627
1.增加获取配置文件brdCmdFile.txt中BOUNDARY（动态铺铜轮廓）数据
2.从Allegro skill中增加BOUNDARY（动态铺铜轮廓）层数据，layer

### 20250725
1.增加获取配置文件brdCmdFile.txt中元件内图元的SYM_ROTATE数据

### 20250725
1.增加获取配置文件brdCmdFile.txt/draCmdFile.txt中DRILL_ARRAY_LOCATIONS钻孔位置数据
2.删除draCmdFile.txt中SYMBOL相关获取，因为封装文件中没有symbol，如果获取会造成转换过程中不断弹窗提示错误

### 20250811
1.增加获取配置文件brdCmdFile.txt/draCmdFile.txt中VIA_ROTATION过孔角度数据

### 20250911
1.批量新增device菜单新增器件名大于等于31位，则将PINORDER、PINSWAP、FUNCTION三行的器件名截取前30位逻辑
2.增加获取配置文件brdCmdFile.txt中元件内图元的SYM_MIRROR数据

### 20250918
1.增加获取配置文件brdCmdFile.txt/draCmdFile中关于3d模型的相关数据：SYM_PKGDEF_STEP_FILE、SYM_PKGDEF_STEP_TRANSFORMATION、SYM_PKGDEF_ALT_STEP_FILE、SYM_PKGDEF_ALT_STEP_TRANSFORMATION、STEP_MAPPING_UI_OPTIONS

### 20251009
1.批量新增device菜单器件名大于等于31位，则将PINORDER、PINSWAP、FUNCTION三行的器件名截取前30位逻辑的需求做逻辑上的修改，之前是生成device文件后再修改，会出现超出文字后调用axlCreateDeviceFileTemplate报错问题，现逻辑改为先修改名称等生成文件后再将不需要修改的地方还原

### 20251010
1.修复批量新增device菜单器件名大于等于31位截取名称后，文件名也被截取的问题

### 20260413
1.新增About菜单和对话框