3D model updating

3D model updating
 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    if layer.layer_type == "THREE_D":
 5        scene = layer.scene
 6
 7        if not scene.isNone():
 8            for instance in scene.instances:
 9                object = instance.object()
10
11                if not object.isNone():
12                    if object.type == ip3DObjectType.ot3DModel:
13                        impact.gui.output_toolbox.add("Updating model:")
14                        impact.gui.output_toolbox.add(instance.name)
15                        impact.gui.output_toolbox.add(instance.guid)
16
17                        # Get the required settings from the database
18                        palette_settings = impact.active_database.find_master_tool_setting("Fold on Perf", ipMasterSettingType.mst3DPalettes)
19                        board_settings = impact.active_database.find_master_tool_setting("<Default Corrugated Single Wall>", ipMasterSettingType.mst3DBoard)
20                        varnish_settings = impact.active_database.find_master_tool_setting("Silk", ipMasterSettingType.mst3DVarnish)
21                        foil_settings = impact.active_database.find_master_tool_setting("Silver", ipMasterSettingType.mst3DFoil)
22
23                        model = object
24                        update_options = impact.creator.three_d().update_model_options()
25
26                        update_options.palette_settings = palette_settings
27                        update_options.board_settings = board_settings
28                        update_options.varnish_settings = varnish_settings
29                        update_options.foil_settings = foil_settings
30
31                        update_options.geometry = True
32                        update_options.board = True
33                        update_options.artwork = True
34                        update_options.advanced = True
35
36                        model.do_update(update_options)
37
38        else:
39            impact.gui.output_toolbox.add("No 3d scene")
40