cq_toplevel: don't assume as_assy=True; some consumers need a single object

This commit is contained in:
2024-02-07 23:31:13 +00:00
parent 5e8550f5f5
commit a82781e6b1

View File

@@ -67,7 +67,7 @@ def export_png_image(obj, file_: str, orientation: str):
exporter.Write()
def _model():
def _model(as_assy: bool=False):
logger.info("computing model ...")
render_phone = os.environ.get("CASE_RENDER_PHONE", "") not in ("", "0")
render_phone_only = os.environ.get("CASE_RENDER_PHONE_ONLY", "") not in ("", "0")
@@ -78,15 +78,15 @@ def _model():
return case.orient_for_printing(phone)
battery = ldtek_battery.LdtekBattery()
return case.case(phone, battery=battery, render_phone=render_phone)
return case.case(phone, battery=battery, render_phone=render_phone, as_assy=as_assy)
_computedModel = None
def model():
_computedModels = {}
def model(as_assy: bool=False):
""" memoized wrapper around `_model` """
global _computedModel
if _computedModel is None:
_computedModel = _model()
return _computedModel
global _computedModels
if as_assy not in _computedModels:
_computedModels[as_assy] = _model(as_assy=as_assy)
return _computedModels[as_assy]
def main():
logging.basicConfig()
@@ -121,7 +121,7 @@ def main():
orientation = "back"
if "front" in args.export_png:
orientation = "front"
model_ = model()
model_ = model(as_assy=True)
logger.info("exporting png to %s", args.export_png)
export_png_image(model_, args.export_png, orientation)