diff --git a/specctra/src/structure.rs b/specctra/src/structure.rs index d3150d6..0d80358 100644 --- a/specctra/src/structure.rs +++ b/specctra/src/structure.rs @@ -688,6 +688,7 @@ pub struct Via { #[anon] pub y: f64, pub net: String, + pub r#type: Option, } #[derive(ReadDsn, WriteSes, Debug, Clone, PartialEq)] diff --git a/topola/src/specctra.rs b/topola/src/specctra.rs index 8002d09..7e6701e 100644 --- a/topola/src/specctra.rs +++ b/topola/src/specctra.rs @@ -11,11 +11,10 @@ use specctra::{ }; use crate::{ - Segment, + Segment, Vector2, board::Board, layout::{NetId, PinId}, primitives::{Joint, Polygon}, - Vector2, }; impl Board { @@ -105,8 +104,12 @@ impl Board { for pin in &image.pins { let pin_name = format!("{}-{}", place.name, pin.id); + + let Some(net) = pin_nets.get(&pin_name).copied() else { + continue; + }; + let pin_id = board.ensure_pin(pin_name.clone()); - let net = pin_nets.get(&pin_name).copied().unwrap(); let padstack = dsn.pcb.library.find_padstack_by_name(&pin.name).unwrap(); for shape in padstack.shapes.iter() {