3个不稳定版本

0.2.1 2023年10月23日
0.2.0 2023年10月23日
0.1.0 2023年7月25日

#1488解析器实现

Apache-2.0

2MB
3.5K SLoC

包含(Cab文件,260KB)tests/samples/pcblib/Simple.PcbLib,(Cab文件,205KB)tests/samples/pcbdoc/simple.PcbDoc,(Cab文件,135KB)tests/samples/schdoc/simple.SchDoc,(Cab文件,160KB)graphic-mixed.SchLib,(Cab文件,140KB)long-partnames.SchLib,(Cab文件,180KB)tests/samples/schlib/simple.SchLib 等4个文件。

用于Rust的Altium文件格式库

处理Altium文件类型的工具。目前此工具处于alpha版本,并且只有一些基本组件完全功能(因此请预期会有重大更改!)

此工具旨在替代我的原始工具 PyAltium

项目进度

此项目的目标是支持Altium使用的绝大多数文件类型。读取是优先级,某些类型将实现写入。以下列出各种文件类型的状况

扩展名 列表项 显示 写入 文档
二进制原理图库 .SchLib 较差 良好
二进制PCB库 .PcbLib
二进制原理图文档 .SchDoc
二进制PCB文档 .PcbDoc
绘图师文档 .PcbDwf
PCB项目 .PrjPcb
材料库 .xml 不适用
任何模板 未计划

示例

请参阅 altium/examples 以获取一些示例用法。示例:读取原理图库中的组件

use altium::SchLib;

fn main() {
    let lib = SchLib::open("tests/samples/schlib/simple.SchLib").unwrap();

    // List all librefs stored in this schematic library
    for meta in lib.component_meta() {
        println!(
            "libref: {}, description: {}",
            meta.libref(),
            meta.description()
        );
    }

    // Get a single component by libref
    let mycomp = lib.get_component("Resistor - Standard").unwrap();

    // Write that image to a SVG file. Note that output is pretty buggy still.
    mycomp.save_svg("resistor.svg").unwrap();
}

许可

目前,此软件根据Apache 2.0许可。

依赖

~20MB
~209K SLoC