要计算全局偏移,可以使用Autodesk Forge的Model Derivative API和Viewer API。下面是一种解决方法的示例代码:
import requests
def translate_model(file_path):
url = 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
}
payload = {
'input': {
'urn': 'urn:adsk.objects:os.object:YOUR_BUCKET_KEY/' + file_path
},
'output': {
'formats': [
{
'type': 'svf',
'views': ['3d']
}
]
}
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
job_id = response.json()['id']
return job_id
import requests
def get_model_properties(urn):
url = 'https://developer.api.autodesk.com/modelderivative/v2/designdata/' + urn + '/metadata'
headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
}
response = requests.get(url, headers=headers)
response.raise_for_status()
properties = response.json()
return properties
def get_global_offset(properties):
global_offset = properties['data']['metadata'][0]['globalOffset']
return global_offset
function loadModel(urn, globalOffset) {
const viewer = new Autodesk.Viewing.Viewer3D(document.getElementById('viewer'));
Autodesk.Viewing.Initializer({ accessToken: 'YOUR_ACCESS_TOKEN' }, function () {
viewer.start();
const options = {
sharedPropertyDbPath: urn + '/metadata/properties.sqlite',
globalOffset: globalOffset
};
viewer.loadModel('urn:' + urn, options);
});
}
请注意,以上示例代码只是一个简单的示例,实际使用时可能需要根据具体情况进行适当的修改和调整。