用途:为嘉立创EDA Pro生成原理图、PCB、符号、封装等格式数据。流程为查询资料、检查关联图元、生成格式、验证格式、存档,验证失败需修复并重试,最多3次。
主要能力:按types-index.md查找类型名,逐层读取文档层、图元层、示例层与JSON Schema;生成DOCHEAD、CANVAS及其他图元;自动推断关联图元坐标与参数,不询问用户。
数据格式:每行由外层与内层组成,形如{type,id,ticket}||{实际数据},行尾以|加换行结束,最后一行不加。DOCHEAD无id,ticket由写入方决定。删除原子数据时内层置空串;删除文档用DELETE_DOC并给{"isDelete":true};META不可发空串。
校验:同名图元在不同文档类型下schema不同,推荐用文档类型前缀名,如node validate.js PCB_LINE '{"netName":"+5V",...}',或用--doc指定,如node validate.js LINE '{...}' --doc PCB。裸名按SCH_PAGE > SCH > SYMBOL > PCB > 其他优先级解析。
顺序与限制:DOCHEAD第一行,CANVAS第二行(仅SCH_PAGE、SYMBOL、SIMULATION、PCB、FOOTPRINT、PANEL、PANEL_LIB等有画布),其他图元ticket从2递增。FONT、BLOB、CONFIG、BOARD、DEVICE、SCH、SIMULATION_SCH无CANVAS。验证通过后保存到./format,文件名{type}_{timestamp}.txt。
最终一致性:判优键为文档加归一化id,type不参与;ticket大者胜,ticket相同则client字典序大者胜。pend/revoke为协同编辑内部状态,生成静态数据时用不到。