Skip to content

Commit 4e2a978

Browse files
Fix Installation.rst (#787)
* Fix Installation.rst * Update doc/source/Resources/Installation.rst Co-authored-by: Maxime Rey <[email protected]> * improved documentation * improved toolkit.py Co-authored-by: Maxime Rey <[email protected]>
1 parent f957f31 commit 4e2a978

File tree

3 files changed

+94
-29
lines changed

3 files changed

+94
-29
lines changed

doc/source/Resources/Installation.rst

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,23 @@ Installing Pyaedt from Bat File
4545
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4646
Ansys Electronics Desktop already includes a CPython 3.7 that could be used to run pyaedt.
4747
User can download the following batch file and run in local machine.
48+
49+
:download:`PyAEDT Environment with IDE bat file <pyaedt_with_IDE.bat>`
50+
4851
The batch file works on Windows and executes the following steps:
49-
1. Create a python virtual environment in your %APPDATA% folder. To do that it uses CPython in your latest version of AEDT installed in your machine.
50-
2. Install Pyaedt.
51-
3. Install Spyder.
52-
4. Install Jupyter Lab.
53-
5. Create a symbolic link from pyaedt installation to Ansys PersonalLib. In this way scripts can be run also within AEDT.
52+
53+
1. Create a python virtual environment in your ``%APPDATA%`` folder. To do that, use CPython in your latest version of AEDT installed on your machine.
54+
2. Install ``pyaedt``.
55+
3. Install ``spyder``.
56+
4. Install ``Jupyter Lab``.
57+
5. Create a symbolic link from pyaedt installation to Ansys AEDT ``PersonalLib``. In this way scripts can be run also within AEDT.
5458
6. Update pyaedt
5559
7. Run the tool you choose (Spyder, Jupyter or simple console).
5660

5761
Steps from 1 to 5 are executed only first time. Step 6 is executed only running the command with
5862
the following option:
59-
pyaedt_with_IDE.bat -update
63+
64+
``pyaedt_with_IDE.bat -update``
6065

6166
With this approach users can have a complete IDE to write Pyaedt Scripts in Windows with a simple batch file.
6267

63-
:download:`PyAEDT Environment with IDE <pyaedt_with_IDE.bat>`

doc/source/create_documentation.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sphinx-build -b html -a . ../../../PyAEDT-docs -j auto
1+
sphinx-build -b html -a . ../../../PyAEDT-docs_dev -j auto

pyaedt/generic/toolkit.py

Lines changed: 82 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -713,16 +713,11 @@ class WPFToolkit(Window):
713713

714714
def __init__(self, toolkit_file, aedt_design=None, parent_design_name=None):
715715

716-
my_path = os.path.abspath(os.path.dirname(__file__))
716+
self.toolkit_file = toolkit_file
717+
self._aedtdesign = None
717718
self.aedtdesign = aedt_design
718-
self.toolkit_name = os.path.basename(toolkit_file).replace(".py", "")
719-
if self.aedtdesign:
720-
self.settings_manager = WPFToolkitSettings(aedtdesign=self.aedtdesign, toolkit_name=self.toolkit_name)
721-
else:
722-
self.settings_manager = WPFToolkitSettings(working_directory=my_path, toolkit_name=self.toolkit_name)
723-
719+
self.parent_design_name = parent_design_name
724720
self.window = None
725-
726721
self.ui = UIObjectGetter(self)
727722
my_path = os.path.abspath(os.path.dirname(__file__))
728723
self.toolkit_directory = os.path.abspath(os.path.dirname(toolkit_file))
@@ -731,19 +726,6 @@ def __init__(self, toolkit_file, aedt_design=None, parent_design_name=None):
731726
sys.path.append(self.aedtlib_directory)
732727
self.image_path = os.path.join(self.aedtlib_directory, "misc")
733728

734-
if parent_design_name:
735-
self.parent_design_name = parent_design_name
736-
if not parent_design_name in self.aedtdesign.design_list:
737-
orig_design_name = self.aedtdesign.design_name
738-
if self.parent_design_name != orig_design_name:
739-
self._write_parent_link()
740-
self.aedtdesign.duplicate_design(self.parent_design_name)
741-
self.aedtdesign.save_project()
742-
else:
743-
self.aedtdesign.set_active_design(parent_design_name)
744-
else:
745-
self.parent_design_name = self.aedtdesign.design_name
746-
747729
self.dsoconfigfile = os.path.join(self.toolkit_directory, "dso.cfg")
748730

749731
# Read existing settings and update the library path
@@ -752,6 +734,50 @@ def __init__(self, toolkit_file, aedt_design=None, parent_design_name=None):
752734
# LOCAL_INSTALL = self.aedtdesign.odesktop.GetExeDir()
753735
# self.desktopjob = os.path.join(LOCAL_INSTALL, "desktopjob.exe")
754736

737+
@property
738+
def aedtdesign(self):
739+
"""Return Aedt Object."""
740+
return self._aedtdesign
741+
742+
@aedtdesign.setter
743+
def aedtdesign(self, design):
744+
my_path = os.path.abspath(os.path.dirname(__file__))
745+
self._aedtdesign = design
746+
self.toolkit_name = os.path.basename(self.toolkit_file).replace(".py", "")
747+
if self._aedtdesign:
748+
self.settings_manager = WPFToolkitSettings(aedtdesign=self._aedtdesign, toolkit_name=self.toolkit_name)
749+
self._parent_design_name = self._aedtdesign.design_name
750+
else:
751+
self.settings_manager = WPFToolkitSettings(working_directory=my_path, toolkit_name=self.toolkit_name)
752+
self._parent_design_name = None
753+
754+
@property
755+
def parent_design_name(self):
756+
"""Aedt Design Name."""
757+
758+
if self.aedtdesign:
759+
self._parent_design_name = self.aedtdesign.design_name
760+
else:
761+
self._parent_design_name = None
762+
return self._parent_design_name
763+
764+
@parent_design_name.setter
765+
def parent_design_name(self, design_name=None):
766+
if not self.aedtdesign:
767+
self._parent_design_name = None
768+
elif design_name:
769+
self._parent_design_name = design_name
770+
if not design_name in self.aedtdesign.design_list:
771+
orig_design_name = self.aedtdesign.design_name
772+
if self._parent_design_name != orig_design_name:
773+
self._write_parent_link()
774+
self.aedtdesign.duplicate_design(self._parent_design_name)
775+
self.aedtdesign.save_project()
776+
else:
777+
self.aedtdesign.set_active_design(design_name)
778+
else:
779+
self._parent_design_name = self.aedtdesign.design_name
780+
755781
@property
756782
def results_path(self):
757783
"""Results folder path."""
@@ -810,6 +836,41 @@ def _add_line_to_xml(self, line_to_add):
810836
f.write(line)
811837
shutil.move(self.xaml_file[:-5] + "_tmp.xaml", self.xaml_file)
812838

839+
@aedt_exception_handler
840+
def edit_window_size(self, width=800, height=600, title="PyAEDT WPF Application", background="#FFD1CFCF"):
841+
"""Edit the Wpf windows size.
842+
843+
Parameters
844+
----------
845+
width : int, optional
846+
Windows width.
847+
height : int, optional
848+
Windows height.
849+
title : str, optional
850+
Windows title.
851+
background : str, optional
852+
Windows color in hex mode.
853+
854+
Returns
855+
-------
856+
bool
857+
`True` if succeeded.
858+
"""
859+
with open(self.xaml_file, "r") as file:
860+
file = file.readlines()
861+
line_to_add = ' Title="{}" Height="{}" Width="{}" Background="{}">'.format(
862+
title, height, width, background
863+
)
864+
865+
with open(self.xaml_file[:-5] + "_tmp.xaml", "w") as f:
866+
for line in file:
867+
if " Title=" in line:
868+
f.write(line_to_add + "\n")
869+
else:
870+
f.write(line)
871+
shutil.move(self.xaml_file[:-5] + "_tmp.xaml", self.xaml_file)
872+
return True
873+
813874
@aedt_exception_handler
814875
def add_label(self, name, content, x_pos, y_pos):
815876
"""Adds a label to Wpf.

0 commit comments

Comments
 (0)