Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
seveibar committed Nov 8, 2024
1 parent d20d227 commit 9f7e186
Showing 1 changed file with 93 additions and 2 deletions.
95 changes: 93 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,28 +22,119 @@ npm install dsn-converter

## Usage

### Converting DSN to Circuit JSON
### Basic Usage

#### Converting DSN to Circuit JSON

```typescript
import { parseDsnToCircuitJson } from "dsn-converter"

// Read DSN file
const dsnContent = await Bun.file("your-design.dsn").text()

// Convert to Circuit JSON
const circuitJson = parseDsnToCircuitJson(dsnContent)

// Save the output
await Bun.write("output.circuit.json", JSON.stringify(circuitJson, null, 2))
```

### Converting Circuit JSON to DSN
#### Converting Circuit JSON to DSN

```typescript
import { circuitJsonToDsnString } from "dsn-converter"

// Convert Circuit JSON to DSN format
const dsnString = circuitJsonToDsnString(circuitJson)

// Save the DSN file
await Bun.write("output.dsn", dsnString)
```

### Advanced Usage

#### Working with DSN JSON Directly

```typescript
import {
parseDsnToDsnJson,
convertDsnJsonToCircuitJson,
stringifyDsnJson
} from "dsn-converter"

// Parse DSN to intermediate JSON format
const dsnJson = parseDsnToDsnJson(dsnString)

// Modify the DSN JSON structure
dsnJson.placement.components.push({
name: "NewComponent",
place: {
refdes: "U1",
x: 1000,
y: 1000,
side: "front",
rotation: 0
}
})

// Convert to Circuit JSON
const circuitJson = convertDsnJsonToCircuitJson(dsnJson)

// Or convert back to DSN string
const modifiedDsnString = stringifyDsnJson(dsnJson)
```

#### Custom Component Processing

```typescript
import { convertCircuitJsonToDsnJson } from "dsn-converter"

// Create Circuit JSON elements
const elements = [
{
type: "pcb_smtpad",
pcb_smtpad_id: "pad1",
pcb_component_id: "R1",
shape: "rect",
x: 0,
y: 0,
width: 0.5,
height: 0.6,
layer: "top"
},
// Add more elements...
]

// Convert to DSN format
const dsnJson = convertCircuitJsonToDsnJson(elements)
```

### Type Support

The library provides comprehensive TypeScript types:

```typescript
import type {
DsnPcb,
Component,
Padstack,
Network,
Wire
} from "dsn-converter"

// Use types for type-safe DSN manipulation
const component: Component = {
name: "R1",
place: {
refdes: "R1",
x: 1000,
y: 1000,
side: "front",
rotation: 0
}
}
```

## Features

- **Complete DSN Support**: Handles all major DSN file components including:
Expand Down

0 comments on commit 9f7e186

Please sign in to comment.