UNPKG

@typecad/typecad

Version:

🤖programmatically 💥create 🛰️hardware

105 lines (104 loc) 2.06 kB
import { Schematic } from "./schematic"; export interface IPcbOptions { Schematic?: Schematic; safe_write?: boolean; remove_orphans?: boolean; thickness?: number; copper_thickness?: number; } export interface INetResolution { found: boolean; netCode: number; netName: string; schematicNetCode?: number; 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; }