Compare commits

...

2 commits

Author SHA1 Message Date
Morgan 'ARR\!' Allen
03fc42579f move much of the board outline functionality to BoardSketch 2025-05-16 23:02:13 -07:00
Morgan 'ARR\!' Allen
db3a25dbd2 typo, get > getObject 2025-05-16 23:01:26 -07:00
2 changed files with 20 additions and 15 deletions

View file

@ -41,7 +41,7 @@ class BoardObject(BaseObject):
def onDocumentRestored(self, feature): def onDocumentRestored(self, feature):
super(BoardObject, self).onDocumentRestored(feature) super(BoardObject, self).onDocumentRestored(feature)
self.board_sketch = self.feature.get('BoardSketch') self.board_sketch = self.feature.getObject('BoardSketch')
self.kicad_board = self.get_api().kicad.get_board() self.kicad_board = self.get_api().kicad.get_board()
@property @property

View file

@ -15,18 +15,35 @@ class BoardSketchObject(BaseObject):
TYPE = 'KiConnect::BoardSketch' TYPE = 'KiConnect::BoardSketch'
def __init__(self, feature, kicad_board, board_polygon): def __init__(self, feature, kicad_board, board_polygon):
self.board_polygon = board_polygon
super(BoardSketchObject, self).__init__(feature) super(BoardSketchObject, self).__init__(feature)
#feature.Visibility = False #feature.Visibility = False
def execute(self, feature):
feature.recompute()
def point_to_vector(self, point, offset=True):
return (
App.Vector(point.x,
-point.y
)) / 1000000.0 - (self.feature.BoardOffset.Base if offset else 0)
def setup_properties(self, feature):
super(BoardSketchObject, self).setup_properties(feature)
feature.addProperty('App::PropertyPlacement', 'BoardOffset', 'KiConnect', 'Internal offset for zeroing out Footprint offset', hidden=True, read_only=True)
feature.addProperty('App::PropertyVectorList', 'Vectors', 'KiConnect', 'Internal offset for zeroing out Footprint offset', hidden=True)
def sync_from(self):
feature = self.feature
vectors = [] vectors = []
for node in board_polygon.polygons[0].outline: for node in self.board_polygon.polygons[0].outline:
vectors.append(self.point_to_vector(node.point)) vectors.append(self.point_to_vector(node.point))
self.feature.Vectors = vectors self.feature.Vectors = vectors
def execute(self, feature):
begin = None begin = None
start = None start = None
@ -48,18 +65,6 @@ class BoardSketchObject(BaseObject):
feature.recompute() feature.recompute()
def point_to_vector(self, point, offset=True):
return (
App.Vector(point.x,
-point.y
)) / 1000000.0 - (self.feature.BoardOffset.Base if offset else 0)
def setup_properties(self, feature):
super(BoardSketchObject, self).setup_properties(feature)
feature.addProperty('App::PropertyPlacement', 'BoardOffset', 'KiConnect', 'Internal offset for zeroing out Footprint offset', hidden=True, read_only=True)
feature.addProperty('App::PropertyVectorList', 'Vectors', 'KiConnect', 'Internal offset for zeroing out Footprint offset', hidden=True)
def __getstate__(self): def __getstate__(self):
return None return None