UNPKG

@ry-krystal/kicad-converter

Version:

专业的KiCad符号文件与JSON互转工具

89 lines (88 loc) 2.02 kB
/** * KiCad文件生成器 - 核心版本 * 负责将JSON数据结构转换回KiCad S表达式格式 */ import { KiCadSymbolLib, ConversionResult, ConversionOptions } from './types.js'; /** * KiCad文件生成器选项 */ export interface GeneratorOptions extends ConversionOptions { /** 缩进字符数 */ indentSize?: number; /** 使用空格而非制表符 */ useSpaces?: boolean; /** 最大行长度 */ maxLineLength?: number; /** 包含格式化注释 */ includeComments?: boolean; /** 紧凑模式 */ compactMode?: boolean; } /** * KiCad生成器类 */ export declare class KiCadGenerator { private indentSize; private indentChar; private currentIndent; constructor(options?: GeneratorOptions); /** * 将符号库数据生成为KiCad格式字符串 * @param symbolLib 符号库数据 * @param options 生成选项 * @returns 生成结果 */ generate(symbolLib: KiCadSymbolLib, options?: GeneratorOptions): ConversionResult<string>; /** * 生成符号 */ private generateSymbol; /** * 生成属性 */ private generateProperty; /** * 生成引脚 */ private generatePin; /** * 生成图形元素 */ private generateGraphic; /** * 生成文本效果(单行版本) */ private generateEffects; /** * 生成文本效果(多行版本,按照原始 KiCad 格式) */ private generateEffectsMultiline; /** * 格式化位置信息 */ private formatPosition; /** * 格式化行输出 */ private formatLine; /** * 获取当前缩进字符串 */ private getCurrentIndent; /** * 增加缩进层级 */ private increaseIndent; /** * 减少缩进层级 */ private decreaseIndent; /** * 验证输入数据 */ private validateInput; /** * 计算数据大小 */ private calculateDataSize; }