poc
Browse files- onshape/onshape_download.py +33 -0
- onshape/onshape_translation.py +35 -0
onshape/onshape_download.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import requests
|
| 3 |
+
import base64
|
| 4 |
+
|
| 5 |
+
access_key = os.environ.get("ONSHAPE_ACCESS_KEY")
|
| 6 |
+
secret_key = os.environ.get("ONSHAPE_SECRET_KEY")
|
| 7 |
+
did = "ef42d7639096f3e61a4d4f07"
|
| 8 |
+
wid = "5fcd0f25ce3dee08bbb823bf"
|
| 9 |
+
prt_file_path = "prt0002.prt"
|
| 10 |
+
tid = "68382b8879834455c6382294"
|
| 11 |
+
resulteid = "c46568af3e8bf618762a1db3"
|
| 12 |
+
|
| 13 |
+
# Basic Auth header
|
| 14 |
+
credentials_raw = f"{access_key}:{secret_key}"
|
| 15 |
+
credentials_base64 = base64.b64encode(credentials_raw.encode("utf-8")).decode("utf-8")
|
| 16 |
+
|
| 17 |
+
url = "https://cad.onshape.com/api/v10" + f"/blobelements/d/{did}/w/{wid}/e/{resulteid}"
|
| 18 |
+
|
| 19 |
+
headers = {
|
| 20 |
+
"Accept": "application/json;charset=UTF-8; qs=0.09",
|
| 21 |
+
"Authorization": f"Basic {credentials_base64}",
|
| 22 |
+
# "X-XSRF-TOKEN": "QcscTFRgL6vE7h7UFHKmng==",
|
| 23 |
+
# DO NOT set Content-Type manually when sending files with requests
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
files = {"file": open(prt_file_path, "rb")}
|
| 28 |
+
|
| 29 |
+
response = requests.get(url, headers=headers)
|
| 30 |
+
|
| 31 |
+
with open("downloaded_file.step", "wb") as f:
|
| 32 |
+
f.write(response.content)
|
| 33 |
+
print("File downloaded successfully as 'downloaded_file.step'.")
|
onshape/onshape_translation.py
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import requests
|
| 3 |
+
import base64
|
| 4 |
+
|
| 5 |
+
access_key = os.environ.get("ONSHAPE_ACCESS_KEY")
|
| 6 |
+
secret_key = os.environ.get("ONSHAPE_SECRET_KEY")
|
| 7 |
+
did = "ef42d7639096f3e61a4d4f07"
|
| 8 |
+
wid = "5fcd0f25ce3dee08bbb823bf"
|
| 9 |
+
prt_file_path = "prt0002.prt"
|
| 10 |
+
|
| 11 |
+
# Basic Auth header
|
| 12 |
+
credentials_raw = f"{access_key}:{secret_key}"
|
| 13 |
+
credentials_base64 = base64.b64encode(credentials_raw.encode("utf-8")).decode("utf-8")
|
| 14 |
+
|
| 15 |
+
url = "https://cad.onshape.com/api/v10" + f"/translations/d/{did}/w/{wid}"
|
| 16 |
+
|
| 17 |
+
headers = {
|
| 18 |
+
"Accept": "application/json;charset=UTF-8; qs=0.09",
|
| 19 |
+
"Authorization": f"Basic {credentials_base64}",
|
| 20 |
+
# "X-XSRF-TOKEN": "QcscTFRgL6vE7h7UFHKmng==",
|
| 21 |
+
# DO NOT set Content-Type manually when sending files with requests
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
# All form fields as strings (empty strings '' where appropriate)
|
| 25 |
+
data = {"translate": "true", "formatName": "STEP"}
|
| 26 |
+
|
| 27 |
+
files = {"file": open(prt_file_path, "rb")}
|
| 28 |
+
|
| 29 |
+
response = requests.post(url, headers=headers, data=data, files=files)
|
| 30 |
+
|
| 31 |
+
try:
|
| 32 |
+
print(f"✅ Translate response: {response.json()}")
|
| 33 |
+
except Exception:
|
| 34 |
+
print(f"Status: {response.status_code}")
|
| 35 |
+
print(response.text)
|