handle missing footprint models

This commit is contained in:
Morgan 'ARR\!' Allen 2025-04-07 16:38:13 -07:00
parent 7a3a9d8e16
commit a0941452ae

View file

@ -40,19 +40,20 @@ class Parts():
for item in [item for item in footprint.definition.items if isinstance(item, Footprint3DModel)]:
filename = item.filename.replace('${KICAD9_3DMODEL_DIR}', settings.KICAD9_3DMODEL_DIR).replace('wrl', 'step')
ImportGui.insert(filename, App.ActiveDocument.Name)
try:
ImportGui.insert(filename, App.ActiveDocument.Name)
# simply grabs the last object in the document, probably need to figure out a safer way to handle
model = App.ActiveDocument.findObjects()[-1]
model.Label = footprint.reference_field.text.value
# simply grabs the last object in the document, probably need to figure out a safer way to handle
model = App.ActiveDocument.findObjects()[-1]
model.Label = footprint.reference_field.text.value
model.addProperty('App::PropertyPlacement', 'BoardOffset', 'Base', 'Internal offset for zeroing out Footprint offset', hidden=True, read_only=True)
self.feature.addObject(model)
model.Placement.Base.x = (footprint.position.x / 1000000.0) - self.kiconn_board.offset.x
model.Placement.Base.y = (-footprint.position.y / 1000000.0) - self.kiconn_board.offset.y
model.Placement.Base.z = 0.8
model.Placement.Rotation.Angle = footprint.orientation.to_radians()
model.BoardOffset = model.Placement
model.addProperty('App::PropertyPlacement', 'BoardOffset', 'Base', 'Internal offset for zeroing out Footprint offset', hidden=True, read_only=True)
self.feature.addObject(model)
model.Placement.Base.x = (footprint.position.x / 1000000.0) - self.kiconn_board.offset.x
model.Placement.Base.y = (-footprint.position.y / 1000000.0) - self.kiconn_board.offset.y
model.Placement.Base.z = 0.8
model.Placement.Rotation.Angle = footprint.orientation.to_radians()
model.BoardOffset = model.Placement
except:
print('failed to load', filename)