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")