circuit-json-to-pnp-csv
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

circuit-json-to-pnp-csv

Convert Circuit JSON into a Pick'n'Place CSV

Installation

npm install circuit-json-to-pnp-csv

or

bun add circuit-json-to-pnp-csv

Usage

This library provides two main functions:

  1. convertCircuitJsonToPickAndPlaceRows: Converts Circuit JSON elements to an array of Pick'n'Place rows.
  2. convertCircuitJsonToPickAndPlaceCsv: Converts Circuit JSON elements directly to a CSV string.

Example

import {
  convertCircuitJsonToPickAndPlaceCsv,
  convertCircuitJsonToPickAndPlaceRows,
} from "circuit-json-to-pnp-csv"
import type { AnyCircuitElement } from "circuit-json"

const circuitJson: AnyCircuitElement[] = [
  {
    type: "pcb_component",
    pcb_component_id: "R1",
    center: { x: 10, y: 20 },
    layer: "top",
    rotation: 0,
    width: 5,
    height: 2,
    source_component_id: "resistor1",
  },
  // ... more components
]

// Get Pick'n'Place rows
const rows = convertCircuitJsonToPickAndPlaceRows(circuitSoup)
console.log(rows)

// Get Pick'n'Place CSV
const csv = convertCircuitJsonToPickAndPlaceCsv(circuitSoup)
console.log(csv)

API

convertCircuitJsonToPickAndPlaceRows(soup: AnyCircuitElement[], opts?: { flip_y_axis?: boolean }): PickAndPlaceRow[]

Converts Circuit JSON elements to an array of Pick'n'Place rows.

  • circuitJson: An array of Circuit JSON elements.
  • opts: Optional configuration object.
    • flip_y_axis: If true, flips the Y-axis values. Default is false.

Returns an array of PickAndPlaceRow objects.

convertCircuitJsonToPickAndPlaceCsv(soup: AnyCircuitElement[]): string

Converts Circuit JSON elements directly to a CSV string.

  • circuitJson: An array of Circuit JSON elements.

Returns a string containing the CSV data.

Testing

This project uses Bun's built-in test runner. To run the tests, use the following command:

bun test

License

MIT License

Readme

Keywords

none

Package Sidebar

Install

npm i circuit-json-to-pnp-csv

Weekly Downloads

5,407

Version

0.0.6

License

none

Unpacked Size

7.43 kB

Total Files

6

Last publish

Collaborators

  • seveibar