3D model updating (Python)

3D model updating (Python)
 1# This example updates all the 3d models in all the 3d layers in the active drawing.
 2
 3for layer in impact.active_drawing.layers:
 4
 5    if layer.layer_type == "THREE_D":
 6        scene = layer.scene
 7
 8        if not scene.isNone():
 9
10            for instance in scene.instances:
11                object = instance.object()
12
13                if not object.isNone():
14
15                    if object.type == ip3DObjectType.ot3DModel:
16
17                        impact.gui.output_toolbox.add("Updating model:")
18                        impact.gui.output_toolbox.add(instance.name)
19                        impact.gui.output_toolbox.add(instance.GUID)
20
21                        # Get the required settings from the database
22                        paletteSettings = impact.active_database.find_master_tool_setting( "Fold on Perf", ipMasterSettingType.mst3DPalettes )
23                        boardSettings = impact.active_database.find_master_tool_setting( "<Default Corrugated Single Wall>", ipMasterSettingType.mst3DBoard )
24                        varnishSettings = impact.active_database.find_master_tool_setting( "Silk", ipMasterSettingType.mst3DVarnish )
25                        foilSettings = impact.active_database.find_master_tool_setting( "Silver", ipMasterSettingType.mst3DFoil )
26                        model = object
27                        updateOptions = impact.creator.three_d().update_model_options()
28
29                        updateOptions.palette_settings = paletteSettings
30                        updateOptions.board_settings = boardSettings
31                        updateOptions.varnish_settings = varnishSettings
32                        updateOptions.foil_settings = foilSettings
33
34                        updateOptions.geometry = True
35                        updateOptions.board = True
36                        updateOptions.artwork = True
37                        updateOptions.advanced = True
38
39                        model.do_update(updateOptions)
40
41        else:
42
43            impact.gui.output_toolbox.add("No 3d scene")