-
Notifications
You must be signed in to change notification settings - Fork 1
/
OpenF3D.py
47 lines (32 loc) · 1.53 KB
/
OpenF3D.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#Author-
#Description-
import adsk.core, adsk.fusion, adsk.cam, traceback
import os
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
design = adsk.fusion.Design.cast(app.activeProduct)
root = design.rootComponent
doc = app.activeDocument
#Create FileDialog
dialog = ui.createFileDialog()
dialog.filter = 'Fusion Archive (*.f3d)'
dialog.initialDirectory = os.path.expanduser('~/Documents/')
if dialog.showOpen() != adsk.core.DialogResults.DialogOK:
return
# Get import manager
importManager = app.importManager
# Get archive import options
archiveFileName = dialog.filename #'C:\\Users\\Fabi\\Documents\\test.f3d'
archiveOptions = importManager.createFusionArchiveImportOptions(archiveFileName)
# Import archive file to root component
importManager.importToTarget(archiveOptions, root)
importedComponent = design.allComponents.item(design.allComponents.count-1)
importedBodies = importedComponent.bRepBodies
ui.messageBox('Bodies in active document {}, imported bodies {} \n center of mass {}'.format(root.bRepBodies.count, importedBodies.count, importedBodies.item(0).physicalProperties.centerOfMass.asArray()))
#doc.close(False)
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))