PyAEDT チートシート：基礎編

# デスクトップの操作

## 参照サイト

[Github](https://github.com/pyansys/pyaedt)
[Documents](https://aedtdocs.pyansys.com/)

## 起動と停止

### pyaedt.Desktop

```python
class pyaedt.Desktop(specified_version= None,
                     non_graphical= False,
                     new_desktop_session= True,
                     close_on_exit= True,
                     student_version= False)
```

- パラメータ
    - specified_version: <i>strings, optional</i>
        - 起動するAEDTのバージョンを指定、デフォルトは"None"でインストールされている最新バージョンが指定される
    - non_graphical: <i>bool, optional</i>
        - GUIの表示(True)・非表示(False)を指定、デフォルトは"False"
    - new_desktop_session: <i>bool, optional</i>
        - 新規インスタンスの作成、デフォルトは"True"
    - close_on_exit: <i>bool, optional</i>
        - 終了時のインスタンス削除、デフォルトは"True"
    - student_version: <i>bool, optional</i>
        - 教育機関向けライセンスを使用、デフォルトは"False"

- 返り値
    - True: 起動に成功
    - False: 起動に失敗

### サンプルコード

```python:open_close_desktop.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
desktop.close_desktop()
```
## HFSSのデザインの追加

### 新規デザインの追加

```python:pyaedt.Hfss
class pyaedt.Hfss(projectname= None,
                  designname= None,
                  solution_type= None,
                  setup_name= None,
                  specified_version= None,
                  non_graphical= False,
                  new_desktop_session= False,
                  close_on_exit= False,
                  student_version= False)
```

- パラメータ
    - projectname: <i>strings, optional</i>
        - 選択するプロジェクト名または開こうとしているファイル名を指定、デフォルトは"None"で、この場合、アクティブなプロジェクトを取得しプロジェクトが無い場合は新規プロジェクトを作成
    - designname: <i>strings, optional</i>
        - 選択するデザイン名を指定、デフォルトは"None"で、アクティブなデザインを取得しデザインが無い場合は新規デザインを作成
    - solution_type: <i>strings, optional</i>
        - 使用するデザインタイプを指定、デフォルトは"None"で、この場合デフォルトのタイプが割り当てられる
    - setup_name: <i>strings, optional</i>
        - 使用するセットアップ名を指定、デフォルトは"None"で、アクティブセットアップが使用されるか、何も使用されない
    - specified_version: <i>strings, optional</i>
        - 使用するAEDTのバージョンを指定、デフォルトは"None"で、アクティブバージョンまたは最新のインストール済みバージョンが使用されます。 スクリプトがAEDT内で起動される場合、このパラメーターは無視されます
    - non_graphical: <i>bool, optional</i>
        - 非グラフィカルモードでAEDTを実行するかどうか。 デフォルトはFalseで、AEDTはグラフィカルモードで起動されます。スクリプトがAEDT内で起動される場合、このパラメーターは無視されます。
    - new_desktop_session: <i>bool, optional</i>
        - AEDTのインスタンスを新しいスレッドで起動するかどうか。 デフォルトは"True"で、スクリプトがAEDT内で起動される場合、このパラメーターは無視されます。
    - close_on_exit: <i>bool, optional</i>
        - 終了時にAEDTを解放するかどうか。 デフォルトは"False"。
    - student_version: <i>bool, optional</i>
        - AEDT学生版を開くかどうか。 デフォルトは"False"で、スクリプトがAEDT内で起動される場合、このパラメーターは無視されます。

- 返り値
    - True: 作成に成功
    - False: 作成に失敗

#### 新規デザインの追加

プロジェクト名およびデザイン名を指定すると、プロジェクトを作成しデザインを追加する。

```python:add_hfss_design.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
hfss= pyaedt.Hfss(projectname= "HfssProject", designname= "HfssDesign1")
```
#### プロジェクトファイルからのデザイン追加

プロジェクト名にAEDTファイルをフルパスで指定すると、プロジェクトファイルを読み込むことが出来る。
読み込んだプロジェクトファイルにHFSSのデザインが無かった場合、新規のデザインを作成する。

```python:add_hfss_design.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
hfss= pyaedt.Hfss(projectname= "/フルパス/hoge.aedt")
```

#### 既存デザインからインスタンス作成

既にあるプロジェクト名とデザイン名を指定すると、インスタンス作成となる。

```python:get_hfss_design.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
hfss= pyaedt.Hfss(projectname= "Project_Name", designname= "Design_Name")
```

## 主なDesktopメソッド

### プロジェクト一覧の取得

```python:get_project_list.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.project_list()
```

### デザイン一覧の取得

```python:get_design_list.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.design_list()
```

### デザインタイプの取得

```python:get_design_type.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.design_type(project_name= "Project_Name", design_name= "Design_Name")
```

#### プロジェクトの保存

```python:save_project.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.save_project(project_name= "Project_Name", project_path= "Project_Path")
```

#### プロジェクト／デザイン内のセットアップの実行

プロジェクト名に"None"を指定すると、アクティブプロジェクトが選択される。
デザイン名に"None"を指定すると、アクティブプロジェクトの全デザインの解析が実行される。

```python:exec_analyze.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.analyze_all(project= "Project_Name", design= "Design_Name")
```

#### デスクトップのクローズ

```python:exec_analyze.py
import pyaedt
desktop= pyaedt.Desktop(specified_version= "2021.2", non_graphical= False)
# プロジェクトの読み込み／追加／処理
desktop.close_desktop()
```