Пример #1
0
 def tracks(self):
     """An iterator over track objects"""
     for t in self._obj.GetTracks():
         if type(t) == pcbnew.TRACK:
             yield Track.wrap(t)
         else:
             continue
Пример #2
0
 def tracks(self):
     """An iterator over track objects"""
     for t in self._obj.GetTracks():
         if type(t) == pcbnew.TRACK:
             yield Track.wrap(t)
         else:
             continue
Пример #3
0
    def tracks(self):
        # type: () -> Generator[Track, None, None]
        """List of Tracks present in the Board

        :return: Iterator over :class:`kicad.pcbnew.Track`
        """
        for item in self._obj.GetTracks():
            if type(item) is _pcbnew.TRACK:
                yield Track(item)
Пример #4
0
    def add_track_segment(self, start, end, layer='F.Cu', width=None):
        """Create a track segment."""

        track = Track(width or self.default_width,
                      start,
                      end,
                      layer,
                      board=self)
        self._obj.Add(track.native_obj)
        return track
Пример #5
0
def from_board_item(board_item):
    # type: (_pcbnew.BOARD_ITEM) -> BoardItem
    item = board_item.Cast()
    item_type = type(item)

    if item_type is _pcbnew.TEXTE_PCB:
        from kicad.pcbnew.text import Text
        return Text(item)

    elif item_type is _pcbnew.BOARD:
        from kicad.pcbnew.board import Board
        return Board(item)

    elif item_type is _pcbnew.DIMENSION:
        from kicad.pcbnew.dimension import Dimension
        return Dimension(item)

    elif item_type is _pcbnew.DRAWSEGMENT:
        from kicad.pcbnew.drawsegment import Drawsegment
        return Drawsegment.from_drawsegment(item)

    elif item_type is _pcbnew.EDGE_MODULE:
        raise NotImplementedError(item_type)

    elif item_type is _pcbnew.MODULE:
        from kicad.pcbnew.module import Module
        return Module(item)

    elif item_type is _pcbnew.D_PAD:
        from kicad.pcbnew.pad import Pad
        return Pad(item)

    elif item_type is _pcbnew.TEXTE_MODULE:
        from kicad.pcbnew.text import Text  # type: ignore
        return Text(item)

    elif item_type is _pcbnew.VIA:
        from kicad.pcbnew.via import Via
        return Via(item)

    elif item_type is _pcbnew.TRACK:
        from kicad.pcbnew.track import Track
        return Track(item)

    elif item_type is _pcbnew.PCB_TARGET:
        from kicad.pcbnew.pcbtarget import PcbTarget
        return PcbTarget(item)

    elif item_type is _pcbnew.ZONE_CONTAINER:
        from kicad.pcbnew.zone import Zone
        return Zone(item)

    else:
        raise NotImplementedError(item_type)