GridCal 5.1.43__tar.gz → 5.1.46__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +2 -2
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +8 -9
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +57 -31
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +30 -9
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +101 -13
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +3 -1
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -81
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +6 -2
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/base_diagram_widget.py +9 -9
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/MainWindow.py +13 -7
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Model/time_events.py +13 -7
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/__version__.py +1 -1
- {GridCal-5.1.43 → GridCal-5.1.46}/PKG-INFO +1 -1
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/SubClasses/simulations.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/console_widget.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/general_dialogues.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/gui_functions.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/results_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/wrappable_table_model.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/plugins.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/templates.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/GridCal/update.py +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/setup.cfg +0 -0
- {GridCal-5.1.43 → GridCal-5.1.46}/setup.py +0 -0
{GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
@@ -122,7 +122,7 @@ class MapLineContainer(GenericDiagramWidget):
|
|
122
122
|
"""
|
123
123
|
self.segments_list.append(segment)
|
124
124
|
|
125
|
-
def set_colour(self, color: QColor,
|
125
|
+
def set_colour(self, color: QColor, style: Qt.PenStyle, tool_tip: str = '') -> None:
|
126
126
|
"""
|
127
127
|
Set color and style
|
128
128
|
:param color: QColor instance
|
@@ -133,7 +133,7 @@ class MapLineContainer(GenericDiagramWidget):
|
|
133
133
|
"""
|
134
134
|
for segment in self.segments_list:
|
135
135
|
segment.setToolTip(tool_tip)
|
136
|
-
segment.set_colour(color=color,
|
136
|
+
segment.set_colour(color=color, style=style)
|
137
137
|
|
138
138
|
def update_connectors(self) -> None:
|
139
139
|
"""
|
{GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -76,7 +76,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
76
76
|
self.first.add_position_change_callback(self.set_from_side_coordinates)
|
77
77
|
self.second.add_position_change_callback(self.set_to_side_coordinates)
|
78
78
|
|
79
|
-
self.set_colour(self.color, self.
|
79
|
+
self.set_colour(self.color, self.style)
|
80
80
|
self.update_endings()
|
81
81
|
self.needsUpdate = True
|
82
82
|
self.setZValue(0)
|
@@ -115,7 +115,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
115
115
|
self.arrow_p_to.label.setScale(width)
|
116
116
|
self.arrow_q_to.label.setScale(width)
|
117
117
|
|
118
|
-
def set_colour(self, color: QColor,
|
118
|
+
def set_colour(self, color: QColor, style: Qt.PenStyle):
|
119
119
|
"""
|
120
120
|
Set color and style
|
121
121
|
:param color: QColor instance
|
@@ -124,14 +124,13 @@ class MapLineSegment(QGraphicsLineItem):
|
|
124
124
|
:return:
|
125
125
|
"""
|
126
126
|
|
127
|
-
pen = QPen(color,
|
128
|
-
pen.setWidthF(w)
|
127
|
+
pen = QPen(color, self.width, style, Qt.PenCapStyle.RoundCap, Qt.PenJoinStyle.RoundJoin)
|
129
128
|
|
130
129
|
self.setPen(pen)
|
131
|
-
self.arrow_p_from.set_colour(color, w, style)
|
132
|
-
self.arrow_q_from.set_colour(color, w, style)
|
133
|
-
self.arrow_p_to.set_colour(color, w, style)
|
134
|
-
self.arrow_q_to.set_colour(color, w, style)
|
130
|
+
self.arrow_p_from.set_colour(color, self.arrow_p_from.w, style)
|
131
|
+
self.arrow_q_from.set_colour(color, self.arrow_q_from.w, style)
|
132
|
+
self.arrow_p_to.set_colour(color, self.arrow_p_to.w, style)
|
133
|
+
self.arrow_q_to.set_colour(color, self.arrow_q_to.w, style)
|
135
134
|
|
136
135
|
def set_from_side_coordinates(self, x: float, y: float):
|
137
136
|
"""
|
@@ -286,7 +285,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
286
285
|
self.color = OTHER['color']
|
287
286
|
|
288
287
|
# Set pen for everyone
|
289
|
-
self.set_colour(self.color, self.
|
288
|
+
self.set_colour(self.color, self.style)
|
290
289
|
|
291
290
|
def enable_disable_label_drawing(self):
|
292
291
|
"""
|
@@ -84,9 +84,9 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
84
84
|
self.setAcceptHoverEvents(True)
|
85
85
|
|
86
86
|
# Allow selecting the node
|
87
|
-
self.setFlag(self.GraphicsItemFlag.ItemIsSelectable |
|
87
|
+
self.setFlag(self.GraphicsItemFlag.ItemIsSelectable | self.GraphicsItemFlag.ItemIsMovable)
|
88
88
|
|
89
|
-
self.setCursor(QCursor(Qt.PointingHandCursor))
|
89
|
+
self.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
90
90
|
|
91
91
|
# Create a pen with reduced line width
|
92
92
|
self.change_pen_width(0.5)
|
@@ -113,6 +113,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
113
113
|
rect = self.rect()
|
114
114
|
rect.setWidth(r)
|
115
115
|
rect.setHeight(r)
|
116
|
+
self.radius = r
|
116
117
|
|
117
118
|
# change the width and height while keeping the same center
|
118
119
|
r2 = r / 2
|
@@ -121,8 +122,8 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
121
122
|
|
122
123
|
# Set the new rectangle with the updated dimensions
|
123
124
|
self.setRect(new_x, new_y, r, r)
|
124
|
-
self.radius = r
|
125
125
|
|
126
|
+
# update the callbacks position for the lines to move accordingly
|
126
127
|
self.set_callabacks(new_x + r2, new_y + r2)
|
127
128
|
|
128
129
|
for vl_graphics in self.voltage_level_graphics:
|
@@ -130,7 +131,21 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
130
131
|
|
131
132
|
self.update_diagram()
|
132
133
|
|
133
|
-
def
|
134
|
+
def resize_voltage_levels(self):
|
135
|
+
"""
|
136
|
+
|
137
|
+
:return:
|
138
|
+
"""
|
139
|
+
max_vl = 1.0 # 1 KV
|
140
|
+
for vl_graphics in self.voltage_level_graphics:
|
141
|
+
max_vl = max(max_vl, vl_graphics.api_object.Vnom)
|
142
|
+
|
143
|
+
for vl_graphics in self.voltage_level_graphics:
|
144
|
+
# radius here is the width, therefore we need to send W/2
|
145
|
+
scale = vl_graphics.api_object.Vnom / max_vl * 0.5
|
146
|
+
vl_graphics.set_size(r=self.radius * scale)
|
147
|
+
|
148
|
+
def set_api_object_color(self) -> None:
|
134
149
|
"""
|
135
150
|
Gather the API object color and update this objects
|
136
151
|
"""
|
@@ -169,12 +184,20 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
169
184
|
"""
|
170
185
|
Set the Zorder based on the voltage level voltage
|
171
186
|
"""
|
172
|
-
#
|
173
|
-
|
187
|
+
max_vl = 1.0 # 1 KV
|
188
|
+
for vl_graphics in self.voltage_level_graphics:
|
189
|
+
max_vl = max(max_vl, vl_graphics.api_object.Vnom)
|
190
|
+
|
191
|
+
for vl_graphics in self.voltage_level_graphics:
|
192
|
+
scale = vl_graphics.api_object.Vnom / max_vl * 0.8
|
193
|
+
vl_graphics.set_size(r=self.radius * scale)
|
194
|
+
vl_graphics.center_on_substation()
|
195
|
+
|
196
|
+
sorted_objects = sorted(self.voltage_level_graphics, key=lambda x: -x.api_object.Vnom)
|
174
197
|
for i, vl_graphics in enumerate(sorted_objects):
|
175
198
|
vl_graphics.setZValue(i)
|
176
199
|
|
177
|
-
def update_diagram(self):
|
200
|
+
def update_diagram(self) -> None:
|
178
201
|
"""
|
179
202
|
Updates the element position in the diagram (to save)
|
180
203
|
:return:
|
@@ -246,7 +269,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
246
269
|
# self.editor.map.view.in_item = True
|
247
270
|
self.set_color(self.hoover_color, self.color)
|
248
271
|
self.hovered = True
|
249
|
-
QApplication.instance().setOverrideCursor(Qt.PointingHandCursor)
|
272
|
+
QApplication.instance().setOverrideCursor(Qt.CursorShape.PointingHandCursor)
|
250
273
|
|
251
274
|
def hoverLeaveEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None:
|
252
275
|
"""
|
@@ -266,34 +289,39 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
266
289
|
|
267
290
|
add_menu_entry(menu=menu,
|
268
291
|
text="Add voltage level",
|
269
|
-
icon_path="",
|
292
|
+
icon_path=":/Icons/icons/plus.svg",
|
270
293
|
function_ptr=self.add_voltage_level)
|
271
294
|
|
272
295
|
add_menu_entry(menu=menu,
|
273
296
|
text="Create line from here",
|
274
|
-
icon_path="",
|
297
|
+
icon_path=":/Icons/icons/plus.svg",
|
275
298
|
function_ptr=self.create_new_line)
|
276
299
|
|
277
300
|
add_menu_entry(menu=menu,
|
278
|
-
text="
|
279
|
-
icon_path="",
|
301
|
+
text="Set coordinates to DB",
|
302
|
+
icon_path=":/Icons/icons/down.svg",
|
280
303
|
function_ptr=self.move_to_api_coordinates)
|
281
304
|
|
282
305
|
add_menu_entry(menu=menu,
|
283
|
-
text="Remove",
|
284
|
-
icon_path="",
|
306
|
+
text="Remove from schematic",
|
307
|
+
icon_path=":/Icons/icons/delete_schematic.svg",
|
285
308
|
function_ptr=self.remove_function)
|
286
309
|
|
287
|
-
add_menu_entry(menu=menu,
|
288
|
-
|
289
|
-
|
290
|
-
|
310
|
+
# add_menu_entry(menu=menu,
|
311
|
+
# text="ADD node",
|
312
|
+
# icon_path=":/Icons/icons/plus.svg",
|
313
|
+
# function_ptr=self.add_function)
|
291
314
|
|
292
315
|
add_menu_entry(menu=menu,
|
293
316
|
text="Show diagram",
|
294
|
-
icon_path="",
|
317
|
+
icon_path=":/Icons/icons/grid_icon.svg",
|
295
318
|
function_ptr=self.new_substation_diagram)
|
296
319
|
|
320
|
+
add_menu_entry(menu=menu,
|
321
|
+
text="Plot",
|
322
|
+
icon_path=":/Icons/icons/plot.svg",
|
323
|
+
function_ptr=self.plot)
|
324
|
+
|
297
325
|
menu.exec_(event.screenPos())
|
298
326
|
|
299
327
|
def create_new_line(self):
|
@@ -343,7 +371,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
343
371
|
"Remove substation graphics")
|
344
372
|
|
345
373
|
if ok:
|
346
|
-
self.editor.removeSubstation(self)
|
374
|
+
self.editor.removeSubstation(substation=self)
|
347
375
|
|
348
376
|
def move_to_api_coordinates(self):
|
349
377
|
"""
|
@@ -364,6 +392,13 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
364
392
|
"""
|
365
393
|
self.editor.new_substation_diagram(substation=self.api_object)
|
366
394
|
|
395
|
+
def plot(self):
|
396
|
+
"""
|
397
|
+
Plot the substations data
|
398
|
+
"""
|
399
|
+
i = self.editor.circuit.get_substations().index(self.api_object)
|
400
|
+
self.editor.plot_substation(i, self.api_object)
|
401
|
+
|
367
402
|
def add_voltage_level(self) -> None:
|
368
403
|
"""
|
369
404
|
Add Voltage Level
|
@@ -392,9 +427,8 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
392
427
|
|
393
428
|
self.editor.circuit.add_voltage_level(vl)
|
394
429
|
self.editor.circuit.add_bus(obj=bus)
|
395
|
-
|
396
|
-
self.
|
397
|
-
api_object=vl)
|
430
|
+
self.editor.add_api_voltage_level(substation_graphics=self, api_object=vl)
|
431
|
+
self.sort_voltage_levels()
|
398
432
|
|
399
433
|
def set_color(self, inner_color: QColor = None, border_color: QColor = None) -> None:
|
400
434
|
"""
|
@@ -433,14 +467,6 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
433
467
|
|
434
468
|
return center_point
|
435
469
|
|
436
|
-
# def resize(self, new_radius: float) -> None:
|
437
|
-
# """
|
438
|
-
# Resize the node.
|
439
|
-
# :param new_radius: New radius for the node.
|
440
|
-
# """
|
441
|
-
# self.radius = new_radius
|
442
|
-
# self.setRect(self.x - new_radius, self.y - new_radius, new_radius * 2, new_radius * 2)
|
443
|
-
|
444
470
|
def change_pen_width(self, width: float) -> None:
|
445
471
|
"""
|
446
472
|
Change the pen width for the node.
|
@@ -26,7 +26,6 @@ from GridCal.Gui.gui_functions import add_menu_entry
|
|
26
26
|
|
27
27
|
from GridCalEngine.Devices.Substation.voltage_level import VoltageLevel
|
28
28
|
from GridCalEngine.Devices.Substation.bus import Bus
|
29
|
-
from GridCalEngine.enumerations import DeviceType
|
30
29
|
|
31
30
|
if TYPE_CHECKING: # Only imports the below statements during type checking
|
32
31
|
from GridCal.Gui.Diagrams.MapWidget.grid_map_widget import GridMapWidget
|
@@ -64,21 +63,25 @@ class VoltageLevelGraphicItem(GenericDiagramWidget, QGraphicsEllipseItem):
|
|
64
63
|
api_object=api_object,
|
65
64
|
editor=editor,
|
66
65
|
draw_labels=draw_labels)
|
67
|
-
QGraphicsEllipseItem.__init__(self,
|
68
|
-
|
66
|
+
QGraphicsEllipseItem.__init__(self,
|
67
|
+
parent_center.x(),
|
68
|
+
parent_center.y(),
|
69
|
+
r * api_object.Vnom * 0.01,
|
70
|
+
r * api_object.Vnom * 0.01,
|
71
|
+
parent)
|
69
72
|
|
70
73
|
parent.register_voltage_level(vl=self)
|
71
74
|
|
72
75
|
self.editor: GridMapWidget = editor # to reinforce the type
|
76
|
+
|
73
77
|
self.api_object: VoltageLevel = api_object # to reinforce the type
|
74
78
|
|
75
79
|
self.radius = r * api_object.Vnom * 0.01
|
76
|
-
# print(f"VL created at x:{parent_center.x()}, y:{parent_center.y()}")
|
77
80
|
|
78
81
|
self.setAcceptHoverEvents(True) # Enable hover events for the item
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
|
83
|
+
# Allow moving the node
|
84
|
+
self.setFlag(self.GraphicsItemFlag.ItemIsSelectable | self.GraphicsItemFlag.ItemIsMovable)
|
82
85
|
|
83
86
|
# Create a pen with reduced line width
|
84
87
|
self.change_pen_width(0.5)
|
@@ -114,6 +117,26 @@ class VoltageLevelGraphicItem(GenericDiagramWidget, QGraphicsEllipseItem):
|
|
114
117
|
self.setRect(x, y, self.rect().width(), self.rect().height())
|
115
118
|
return x, y
|
116
119
|
|
120
|
+
def set_size(self, r: float):
|
121
|
+
"""
|
122
|
+
|
123
|
+
:param r: radius in pixels
|
124
|
+
:return:
|
125
|
+
"""
|
126
|
+
# if r != self.radius:
|
127
|
+
rect = self.rect()
|
128
|
+
rect.setWidth(r)
|
129
|
+
rect.setHeight(r)
|
130
|
+
self.radius = r
|
131
|
+
|
132
|
+
# change the width and height while keeping the same center
|
133
|
+
r2 = r / 2
|
134
|
+
new_x = rect.x() - r2
|
135
|
+
new_y = rect.y() - r2
|
136
|
+
|
137
|
+
# Set the new rectangle with the updated dimensions
|
138
|
+
self.setRect(new_x, new_y, r, r)
|
139
|
+
|
117
140
|
def updateDiagram(self) -> None:
|
118
141
|
"""
|
119
142
|
|
@@ -124,8 +147,6 @@ class VoltageLevelGraphicItem(GenericDiagramWidget, QGraphicsEllipseItem):
|
|
124
147
|
lat, long = self.editor.to_lat_lon(x=center_point.x() + real_position.x(),
|
125
148
|
y=center_point.y() + real_position.y())
|
126
149
|
|
127
|
-
print(f'Updating VL position id:{self.api_object.idtag}, lat:{lat}, lon:{long}')
|
128
|
-
|
129
150
|
self.editor.update_diagram_element(device=self.api_object,
|
130
151
|
latitude=lat,
|
131
152
|
longitude=long,
|
@@ -20,6 +20,9 @@ from typing import Union, List, Tuple, Dict, TYPE_CHECKING
|
|
20
20
|
import json
|
21
21
|
import numpy as np
|
22
22
|
import math
|
23
|
+
import pandas as pd
|
24
|
+
from matplotlib import pyplot as plt
|
25
|
+
|
23
26
|
from PySide6.QtWidgets import QGraphicsItem
|
24
27
|
from collections.abc import Callable
|
25
28
|
from PySide6.QtSvg import QSvgGenerator
|
@@ -40,9 +43,11 @@ from GridCalEngine.Devices.Substation.substation import Substation
|
|
40
43
|
from GridCalEngine.Devices.Substation.voltage_level import VoltageLevel
|
41
44
|
from GridCalEngine.Devices.Branches.line_locations import LineLocation
|
42
45
|
from GridCalEngine.Devices.multi_circuit import MultiCircuit
|
43
|
-
from GridCalEngine.enumerations import DeviceType
|
46
|
+
from GridCalEngine.enumerations import DeviceType, ResultTypes
|
44
47
|
from GridCalEngine.Devices.types import ALL_DEV_TYPES
|
45
48
|
from GridCalEngine.basic_structures import Logger
|
49
|
+
from GridCalEngine.Simulations.OPF.opf_ts_results import OptimalPowerFlowTimeSeriesResults
|
50
|
+
from GridCalEngine.Simulations.PowerFlow.power_flow_ts_results import PowerFlowTimeSeriesResults
|
46
51
|
|
47
52
|
from GridCal.Gui.Diagrams.MapWidget.Branches.map_ac_line import MapAcLine
|
48
53
|
from GridCal.Gui.Diagrams.MapWidget.Branches.map_dc_line import MapDcLine
|
@@ -57,7 +62,7 @@ import GridCal.Gui.Visualization.visualization as viz
|
|
57
62
|
import GridCalEngine.Devices.Diagrams.palettes as palettes
|
58
63
|
from GridCal.Gui.Diagrams.graphics_manager import ALL_MAP_GRAPHICS
|
59
64
|
from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
60
|
-
from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget
|
65
|
+
from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget
|
61
66
|
from GridCal.Gui.messages import error_msg
|
62
67
|
|
63
68
|
if TYPE_CHECKING:
|
@@ -870,10 +875,9 @@ class GridMapWidget(BaseDiagramWidget):
|
|
870
875
|
"""
|
871
876
|
|
872
877
|
# SANTIAGO: NO TOCAR ESTO ES EL COMPORTAMIENTO DESEADO
|
873
|
-
|
874
878
|
self.update_device_sizes()
|
875
879
|
|
876
|
-
def
|
880
|
+
def get_branch_width(self):
|
877
881
|
"""
|
878
882
|
|
879
883
|
:return:
|
@@ -882,6 +886,13 @@ class GridMapWidget(BaseDiagramWidget):
|
|
882
886
|
min_zoom = self.map.min_level
|
883
887
|
zoom = self.map.zoom_factor
|
884
888
|
scale = self.diagram.min_branch_width + (zoom - min_zoom) / (max_zoom - min_zoom)
|
889
|
+
return scale
|
890
|
+
|
891
|
+
def update_device_sizes(self):
|
892
|
+
"""
|
893
|
+
|
894
|
+
:return:
|
895
|
+
"""
|
885
896
|
|
886
897
|
# rescale lines
|
887
898
|
for dev_tpe in [DeviceType.LineDevice,
|
@@ -889,14 +900,14 @@ class GridMapWidget(BaseDiagramWidget):
|
|
889
900
|
DeviceType.HVDCLineDevice,
|
890
901
|
DeviceType.FluidPathDevice]:
|
891
902
|
graphics_dict = self.graphics_manager.get_device_type_dict(device_type=dev_tpe)
|
892
|
-
for key,
|
893
|
-
|
903
|
+
for key, elm_graphics in graphics_dict.items():
|
904
|
+
elm_graphics.set_width_scale(self.get_branch_width())
|
894
905
|
|
895
906
|
# rescale substations
|
896
907
|
data: Dict[str, SubstationGraphicItem] = self.graphics_manager.get_device_type_dict(DeviceType.SubstationDevice)
|
897
|
-
for se_key,
|
898
|
-
|
899
|
-
|
908
|
+
for se_key, elm_graphics in data.items():
|
909
|
+
elm_graphics.set_api_object_color()
|
910
|
+
elm_graphics.set_size(r=self.diagram.min_bus_width)
|
900
911
|
|
901
912
|
def change_size_and_pen_width_all(self, new_radius, pen_width):
|
902
913
|
"""
|
@@ -1070,9 +1081,10 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1070
1081
|
weight = int(
|
1071
1082
|
np.floor(min_branch_width + Sfnorm[i] * (max_branch_width - min_branch_width) * 0.1))
|
1072
1083
|
else:
|
1073
|
-
weight =
|
1084
|
+
weight = self.get_branch_width()
|
1074
1085
|
|
1075
|
-
graphic_object.set_colour(color=color,
|
1086
|
+
graphic_object.set_colour(color=color, style=style, tool_tip=tooltip)
|
1087
|
+
graphic_object.set_width_scale(weight)
|
1076
1088
|
|
1077
1089
|
if hasattr(graphic_object, 'set_arrows_with_power'):
|
1078
1090
|
graphic_object.set_arrows_with_power(
|
@@ -1130,7 +1142,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1130
1142
|
weight = int(
|
1131
1143
|
np.floor(min_branch_width + Sfnorm[i] * (max_branch_width - min_branch_width) * 0.1))
|
1132
1144
|
else:
|
1133
|
-
weight =
|
1145
|
+
weight = self.get_branch_width()
|
1134
1146
|
|
1135
1147
|
tooltip = str(i) + ': ' + graphic_object.api_object.name
|
1136
1148
|
tooltip += '\n' + loading_label + ': ' + "{:10.4f}".format(
|
@@ -1145,7 +1157,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1145
1157
|
else:
|
1146
1158
|
graphic_object.set_arrows_with_hvdc_power(Pf=hvdc_Pf[i], Pt=-hvdc_Pf[i])
|
1147
1159
|
|
1148
|
-
graphic_object.set_colour(color=color,
|
1160
|
+
graphic_object.set_colour(color=color, style=style, tool_tip=tooltip)
|
1161
|
+
graphic_object.set_width_scale(weight)
|
1149
1162
|
|
1150
1163
|
def get_image(self, transparent: bool = False) -> QImage:
|
1151
1164
|
"""
|
@@ -1213,6 +1226,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1213
1226
|
logger=self.logger)
|
1214
1227
|
|
1215
1228
|
return GridMapWidget(
|
1229
|
+
gui=self.gui,
|
1216
1230
|
tile_src=self.map.tile_src,
|
1217
1231
|
start_level=self.diagram.start_level,
|
1218
1232
|
longitude=self.diagram.longitude,
|
@@ -1233,6 +1247,80 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1233
1247
|
gelm.api_object.latitude = gelm.lat
|
1234
1248
|
gelm.api_object.longitude = gelm.lon
|
1235
1249
|
|
1250
|
+
def plot_substation(self, i: int, api_object: Substation):
|
1251
|
+
"""
|
1252
|
+
Plot branch results
|
1253
|
+
:param i: bus index
|
1254
|
+
:param api_object: Substation API object
|
1255
|
+
:return:
|
1256
|
+
"""
|
1257
|
+
|
1258
|
+
fig = plt.figure(figsize=(12, 8))
|
1259
|
+
ax_1 = fig.add_subplot(211)
|
1260
|
+
ax_1.set_title('Power', fontsize=14)
|
1261
|
+
ax_1.set_ylabel('Injections [MW]', fontsize=11)
|
1262
|
+
|
1263
|
+
ax_2 = fig.add_subplot(212, sharex=ax_1)
|
1264
|
+
ax_2.set_title('Time', fontsize=14)
|
1265
|
+
ax_2.set_ylabel('Voltage [p.u]', fontsize=11)
|
1266
|
+
|
1267
|
+
# set time
|
1268
|
+
x = self.circuit.get_time_array()
|
1269
|
+
|
1270
|
+
if x is not None:
|
1271
|
+
if len(x) > 0:
|
1272
|
+
|
1273
|
+
# Get all devices grouped by bus
|
1274
|
+
all_data = self.circuit.get_injection_devices_grouped_by_substation()
|
1275
|
+
|
1276
|
+
# search drivers for voltage data
|
1277
|
+
for driver, results in self.gui.session.drivers_results_iter():
|
1278
|
+
if results is not None:
|
1279
|
+
if isinstance(results, PowerFlowTimeSeriesResults):
|
1280
|
+
table = results.mdl(result_type=ResultTypes.BusVoltageModule)
|
1281
|
+
table.plot_device(ax=ax_2, device_idx=i)
|
1282
|
+
elif isinstance(results, OptimalPowerFlowTimeSeriesResults):
|
1283
|
+
table = results.mdl(result_type=ResultTypes.BusVoltageModule)
|
1284
|
+
table.plot_device(ax=ax_2, device_idx=i)
|
1285
|
+
|
1286
|
+
# Injections
|
1287
|
+
# filter injections by bus
|
1288
|
+
bus_devices = all_data.get(api_object, None)
|
1289
|
+
if bus_devices:
|
1290
|
+
|
1291
|
+
power_data = dict()
|
1292
|
+
for tpe_name, devices in bus_devices.items():
|
1293
|
+
for device in devices:
|
1294
|
+
if device.device_type == DeviceType.LoadDevice:
|
1295
|
+
power_data[device.name] = -device.P_prof.toarray()
|
1296
|
+
elif device.device_type == DeviceType.GeneratorDevice:
|
1297
|
+
power_data[device.name] = device.P_prof.toarray()
|
1298
|
+
elif device.device_type == DeviceType.ShuntDevice:
|
1299
|
+
power_data[device.name] = -device.G_prof.toarray()
|
1300
|
+
elif device.device_type == DeviceType.StaticGeneratorDevice:
|
1301
|
+
power_data[device.name] = device.P_prof.toarray()
|
1302
|
+
elif device.device_type == DeviceType.ExternalGridDevice:
|
1303
|
+
power_data[device.name] = device.P_prof.toarray()
|
1304
|
+
elif device.device_type == DeviceType.BatteryDevice:
|
1305
|
+
power_data[device.name] = device.P_prof.toarray()
|
1306
|
+
else:
|
1307
|
+
raise Exception("Missing shunt device for plotting")
|
1308
|
+
|
1309
|
+
df = pd.DataFrame(data=power_data, index=x)
|
1310
|
+
|
1311
|
+
try:
|
1312
|
+
# yt area plots
|
1313
|
+
df.plot.area(ax=ax_1)
|
1314
|
+
except ValueError:
|
1315
|
+
# use regular plots
|
1316
|
+
df.plot(ax=ax_1)
|
1317
|
+
|
1318
|
+
plt.legend()
|
1319
|
+
fig.suptitle(api_object.name, fontsize=20)
|
1320
|
+
|
1321
|
+
# plot the profiles
|
1322
|
+
plt.show()
|
1323
|
+
|
1236
1324
|
|
1237
1325
|
def generate_map_diagram(substations: List[Substation],
|
1238
1326
|
voltage_levels: List[VoltageLevel],
|
@@ -124,7 +124,7 @@ class MapView(QGraphicsView):
|
|
124
124
|
# Create a QGraphicsProxyWidget for the QLabel
|
125
125
|
self.label_proxy_widget = QGraphicsProxyWidget()
|
126
126
|
self.label_proxy_widget.setWidget(self.attribution_label)
|
127
|
-
self.label_proxy_widget.setFlag(QGraphicsItem.ItemIgnoresTransformations)
|
127
|
+
self.label_proxy_widget.setFlag(QGraphicsItem.GraphicsItemFlag.ItemIgnoresTransformations)
|
128
128
|
self.update_label_position()
|
129
129
|
|
130
130
|
# Add the proxy widget to the scene
|
@@ -150,6 +150,8 @@ class MapView(QGraphicsView):
|
|
150
150
|
|
151
151
|
self.scale(initial_zoom_factor, initial_zoom_factor)
|
152
152
|
|
153
|
+
self.setRenderHints(QPainter.RenderHint.Antialiasing | QPainter.RenderHint.SmoothPixmapTransform)
|
154
|
+
|
153
155
|
def set_notice(self, val: str):
|
154
156
|
"""
|
155
157
|
|
{GridCal-5.1.43 → GridCal-5.1.46}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py
RENAMED
@@ -452,87 +452,6 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
|
|
452
452
|
icon_path=":/Icons/icons/plot.svg",
|
453
453
|
function_ptr=self.plot_profiles)
|
454
454
|
|
455
|
-
|
456
|
-
# arr = menu.addAction('Arrange')
|
457
|
-
# arr_icon = QIcon()
|
458
|
-
# arr_icon.addPixmap(QPixmap(":/Icons/icons/automatic_layout.svg"))
|
459
|
-
# arr.setIcon(arr_icon)
|
460
|
-
# arr.triggered.connect(self.arrange_children)
|
461
|
-
#
|
462
|
-
# ra5 = menu.addAction('Assign active state to profile')
|
463
|
-
# ra5_icon = QIcon()
|
464
|
-
# ra5_icon.addPixmap(QPixmap(":/Icons/icons/assign_to_profile.svg"))
|
465
|
-
# ra5.setIcon(ra5_icon)
|
466
|
-
# ra5.triggered.connect(self.assign_status_to_profile)
|
467
|
-
#
|
468
|
-
# ra3 = menu.addAction('Delete all the connections')
|
469
|
-
# del2_icon = QIcon()
|
470
|
-
# del2_icon.addPixmap(QPixmap(":/Icons/icons/delete_conn.svg"))
|
471
|
-
# ra3.setIcon(del2_icon)
|
472
|
-
# ra3.triggered.connect(self.delete_all_connections)
|
473
|
-
#
|
474
|
-
# da = menu.addAction('Delete')
|
475
|
-
# del_icon = QIcon()
|
476
|
-
# del_icon.addPixmap(QPixmap(":/Icons/icons/delete_db.svg"))
|
477
|
-
# da.setIcon(del_icon)
|
478
|
-
# da.triggered.connect(self.remove)
|
479
|
-
#
|
480
|
-
# re = menu.addAction('Expand schematic')
|
481
|
-
# re_icon = QIcon()
|
482
|
-
# re_icon.addPixmap(QPixmap(":/Icons/icons/grid_icon.svg"))
|
483
|
-
# re.setIcon(re_icon)
|
484
|
-
# re.triggered.connect(self.expand_diagram_from_bus)
|
485
|
-
#
|
486
|
-
# menu.addSection("Add")
|
487
|
-
#
|
488
|
-
# al = menu.addAction('Load')
|
489
|
-
# al_icon = QIcon()
|
490
|
-
# al_icon.addPixmap(QPixmap(":/Icons/icons/add_load.svg"))
|
491
|
-
# al.setIcon(al_icon)
|
492
|
-
# al.triggered.connect(self.add_load)
|
493
|
-
#
|
494
|
-
# ac_i = menu.addAction('Current injection')
|
495
|
-
# ac_i_icon = QIcon()
|
496
|
-
# ac_i_icon.addPixmap(QPixmap(":/Icons/icons/add_load.svg"))
|
497
|
-
# ac_i.setIcon(ac_i_icon)
|
498
|
-
# ac_i.triggered.connect(self.add_current_injection)
|
499
|
-
#
|
500
|
-
# ash = menu.addAction('Shunt')
|
501
|
-
# ash_icon = QIcon()
|
502
|
-
# ash_icon.addPixmap(QPixmap(":/Icons/icons/add_shunt.svg"))
|
503
|
-
# ash.setIcon(ash_icon)
|
504
|
-
# ash.triggered.connect(self.add_shunt)
|
505
|
-
#
|
506
|
-
# acsh = menu.addAction('Controllable shunt')
|
507
|
-
# acsh_icon = QIcon()
|
508
|
-
# acsh_icon.addPixmap(QPixmap(":/Icons/icons/add_shunt.svg"))
|
509
|
-
# acsh.setIcon(acsh_icon)
|
510
|
-
# acsh.triggered.connect(self.add_controllable_shunt)
|
511
|
-
#
|
512
|
-
# acg = menu.addAction('Generator')
|
513
|
-
# acg_icon = QIcon()
|
514
|
-
# acg_icon.addPixmap(QPixmap(":/Icons/icons/add_gen.svg"))
|
515
|
-
# acg.setIcon(acg_icon)
|
516
|
-
# acg.triggered.connect(self.add_generator)
|
517
|
-
#
|
518
|
-
# asg = menu.addAction('Static generator')
|
519
|
-
# asg_icon = QIcon()
|
520
|
-
# asg_icon.addPixmap(QPixmap(":/Icons/icons/add_stagen.svg"))
|
521
|
-
# asg.setIcon(asg_icon)
|
522
|
-
# asg.triggered.connect(self.add_static_generator)
|
523
|
-
#
|
524
|
-
# ab = menu.addAction('Battery')
|
525
|
-
# ab_icon = QIcon()
|
526
|
-
# ab_icon.addPixmap(QPixmap(":/Icons/icons/add_batt.svg"))
|
527
|
-
# ab.setIcon(ab_icon)
|
528
|
-
# ab.triggered.connect(self.add_battery)
|
529
|
-
#
|
530
|
-
# aeg = menu.addAction('External grid')
|
531
|
-
# aeg_icon = QIcon()
|
532
|
-
# aeg_icon.addPixmap(QPixmap(":/Icons/icons/add_external_grid.svg"))
|
533
|
-
# aeg.setIcon(aeg_icon)
|
534
|
-
# aeg.triggered.connect(self.add_external_grid)
|
535
|
-
|
536
455
|
add_menu_entry(menu,
|
537
456
|
text='Arrange',
|
538
457
|
icon_path=":/Icons/icons/automatic_layout.svg",
|
@@ -53,7 +53,8 @@ from GridCalEngine.Devices.Injections.generator import Generator
|
|
53
53
|
from GridCalEngine.Devices.Fluid import FluidNode, FluidPath
|
54
54
|
from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram
|
55
55
|
from GridCalEngine.Devices.Diagrams.graphic_location import GraphicLocation
|
56
|
-
from GridCalEngine.Simulations import
|
56
|
+
from GridCalEngine.Simulations.OPF.opf_ts_results import OptimalPowerFlowTimeSeriesResults
|
57
|
+
from GridCalEngine.Simulations.PowerFlow.power_flow_ts_results import PowerFlowTimeSeriesResults
|
57
58
|
from GridCalEngine.enumerations import DeviceType, ResultTypes
|
58
59
|
from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger
|
59
60
|
|
@@ -3736,7 +3737,10 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3736
3737
|
if results is not None:
|
3737
3738
|
if isinstance(results, PowerFlowTimeSeriesResults):
|
3738
3739
|
table = results.mdl(result_type=ResultTypes.BusVoltageModule)
|
3739
|
-
table.
|
3740
|
+
table.plot_device(ax=ax_2, device_idx=i)
|
3741
|
+
elif isinstance(results, OptimalPowerFlowTimeSeriesResults):
|
3742
|
+
table = results.mdl(result_type=ResultTypes.BusVoltageModule)
|
3743
|
+
table.plot_device(ax=ax_2, device_idx=i)
|
3740
3744
|
|
3741
3745
|
# Injections
|
3742
3746
|
# filter injections by bus
|