[Aa...] Posted March 12 Share Posted March 12 Hi Everyone! I was wondering if anyone had a nice script for automatically capturing report 3d views for all the standard and isometric projections. Link to comment Share on other sites More sharing options...
[Ma...] Posted March 22 Share Posted March 22 I have a script that do this. Of course the code must by adapted for your use: rif_dir=("S:\\"+reparto_maiuscolo+"\\Controlli\\*") if reparto==2 or reparto==3: rif_dir=("S:\\"+reparto_maiuscolo+"\\*") control_dir="S:\\"+reparto_maiuscolo+"\\Controlli\\*" if reparto==2 or reparto==3: control_dir=("S:\\"+reparto_maiuscolo+"\\*") RESULT=gom.script.sys.create_user_defined_dialog (content='<dialog>' \ ' <title>Confronto Vecchio/Nuovo</title>' \ ' <style>Standard</style>' \ ' <control id="OkCancel"/>' \ ' <position>center</position>' \ ' <embedding>always_toplevel</embedding>' \ ' <sizemode>automatic</sizemode>' \ ' <size width="348" height="408"/>' \ ' <content rows="8" columns="1">' \ ' <widget row="0" rowspan="1" column="0" columnspan="1" type="label">' \ ' <name>label_1</name>' \ ' <tooltip></tooltip>' \ ' <text>Imposta il Tempo di Preallineamento</text>' \ ' <word_wrap>false</word_wrap>' \ ' </widget>' \ ' <widget row="1" rowspan="1" column="0" columnspan="1" type="input::radiobutton">' \ ' <name>NormalOrLong</name>' \ ' <tooltip></tooltip>' \ ' <items>' \ ' <item description="Corto" state="3"/>' \ ' <item description="Normale" state="1"/>' \ ' <item description="Lungo" state="2"/>' \ ' </items>' \ ' <default>1</default>' \ ' </widget>' \ ' <widget row="2" rowspan="1" column="0" columnspan="1" type="separator">' \ ' <name>separator</name>' \ ' <tooltip></tooltip>' \ ' <title></title>' \ ' </widget>' \ ' <widget row="3" rowspan="1" column="0" columnspan="1" type="label">' \ ' <name>label_2</name>' \ ' <tooltip></tooltip>' \ ' <text>Seleziona le Figure di Riferimento</text>' \ ' <word_wrap>false</word_wrap>' \ ' </widget>' \ ' <widget row="4" rowspan="1" column="0" columnspan="1" type="input::file">' \ ' <name>directory2</name>' \ ' <tooltip>Importa di File di Riferimento</tooltip>' \ ' <type>multi_file</type>' \ ' <title>Scegli files</title>' \ ' <default></default>' \ ' <limited>true</limited>' \ ' <file_types>' \ ' <file_type description="Tutti i file" name="*.stl *.g3d"/>' \ ' </file_types>' \ ' <file_types_default>*.stl *.g3d</file_types_default>' \ ' </widget>' \ ' <widget row="5" rowspan="1" column="0" columnspan="1" type="separator">' \ ' <name>separator_1</name>' \ ' <tooltip></tooltip>' \ ' <title></title>' \ ' </widget>' \ ' <widget row="6" rowspan="1" column="0" columnspan="1" type="label">' \ ' <name>label</name>' \ ' <tooltip></tooltip>' \ ' <text>Seleziona le Figure da Controllare</text>' \ ' <word_wrap>false</word_wrap>' \ ' </widget>' \ ' <widget row="7" rowspan="1" column="0" columnspan="1" type="input::file">' \ ' <name>directory</name>' \ ' <tooltip>Importa File Attuali</tooltip>' \ ' <type>multi_file</type>' \ ' <title>Scegli files</title>' \ ' <default></default>' \ ' <limited>true</limited>' \ ' <file_types>' \ ' <file_type description="Tutti i file" name="*.stl *.g3d"/>' \ ' </file_types>' \ ' <file_types_default>*.stl *.g3d</file_types_default>' \ ' </widget>' \ ' </content>' \ '</dialog>') RESULT.directory2.default = rif_dir RESULT.directory.default = control_dir RESULT=gom.script.sys.show_user_defined_dialog (dialog=RESULT) dir2 = RESULT.directory2 print (dir2) dir = RESULT.directory print (dir) NormalOrLong = int(RESULT.NormalOrLong) print (NormalOrLong) for filenames in dir2: print(filenames) base, ext = os.path.splitext(filenames) if ext == '.stl': stlfile = os.path.join(filenames) gom.script.sys.import_stl ( bgr_coding=True, files=[stlfile], import_mode='clipboard', length_unit='mm', stl_color_bit_set=False, target_type='mesh') if ext == '.g3d': g3dfile = os.path.join(filenames) gom.script.sys.import_g3d ( files=[g3dfile], import_mode='clipboard') counter=-1 print (counter) for n in range(len(gom.app.project.clipboard.actual_elements)): print (n) counter+1 print (counter) mesh=gom.app.project.clipboard.actual_elements[0].import_information.name print (mesh) gom.script.mesh.convert_mesh_to_cad_data ( meshes=[gom.app.project.clipboard.actual_elements[0]], name=mesh) gom.script.part.create_new_part (name=mesh) gom.script.part.add_elements_to_part ( elements=[gom.app.project.clipboard.nominal_elements[0]], import_mode='new_elements', part=gom.app.project.parts[counter]) gom.script.cad.show_element_exclusively (elements=gom.ElementSelection ({'category': ['key', 'elements', 'part', gom.app.project.parts[counter], 'explorer_category', 'nominal_part']})) #INIZIO ALLINEAMENTO MONDO gom.script.cad.show_element_exclusively (elements=gom.ElementSelection ({'category': ['key', 'elements', 'part', gom.app.project.parts[counter], 'explorer_category', 'nominal_part']})) Punto_Coordinata=('Punto_Coordinata_')+(mesh) print (Punto_Coordinata) MCAD_ELEMENT=gom.script.primitive.create_touch_point_disc ( clearance=100.0, name=Punto_Coordinata, normal={'direction': gom.Vec3d (0.0, 0.0, 1.0), 'point': gom.Vec3d (0.0, 0.0, 0.0), 'type': 'projected'}, only_touch_from_outside=True, point={'point': gom.Vec3d (0.0, 0.0, 500.0)}, project_element=gom.app.project.parts[counter].nominal, properties=gom.Binary ('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'), radius=200.0) gom.script.inspection.inspect_by_referenced_construction (elements=[gom.app.project.inspection[Punto_Coordinata]]) coordinate_system=('CS_')+(mesh) MCAD_ELEMENT=gom.script.cs.create_element_by_orientation ( name=coordinate_system, orientation='auto', origin=gom.app.project.inspection[Punto_Coordinata], properties=gom.Binary ('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')) gom.script.inspection.inspect_by_referenced_construction (elements=[gom.app.project.inspection[coordinate_system]]) CAD_ALIGNMENT=gom.script.transform_element.by_csys ( actual_coordinate_system=gom.app.project.inspection[coordinate_system], elements=gom.ElementSelection ({'category': ['key', 'elements', 'part', gom.app.project.parts[counter], 'explorer_category', 'nominal_part']}), invert_transformation=False, target_coordinate_system=gom.app.project.nominal_elements['system_global_coordinate_system']) gom.script.cad.delete_element ( elements=[gom.app.project.inspection[Punto_Coordinata], gom.app.project.inspection[coordinate_system]], with_measuring_principle=True) # FINE ALLINEAMENTO MONDO #Importare file nuovi con finestra di dialogo for filename in dir: print(filename) base, ext = os.path.splitext(filename) if ext == '.stl': stlfile = os.path.join(filename) gom.script.sys.import_stl ( bgr_coding=True, files=[stlfile], import_mode='clipboard', length_unit='mm', stl_color_bit_set=False, target_type='mesh') if ext == '.g3d': g3dfile = os.path.join(filename) gom.script.sys.import_g3d ( files=[g3dfile], import_mode='clipboard') for n in range(len(gom.app.project.clipboard.actual_elements)): print (n) mesh=gom.app.project.clipboard.actual_elements[0].import_information.name print (mesh) gom.script.part.add_elements_to_part ( elements=[gom.app.project.clipboard.actual_elements[0]], import_mode='add_to_part', part=gom.app.project.parts[n]) for n in range(len(gom.app.project.parts)): part=(gom.app.project.parts[n].name) for causale in causali: if causale in part: print("Trovato:", causale) ref=part.split(causale)[0]+causale print (ref) break for causale in causali: control_name=(gom.app.project.parts[n].actual.import_information.name) if causale in control_name: print("Trovato:", causale) control=control_name.split(causale)[0]+causale print (control) break for causale in causali: if causale in control_name: print("Trovato:", causale) figura=control_name.split(causale)[1] print (control) break if NormalOrLong==3: tempo='normal' if NormalOrLong==1: tempo='enhanced' if NormalOrLong==2: tempo='advanced' CAD_ALIGNMENT=gom.script.alignment.create_prealignment ( computation_mode=tempo, compute_additional_bestfit=True, name_expression=control+"_su_"+ref+figura, parent_alignment=gom.app.project.parts[n].original_alignment, part=gom.app.project.parts[n]) gom.script.cad.show_element (elements=[gom.app.project.parts[n].nominal]) gom.script.selection3d.select_all_points_of_element (elements=[gom.app.project.parts[n].nominal]) MCAD_ELEMENT=gom.script.comparison.create_multiple_surface_comparison_on_cad ( compute_maximum_deviation=False, copy_selected_patches_only=False, deviation_calculation_type='shortest_distance', max_angle_between_normals=1.047197551, max_opening_angle=0.5235987756, name=('Surface_Comparison_')+str(n), properties=gom.Binary ('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'), search_distance=1.0, tolerance=0.1) gom.script.selection3d.deselect_all () gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.show_legend (enable=True) gom.script.legend.set_mode_to_legend () gom.script.legend.edit_legend_properties ( legend_template='Legenda_VN', uuid='e9ac15df-e23b-4edf-98c1-0c31b208d6ed') zoom_level=-90 gom.script.view.show_grid (enable=False) a=-1 #INIZIO VISTE 3D for n in range(len(gom.app.project.parts)): controllo=gom.app.project.parts[n].actual.name riferimento=gom.app.project.parts[n].nominal.name print (controllo) print (riferimento) gom.script.sys.set_project_keywords ( keywords={'Controllo': controllo, 'Riferimento': riferimento}, keywords_description={'Controllo': 'Controllo Parte', 'Riferimento': 'Riferimento Parte'}) a+=1 print (a) if a==0: report=str("report") else: report=str("report "+str(a)) print (report) b=a+1 report2=str("report "+str(b))#per immagine2 snapshot1=str("snapshot_frame_"+str(6)) print (snapshot1) snapshot2=str("snapshot_frame_"+str(7)) print (snapshot2) snapshot3=str("snapshot_frame_"+str(8)) print (snapshot3) snapshot4=str("snapshot_frame_"+str(9)) print (snapshot4) snapshot5=str("snapshot_frame_"+str(10)) print (snapshot5) snapshot6=str("snapshot_frame_"+str(11)) print (snapshot6) snapshot7=str("snapshot_frame_"+str(12)) print (snapshot7) gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.sys.recalculate_project (with_reports=False) #Immagine 1 Z+ gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (44.3655706, 31.53865025, 31.06736641), use_animation=False, view_direction=gom.Vec3d (0.0, 0.0, 1.0), widget='3d_view') def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=[snapshot1, 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.170'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') #Immagine 2 Y+ gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (-49.24919891, 5.257396698, -137.2389908), use_animation=False, view_direction=gom.Vec3d (0.0, 1.0, 0.0), widget='3d_view') #gom.script.view.adapt_zoom (use_animation=False) def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=['snapshot_frame_6', 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.171'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') gom.script.sys.cut_to_clipboard (elements=[gom.app.project.reports[report2].pages['page 1'].elements['snapshot_frame_6']]) gom.script.sys.paste_from_clipboard (destination=[gom.app.project.reports[report].pages['page 1'].elements['rectangle_3']]) gom.script.report.edit_properties ( data=[gom.app.project.reports[report].pages['page 1'].elements[snapshot2]], origin=gom.Vec2d (140.2476049, 48.28346194)) gom.script.report.update_report_page ( pages=[gom.app.project.reports[report]], used_alignments='report', used_digits='report', used_legends='report', used_stages='report', used_units='report') gom.script.cad.delete_element ( elements=[gom.app.project.reports[report2]], with_measuring_principle=True) #Immagine 3 X+ gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (-49.24919891, 5.257396698, -137.2389908), use_animation=False, view_direction=gom.Vec3d (1.0, 0.0, 0.0), widget='3d_view') #gom.script.view.adapt_zoom (use_animation=False) def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=['snapshot_frame_6', 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.171'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') gom.script.sys.cut_to_clipboard (elements=[gom.app.project.reports[report2].pages['page 1'].elements['snapshot_frame_6']]) gom.script.sys.paste_from_clipboard (destination=[gom.app.project.reports[report].pages['page 1'].elements['rectangle_3']]) gom.script.report.edit_properties ( data=[gom.app.project.reports[report].pages['page 1'].elements[snapshot3]], origin=gom.Vec2d (232.9476049, 47.95733585)) gom.script.report.update_report_page ( pages=[gom.app.project.reports[report]], used_alignments='report', used_digits='report', used_legends='report', used_stages='report', used_units='report') gom.script.cad.delete_element ( elements=[gom.app.project.reports[report2]], with_measuring_principle=True) #Immagine 4 Z- gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (-49.24919891, 5.257396698, -137.2389908), use_animation=False, view_direction=gom.Vec3d (0.0, 0.0, -1.0), widget='3d_view') #gom.script.view.adapt_zoom (use_animation=False) def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=['snapshot_frame_6', 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.171'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') gom.script.sys.cut_to_clipboard (elements=[gom.app.project.reports[report2].pages['page 1'].elements['snapshot_frame_6']]) gom.script.sys.paste_from_clipboard (destination=[gom.app.project.reports[report].pages['page 1'].elements['rectangle_3']]) gom.script.report.edit_properties ( data=[gom.app.project.reports[report].pages['page 1'].elements[snapshot4]], origin=gom.Vec2d (47.54760486, 127.6845664)) gom.script.report.update_report_page ( pages=[gom.app.project.reports[report]], used_alignments='report', used_digits='report', used_legends='report', used_stages='report', used_units='report') gom.script.cad.delete_element ( elements=[gom.app.project.reports[report2]], with_measuring_principle=True) #Immagine 5 Y- gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (-49.24919891, 5.257396698, -137.2389908), use_animation=False, view_direction=gom.Vec3d (0.0, -1.0, 0.0), widget='3d_view') #gom.script.view.adapt_zoom (use_animation=False) def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=['snapshot_frame_6', 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.171'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') gom.script.sys.cut_to_clipboard (elements=[gom.app.project.reports[report2].pages['page 1'].elements['snapshot_frame_6']]) gom.script.sys.paste_from_clipboard (destination=[gom.app.project.reports[report].pages['page 1'].elements['rectangle_3']]) gom.script.report.edit_properties ( data=[gom.app.project.reports[report].pages['page 1'].elements[snapshot5]], origin=gom.Vec2d (140.2476049, 127.6845664)) gom.script.report.update_report_page ( pages=[gom.app.project.reports[report]], used_alignments='report', used_digits='report', used_legends='report', used_stages='report', used_units='report') gom.script.cad.delete_element ( elements=[gom.app.project.reports[report2]], with_measuring_principle=True) #Immagine 6 Z- gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[n]]) gom.script.view.set_view_direction_and_up_direction ( rotation_center=gom.Vec3d (-49.24919891, 5.257396698, -137.2389908), use_animation=False, view_direction=gom.Vec3d (-1.0, 0.0, 0.0), widget='3d_view') #gom.script.view.adapt_zoom (use_animation=False) def zoom(percent,**kwargs): """ param1: Use:Required Type:float or int e.g. 10 or 2.5 Kwarg1: Use:Required Type:String Key:dir Value(s):in or out e.g. \'in\' or \'out\' Kwarg2: Use:Optional Type:bool Key:adapt Value(s):True or False Default: False Example Usage(s): Zoom out 10% after applying adaptive zoom zoom(10,dir=\'out\',adapt=True) Zoom in 15.5%, no adaptive zoom applied zoom(15.5,dir=\'in\') """ if len(kwargs.keys()) == 2: adapt = kwargs['adapt'] else: adapt = False if kwargs['dir'] == 'out': scale_factor = 1 + (percent/100) elif kwargs['dir'] == 'in': scale_factor = 1 - (percent/100) else: print("You did not specifiy a zoom direction") return # adapt zoom if adapt == True: gom.script.view.adapt_zoom (use_animation=False) # get the actual view pos = [gom.app.get( 'views.active.position.' + i ) for i in ( 'x', 'y', 'z' )] scale = gom.app.get ( 'views.active.scale' ) up = [gom.app.get( 'views.active.up_direction.' + i ) for i in ( 'x', 'y', 'z' )] view = [gom.app.get( 'views.active.view_direction.' + i ) for i in ( 'x', 'y', 'z' )] # zoom out a little bit scale = scale_factor * scale # write the new view back gom.script.view.set_view_cartesian ( camera_position = gom.Vec3d ( pos[0], pos[1], pos[2] ), scale = scale, up_direction = gom.Vec3d ( up[0], up[1], up[2] ), use_animation = True, view_direction = gom.Vec3d ( view[0], view[1], view[2] )) if __name__ == '__main__': #example zoom in 60 percent with adaptive zoom zoom(zoom_level,dir='in',adapt = True) gom.script.view.show_legend (enable=False) gom.script.report.create_report_page ( animated_page=False, animation=['snapshot_frame_6', 'Along line "", 10.0s'], imitate_fit_mode='overwrite', master_name='Report Bitron_a4', template_name='Report Riavvio Pressa', template_orientation='landscape', template_package={'name': 'Bitron', 'uuid': '11a448bd-b5a9-4f56-acfe-5d55966554dc', 'version': '1.0.171'}, title='$format (page_number, "", show_unit=false, date_format=\'dd/MM/yyyy\')$ - $format (number_of_pages, "", show_unit=false, date_format=\'dd/MM/yyyy\')$') gom.script.sys.cut_to_clipboard (elements=[gom.app.project.reports[report2].pages['page 1'].elements['snapshot_frame_6']]) gom.script.sys.paste_from_clipboard (destination=[gom.app.project.reports[report].pages['page 1'].elements['rectangle_3']]) gom.script.report.edit_properties ( data=[gom.app.project.reports[report].pages['page 1'].elements[snapshot6]], origin=gom.Vec2d (232.9476049, 127.3584403)) gom.script.report.update_report_page ( pages=[gom.app.project.reports[report]], used_alignments='report', used_digits='report', used_legends='report', used_stages='report', used_units='report') gom.script.cad.delete_element ( elements=[gom.app.project.reports[report2]], with_measuring_principle=True) for causale in causali: if causale in riferimento: print("Trovato:", causale) riferimento_project_name=riferimento.split(causale)[0]+causale print (riferimento_project_name) break for causale in causali: if causale in controllo: print("Trovato:", causale) controllo_project_name=controllo.split(causale)[0]+causale print (controllo_project_name) break project_name=controllo_project_name+"_su_"+riferimento_project_name+".ginspect" print (project_name) filepath=gom.app.project.parts[0].actual.import_information.file # Otteniamo il percorso completo della cartella contenente il file dir_path = os.path.dirname(filepath) # Naviga indietro di un livello per arrivare alla cartella contenente la data parent_dir = os.path.abspath(os.path.join(dir_path, os.pardir)) # Aggiungiamo la sotto-cartella "Analisi" al percorso della cartella contenente la data project_dir = os.path.join(parent_dir, "Analisi\\Vecchio_Nuovo") if reparto==2 or reparto==3: project_dir = os.path.join(parent_dir, "WRP\\Vecchio_Nuovo") # Stampiamo il percorso completo della cartella "Analisi" print(project_dir) if not os.path.exists(project_dir): os.makedirs(project_dir) project_save=os.path.join(project_dir, project_name) print (project_save) gom.script.sys.save_project_as ( file_name=project_save, open_in_presentation_mode=False) pdf_name = os.path.splitext(project_name)[0] + ".pdf" print (pdf_name) # Aggiungiamo la sotto-cartella "Report" al percorso della cartella contenente la data pdf_dir = os.path.join(os.path.dirname(parent_dir), "00_Report\\Vecchio_Nuovo") if reparto==2 or reparto==3: pdf_dir = os.path.join(project_dir)#, "\\Vecchio_Nuovo") if not os.path.exists(pdf_dir): os.makedirs(pdf_dir) pdf_save=os.path.join(pdf_dir, pdf_name) print (pdf_save) # Verifica se il file PDF è aperto da un altro utente while True: try: if not os.path.isfile(pdf_save): # Il file non esiste, esegui l'esportazione del PDF gom.script.report.export_pdf( export_all_reports=True, file=pdf_save, jpeg_quality_in_percent=90, max_dpi=150 ) print("Il file PDF è stato creato con successo!") break # Il file esiste, verifica se è aperto da un altro utente try: os.rename(pdf_save, pdf_save) except PermissionError: # Il file è aperto da un altro utente print("Il file PDF è aperto da un altro utente.") DIALOG=gom.script.sys.create_user_defined_dialog (content='<dialog>' \ ' <title>Message</title>' \ ' <style></style>' \ ' <control id="OkCancel"/>' \ ' <position>automatic</position>' \ ' <embedding>always_toplevel</embedding>' \ ' <sizemode>automatic</sizemode>' \ ' <size height="172" width="367"/>' \ ' <content rows="1" columns="1">' \ ' <widget columnspan="1" row="0" type="display::text" column="0" rowspan="1">' \ ' <name>text</name>' \ ' <tooltip></tooltip>' \ ' <text><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">' \ '<html><head><meta name="qrichtext" content="1" /><style type="text/css">' \ 'p, li { white-space: pre-wrap; }' \ '</style></head><body style=" ">' \ '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:16pt;">Il PDF è aperto da un altro utente.</span></p>' \ '<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:16pt;">Chiudilo e premi OK.</span></p></body></html></text>' \ ' <wordwrap>false</wordwrap>' \ ' </widget>' \ ' </content>' \ '</dialog>') # # Event handler function called if anything happens inside of the dialog # def dialog_event_handler (widget): pass DIALOG.handler = dialog_event_handler RESULT=gom.script.sys.show_user_defined_dialog (dialog=DIALOG) #input("Chiudi il PDF e premi INVIO per continuare...") continue # Sovrascrivi il file PDF gom.script.report.export_pdf( export_all_reports=True, file=pdf_save, jpeg_quality_in_percent=90, max_dpi=150 ) print("Il file PDF è stato creato con successo!") break except Exception as e: print("Si è verificato un errore durante l'esportazione del file PDF:", str(e)) if reparto!=2 and reparto!=3: report_quarep_dir="F:\\Controlli_"+reparto_minuscolo+"\\Controlli" codice=(gom.app.project.project_name).split("_")[0] print (codice) target_dir = os.path.join(report_quarep_dir, codice) print (target_dir) if not os.path.exists(target_dir): os.makedirs(target_dir) shutil.copy2(pdf_save, target_dir) os.startfile(pdf_save) Link to comment Share on other sites More sharing options...
[Aa...] Posted March 22 Author Share Posted March 22 Thank you Marco, I think that will help me a lot. Link to comment Share on other sites More sharing options...
[Ma...] Posted March 25 Share Posted March 25 I'm happy if this is useful for someone! Link to comment Share on other sites More sharing options...
[태호...] Posted Tuesday at 03:44 PM Share Posted Tuesday at 03:44 PM Puoi dirmi come usarlo? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in