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