Updated plugin for KiCad 7

KiCad 7 seems to have changed some calls and broke the old implementation. These changes work for me on Ubuntu 20.04
This commit is contained in:
NicholasFaliszewski 2023-08-07 12:10:04 -07:00 committed by GitHub
parent 216a77b6a4
commit 6d5f2ac702
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -16,8 +16,8 @@ def create_tracks(board, group, net, layer, thickness, coords):
y = coord["y"] + CENTER_Y y = coord["y"] + CENTER_Y
track = pcbnew.PCB_TRACK(board) track = pcbnew.PCB_TRACK(board)
if last_x is not None: if last_x is not None:
track.SetStart(pcbnew.wxPointMM(float(last_x), float(last_y))) track.SetStart(pcbnew.VECTOR2I_MM(float(last_x), float(last_y)))
track.SetEnd(pcbnew.wxPointMM(float(x), float(y))) track.SetEnd(pcbnew.VECTOR2I_MM(float(x), float(y)))
track.SetWidth(int(thickness * 1e6)) track.SetWidth(int(thickness * 1e6))
track.SetLayer(layer) track.SetLayer(layer)
if net is not None: if net is not None:
@ -89,7 +89,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
net = self.findNet(board, via) net = self.findNet(board, via)
pcb_via = pcbnew.PCB_VIA(board) pcb_via = pcbnew.PCB_VIA(board)
pcb_via.SetPosition( pcb_via.SetPosition(
pcbnew.wxPointMM(via["x"] + CENTER_X, via["y"] + CENTER_Y) pcbnew.VECTOR2I_MM(via["x"] + CENTER_X, via["y"] + CENTER_Y)
) )
pcb_via.SetWidth(int(via_diameter * 1e6)) pcb_via.SetWidth(int(via_diameter * 1e6))
pcb_via.SetDrill(int(via_drill_diameter * 1e6)) pcb_via.SetDrill(int(via_drill_diameter * 1e6))
@ -102,7 +102,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
# x = pin["x"] + CENTER_X # x = pin["x"] + CENTER_X
# y = pin["y"] + CENTER_Y # y = pin["y"] + CENTER_Y
# module = pcbnew.FOOTPRINT(board) # module = pcbnew.FOOTPRINT(board)
# module.SetPosition(pcbnew.wxPointMM(x, y)) # module.SetPosition(pcbnew.VECTOR2I_MM(x, y))
# board.Add(module) # board.Add(module)
# pcb_pad = pcbnew.PAD(module) # pcb_pad = pcbnew.PAD(module)
# pcb_pad.SetSize(pcbnew.wxSizeMM(pin_diameter, pin_diameter)) # pcb_pad.SetSize(pcbnew.wxSizeMM(pin_diameter, pin_diameter))
@ -110,7 +110,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
# pcb_pad.SetAttribute(pcbnew.PAD_ATTRIB_PTH) # pcb_pad.SetAttribute(pcbnew.PAD_ATTRIB_PTH)
# pcb_pad.SetLayerSet(pcb_pad.PTHMask()) # pcb_pad.SetLayerSet(pcb_pad.PTHMask())
# pcb_pad.SetDrillSize(pcbnew.wxSizeMM(pin_drill, pin_drill)) # pcb_pad.SetDrillSize(pcbnew.wxSizeMM(pin_drill, pin_drill))
# pcb_pad.SetPosition(pcbnew.wxPointMM(x, y)) # pcb_pad.SetPosition(pcbnew.VECTOR2I_MM(x, y))
# pcb_pad.SetNetCode(net.GetNetCode()) # pcb_pad.SetNetCode(net.GetNetCode())
# module.Add(pcb_pad) # module.Add(pcb_pad)
@ -122,7 +122,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
x = pin["x"] + CENTER_X x = pin["x"] + CENTER_X
y = pin["y"] + CENTER_Y y = pin["y"] + CENTER_Y
module = pcbnew.FOOTPRINT(board) module = pcbnew.FOOTPRINT(board)
module.SetPosition(pcbnew.wxPointMM(x, y)) module.SetPosition(pcbnew.VECTOR2I_MM(x, y))
board.Add(module) board.Add(module)
pcb_pad = pcbnew.PAD(module) pcb_pad = pcbnew.PAD(module)
pcb_pad.SetSize(pcbnew.wxSizeMM(pin["width"], pin["height"])) pcb_pad.SetSize(pcbnew.wxSizeMM(pin["width"], pin["height"]))
@ -130,9 +130,9 @@ class CoilPlugin(pcbnew.ActionPlugin):
pcb_pad.SetAttribute(pcbnew.PAD_ATTRIB_SMD) pcb_pad.SetAttribute(pcbnew.PAD_ATTRIB_SMD)
pcb_pad.SetLayerSet(pcb_pad.SMDMask()) pcb_pad.SetLayerSet(pcb_pad.SMDMask())
# pcb_pad.SetLayerSet(lset) # pcb_pad.SetLayerSet(lset)
pcb_pad.SetPosition(pcbnew.wxPointMM(x, y)) pcb_pad.SetPosition(pcbnew.VECTOR2I_MM(x, y))
pcb_pad.SetNetCode(net.GetNetCode()) pcb_pad.SetNetCode(net.GetNetCode())
pcb_pad.Flip(pcbnew.wxPointMM(x, y), False) pcb_pad.Flip(pcbnew.VECTOR2I_MM(x, y), False)
module.Add(pcb_pad) module.Add(pcb_pad)
# create any silk screen # create any silk screen
@ -141,9 +141,9 @@ class CoilPlugin(pcbnew.ActionPlugin):
y = text["y"] + CENTER_Y y = text["y"] + CENTER_Y
pcb_txt = pcbnew.PCB_TEXT(board) pcb_txt = pcbnew.PCB_TEXT(board)
pcb_txt.SetText(text["text"]) pcb_txt.SetText(text["text"])
pcb_txt.SetPosition(pcbnew.wxPointMM(x, y)) pcb_txt.SetPosition(pcbnew.VECTOR2I_MM(x, y))
pcb_txt.SetHorizJustify(pcbnew.GR_TEXT_HJUSTIFY_CENTER) pcb_txt.SetHorizJustify(pcbnew.GR_TEXT_HJUSTIFY_CENTER)
pcb_txt.Rotate(pcbnew.wxPointMM(x, y), text["angle"]) pcb_txt.Rotate(pcbnew.VECTOR2I_MM(x, y), text["angle"])
pcb_txt.SetTextSize( pcb_txt.SetTextSize(
pcbnew.wxSize( pcbnew.wxSize(
text["size"] * pcbnew.IU_PER_MM, text["size"] * pcbnew.IU_PER_MM,
@ -152,7 +152,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
) )
pcb_txt.SetLayer(pcbnew.F_SilkS) pcb_txt.SetLayer(pcbnew.F_SilkS)
if text["layer"] == "b": if text["layer"] == "b":
pcb_txt.Flip(pcbnew.wxPointMM(x, y), True) pcb_txt.Flip(pcbnew.VECTOR2I_MM(x, y), True)
board.Add(pcb_txt) board.Add(pcb_txt)
pcb_group.AddItem(pcb_txt) pcb_group.AddItem(pcb_txt)
@ -161,7 +161,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
# x = hole["x"] + CENTER_X # x = hole["x"] + CENTER_X
# y = hole["y"] + CENTER_Y # y = hole["y"] + CENTER_Y
# module = pcbnew.FOOTPRINT(board) # module = pcbnew.FOOTPRINT(board)
# module.SetPosition(pcbnew.wxPointMM(x, y)) # module.SetPosition(pcbnew.VECTOR2I_MM(x, y))
# board.Add(module) # board.Add(module)
# pcb_pad = pcbnew.PAD(module) # pcb_pad = pcbnew.PAD(module)
# pcb_pad.SetSize(pcbnew.wxSizeMM(hole["diameter"], hole["diameter"])) # pcb_pad.SetSize(pcbnew.wxSizeMM(hole["diameter"], hole["diameter"]))
@ -171,7 +171,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
# pcb_pad.SetDrillSize( # pcb_pad.SetDrillSize(
# pcbnew.wxSizeMM(hole["diameter"], hole["diameter"]) # pcbnew.wxSizeMM(hole["diameter"], hole["diameter"])
# ) # )
# pcb_pad.SetPosition(pcbnew.wxPointMM(x, y)) # pcb_pad.SetPosition(pcbnew.VECTOR2I_MM(x, y))
# module.Add(pcb_pad) # module.Add(pcb_pad)
# pcb_group.AddItem(pcb_hole) # pcb_group.AddItem(pcb_hole)
@ -186,7 +186,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
for point in edge_cut: for point in edge_cut:
x = point["x"] + CENTER_X x = point["x"] + CENTER_X
y = point["y"] + CENTER_Y y = point["y"] + CENTER_Y
v.append(pcbnew.wxPointMM(x, y)) v.append(pcbnew.VECTOR2I_MM(x, y))
ec.SetPolyPoints(v) ec.SetPolyPoints(v)
board.Add(ec) board.Add(ec)
@ -201,7 +201,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
for point in edge_cut: for point in edge_cut:
x = point["x"] + CENTER_X x = point["x"] + CENTER_X
y = point["y"] + CENTER_Y y = point["y"] + CENTER_Y
v.append(pcbnew.wxPointMM(x, y)) v.append(pcbnew.VECTOR2I_MM(x, y))
ec.SetPolyPoints(v) ec.SetPolyPoints(v)
board.Add(ec) board.Add(ec)
@ -215,7 +215,7 @@ class CoilPlugin(pcbnew.ActionPlugin):
for point in edge_cut: for point in edge_cut:
x = point["x"] + CENTER_X x = point["x"] + CENTER_X
y = point["y"] + CENTER_Y y = point["y"] + CENTER_Y
v.append(pcbnew.wxPointMM(x, y)) v.append(pcbnew.VECTOR2I_MM(x, y))
ec.SetPolyPoints(v) ec.SetPolyPoints(v)
board.Add(ec) board.Add(ec)