diff --git a/freecad/kiconnect/board.py b/freecad/kiconnect/board.py index 486450a..2f2eb9f 100644 --- a/freecad/kiconnect/board.py +++ b/freecad/kiconnect/board.py @@ -18,10 +18,11 @@ class BoardObject(BaseObject): def __init__(self, feature, kicad_board, board_polygon): self.feature = feature - self.kicad_board = kicad_board + self.substrate_body = None self.board_sketch = None - # TODO add this to FreeCAD Preferences and Property? - self.do_offset = True + + self.kicad_board = kicad_board + # TODO needs to be resotred in onDocumentRestored #self.board_polygon = board_polygon self.polygon_id = board_polygon.id.value @@ -32,6 +33,7 @@ class BoardObject(BaseObject): self.feature.PolygonId = board_polygon.id.value + self.substrate_body = self.create_substrate_body() self.board_sketch = BoardSketch.makeBoardSketch(self.substrate_body, kicad_board, board_polygon) self.create_substrate_pad() @@ -42,17 +44,8 @@ class BoardObject(BaseObject): def onDocumentRestored(self, feature): super(BoardObject, self).onDocumentRestored(feature) - self.board_sketch = self.feature.getObject('BoardSketch') self.kicad_board = self.get_api().kicad.get_board() - - @property - def substrate_body(self): - body = self.feature.getObject('Substrate') - - if not body: - body = self.create_substrate_body() - - return body + self.board_sketch = self.feature.getObject('Substrate').getObject('BoardSketch') def create_substrate_body(self): substrate_body = App.ActiveDocument.addObject('PartDesign::Body', 'Substrate') @@ -148,7 +141,7 @@ class BoardObject(BaseObject): poly = boardpoly.polygons[0] poly.outline.clear() - geom = self.feature.getObject('Substrate').getObject('Sketch').Geometry + geom = self.feature.getObject('Substrate').getObject('BoardSketch').Geometry segments = [l for l in geom if isinstance(l, Part.LineSegment)] for line in segments: