import requests from loguru import logger from onshape.onshape_base import OnshapeBase class OnshapeDownload(OnshapeBase): def __init__(self, did, wid, eid, output_file): super().__init__() self.did = did self.wid = wid self.eid = eid self.output_file = output_file def download(self): url = f"{self.base_url}/blobelements/d/{self.did}/w/{self.wid}/e/{self.eid}" headers = { "Accept": "application/json;charset=UTF-8; qs=0.09", **self.get_auth_header(), } logger.info( f"Downloading file with element ID '{self.eid}' to '{self.output_file}'." ) response = requests.get(url, headers=headers) with open(self.output_file, "wb") as f: f.write(response.content) logger.success(f"File downloaded successfully as '{self.output_file}'.") # Example usage if __name__ == "__main__": did = "ef42d7639096f3e61a4d4f07" wid = "5fcd0f25ce3dee08bbb823bf" eid = "fd0dbebc1ac05de1f1d1ed07" # you can find it in `resultElementIds` when `requestState` of `TranslationStatusResponse` is `DONE` output_file = "output_file.step" downloader = OnshapeDownload(did, wid, eid, output_file) downloader.download()