UNPKG

@typecad/typecad

Version:

🤖programmatically 💥create 🛰️hardware

110 lines (109 loc) 2.31 kB
import { Schematic } from "./schematic"; export interface IPcbOptions { Schematic?: Schematic; safe_write?: boolean; remove_orphans?: boolean; thickness?: number; copper_thickness?: number; } export interface INetResolution { /** Whether the net was found in the schematic */ found: boolean; /** The net code to use in the PCB */ netCode: number; /** The net name to use in the PCB */ netName: string; /** The original schematic net code (if found) */ schematicNetCode?: number; /** The original schematic net name (if found) */ schematicNetName?: string; } export interface IVia { uuid?: string; netCode?: number; net?: string; layers?: string[]; at?: { x: number; y: number; }; size?: number; drill?: number; powerInfo?: IViaPowerInfo; } export interface IGraphicPrimitive { uuid: string; layer: string; strokeWidth: number; } export interface IGrLine extends IGraphicPrimitive { type: 'line'; start: { x: number; y: number; }; end: { x: number; y: number; }; locked?: boolean; } export interface IGrArc extends IGraphicPrimitive { type: 'arc'; start: { x: number; y: number; }; mid: { x: number; y: number; }; end: { x: number; y: number; }; } export type OutlineElement = IGrLine | IGrArc; export interface IOutline { uuid: string; x: number; y: number; width: number; height: number; filletRadius: number; elements: OutlineElement[]; } export interface IPowerInfo { current: number; maxTempRise?: number; thickness?: number; } export interface IViaPowerInfo { current: number; maxTempRise?: number; thickness?: number; } export interface IPinPowerInfo { minimum_voltage?: number; maximum_voltage?: number; current?: number; } export interface ITrackDetails { start: { x: number; y: number; }; end: { x: number; y: number; }; width: number; layer: string; locked: boolean; powerInfo?: IPowerInfo; } export interface IGeneratedElement { type: 'track' | 'via'; uuid: string; details: ITrackDetails | IVia; }