From ab33580bb1e33edcc6ed6fd328206f2e89f52b13 Mon Sep 17 00:00:00 2001 From: gkorompi <156683163+gkorompi@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:52:14 +0300 Subject: [PATCH] FIX: Kernel Converter script and doc (#4892) Co-authored-by: Massimo Capodiferro <77293250+maxcapodi78@users.noreply.github.com> Co-authored-by: maxcapodi78 --- codecov.yml | 1 + doc/source/User_guide/extensions.rst | 6 + .../project/kernel_convert.rst | 55 +++ .../_static/extensions/converted_files.png | Bin 0 -> 23310 bytes .../_static/extensions/kernel_convert_ui.png | Bin 0 -> 98284 bytes .../config/vocabularies/ANSYS/accept.txt | 3 +- pyaedt/workflows/project/kernel_converter.py | 316 ++++++++++++++++++ 7 files changed, 380 insertions(+), 1 deletion(-) create mode 100644 doc/source/User_guide/pyaedt_extensions_doc/project/kernel_convert.rst create mode 100644 doc/source/_static/extensions/converted_files.png create mode 100644 doc/source/_static/extensions/kernel_convert_ui.png create mode 100644 pyaedt/workflows/project/kernel_converter.py diff --git a/codecov.yml b/codecov.yml index 32adc7b2f60..d200f680ce7 100644 --- a/codecov.yml +++ b/codecov.yml @@ -25,3 +25,4 @@ coverage: - "pyaedt/common_rpc.py" # ignore folders and all its contents - "pyaedt/generic/grpc_plugin_dll_class.py" # ignore file to interact with AEDT grpc api - "pyaedt/edb.py" # ignore folders and all its contents + - "pyaedt/workflows/project/kernel_converter.py" # ignore folders and all its contents diff --git a/doc/source/User_guide/extensions.rst b/doc/source/User_guide/extensions.rst index 9841c1e9f5d..dc85dfed5b2 100644 --- a/doc/source/User_guide/extensions.rst +++ b/doc/source/User_guide/extensions.rst @@ -34,6 +34,12 @@ Project extension apply to all extensions that are applicable for all AEDT appli Lear how to use the Advanced Fields Calculator. + .. grid-item-card:: Kernel converter + :link: pyaedt_extensions_doc/project/kernel_convert + :link-type: doc + + Lear how to convert projects from 2022R2 to newer versions. + .. toctree:: :hidden: diff --git a/doc/source/User_guide/pyaedt_extensions_doc/project/kernel_convert.rst b/doc/source/User_guide/pyaedt_extensions_doc/project/kernel_convert.rst new file mode 100644 index 00000000000..f75aac1ff33 --- /dev/null +++ b/doc/source/User_guide/pyaedt_extensions_doc/project/kernel_convert.rst @@ -0,0 +1,55 @@ +Kernel conversion +================= + +Conversion of the kernel from ACIS (2022R2 and previous versions), +to Parasolid (2023R1 and following versions) is becoming accessible to the customer, +with the use of a simple script. + +This script is compatible with .aedt files, as well as .a3dcomp files (including encrypted 3DComponents). + +You can access the extension from the icon created on the **Automation** tab using the Extension Manager. + +The following image shows the extension user interface: + +.. image:: ../../../_static/extensions/kernel_convert_ui.png + :width: 800 + :alt: Kernel Convert UI + +The Browse file or folder input points to a path which is either an .a3dcomp file, +an .aedt file, or a folder containing a variety of files of both types +(this way the user is capable to convert the kernel of a component library with one launch of the script) + +**Attention:** For encrypted 3D components the enable editing should be always on (with the corresponding +password that is given as an input). When pointing to a library, in order for +all the 3DComponents to be converted, they must have the same Application and Solution type, +given as an input in the last two entries of the UI, as well as same password, in order for the +conversion to be successful for all files. + +Last but least, for every file in the folder, a new file is generated in the path provided, that contains the +design converted to the latest version, and its name indicating the initial file version (i.e.test_aedt_2025.1) +Furthermore, for every conversion, a .csv file is created, with a name pointing to the converted design name, +containing any violations that occurred during the conversion, and that need **manual** fixing by the user. + +The following image show, the initial test_aedt and test_a3dcomp files, the corresponding .csv files and +the generated 2025R1 version (with the Parasolid Kernel) files. + +.. image:: ../../../_static/extensions/converted_files.png + :width: 800 + :alt: Generated Files During Kernel Conversion + +You can also launch the extension user interface from the terminal: + +.. code:: + + python.exe path/to/pyaedt/workflows/project/kernel_converter.py + +Finally, this code shows how you can run the extension directly from a Python script: + +.. code:: python + + from pyaedt.workflows.project.kernel_converter import main + + main(test_args = {"password": "my_pwd", + "application": "HFSS", + "solution": "Modal", + "file_path": "C:\my_path\file_containing_projects"}) diff --git a/doc/source/_static/extensions/converted_files.png b/doc/source/_static/extensions/converted_files.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9b2a98413766118f4c485a6e1fdca136023445 GIT binary patch literal 23310 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

jH-=%*wK8W*m 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 EPt@?4y8r+H literal 0 HcmV?d00001 diff --git a/doc/styles/config/vocabularies/ANSYS/accept.txt b/doc/styles/config/vocabularies/ANSYS/accept.txt index db0ebf42fe1..4125d4a4f2c 100644 --- a/doc/styles/config/vocabularies/ANSYS/accept.txt +++ b/doc/styles/config/vocabularies/ANSYS/accept.txt @@ -97,5 +97,6 @@ assign_mesh_level assign_mesh_reuse json toml +Parasolid i.e. -solderballs \ No newline at end of file +solderballs diff --git a/pyaedt/workflows/project/kernel_converter.py b/pyaedt/workflows/project/kernel_converter.py new file mode 100644 index 00000000000..85553458444 --- /dev/null +++ b/pyaedt/workflows/project/kernel_converter.py @@ -0,0 +1,316 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021 - 2024 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import logging +import os.path + +from pyaedt import Desktop +from pyaedt import Hfss +from pyaedt import Icepak +from pyaedt import Maxwell3d +from pyaedt import Q3d +from pyaedt import settings +from pyaedt.application.design_solutions import solutions_types +from pyaedt.generic.design_types import get_pyaedt_app +from pyaedt.generic.filesystem import search_files +from pyaedt.generic.general_methods import generate_unique_name +from pyaedt.workflows.misc import get_aedt_version +from pyaedt.workflows.misc import get_arguments +from pyaedt.workflows.misc import get_port +from pyaedt.workflows.misc import get_process_id +from pyaedt.workflows.misc import is_student + +settings.use_grpc_api = True +settings.use_multi_desktop = True +non_graphical = True +extension_arguments = {"password": "", "application": "HFSS", "solution": "Modal", "file_path": ""} +extension_description = "Convert File from 22R2" +port = get_port() +version = get_aedt_version() +aedt_process_id = get_process_id() +is_student = is_student() + + +def frontend(): # pragma: no cover + + import tkinter + from tkinter import filedialog + from tkinter import ttk + + master = tkinter.Tk() + + master.geometry("750x250") + + master.title("Convert File from 22R2") + + # Configure style for ttk buttons + style = ttk.Style() + style.configure("Toolbutton.TButton", padding=6, font=("Helvetica", 8)) + + var2 = tkinter.StringVar() + label2 = tkinter.Label(master, textvariable=var2) + var2.set("Browse file or folder:") + label2.grid(row=0, column=0, pady=10) + text = tkinter.Text(master, width=40, height=1) + text.grid(row=0, column=1, pady=10, padx=5) + + def edit_sols(self): + sol["values"] = tuple(solutions_types[appl.get()].keys()) + sol.current(0) + + var = tkinter.StringVar() + label = tkinter.Label(master, textvariable=var) + var.set("Password (Encrypted 3D Component Only):") + label.grid(row=1, column=0, pady=10) + pwd = tkinter.Entry(master, width=20, show="*") + pwd.insert(tkinter.END, "") + pwd.grid(row=1, column=1, pady=10, padx=5) + + var = tkinter.StringVar() + label = tkinter.Label(master, textvariable=var) + var.set("Application (3D Component Only):") + label.grid(row=2, column=0, pady=10) + appl = ttk.Combobox(master, width=40, validatecommand=edit_sols) # Set the width of the combobox + appl["values"] = ("HFSS", "Q3D Extractor", "Maxwell 3D", "Icepak") + appl.current(0) + appl.bind("<>", edit_sols) + appl.grid(row=2, column=1, pady=10, padx=5) + + var = tkinter.StringVar() + label = tkinter.Label(master, textvariable=var) + var.set("Solution (3D Component Only):") + label.grid(row=3, column=0, pady=10) + sol = ttk.Combobox(master, width=40) # Set the width of the combobox + sol["values"] = ttk.Combobox(master, width=40) # Set the width of the combobox + sol["values"] = tuple(solutions_types["HFSS"].keys()) + sol.current(0) + sol.grid(row=3, column=1, pady=10, padx=5) + + def browseFiles(): + filename = filedialog.askopenfilename( + initialdir="/", + title="Select a Electronics File", + filetypes=(("AEDT", ".aedt *.a3dcomp"), ("all files", "*.*")), + ) + text.insert(tkinter.END, filename) + + b1 = tkinter.Button(master, text="...", width=10, command=browseFiles) + b1.grid(row=0, column=2, pady=10) + + def callback(): + applications = {"HFSS": 0, "Icepak": 1, "Maxwell 3D": 2, "Q3D Extractor": 3} + master.password_ui = pwd.get() + master.application_ui = applications[appl.get()] + master.solution_ui = sol.get() + master.file_path_ui = text.get("1.0", tkinter.END).strip() + master.destroy() + + b3 = tkinter.Button(master, text="Ok", width=40, command=callback) + b3.grid(row=5, column=1, pady=10, padx=10) + + tkinter.mainloop() + + password_ui = getattr(master, "password_ui", extension_arguments["password"]) + application_ui = getattr(master, "application_ui", extension_arguments["application"]) + solution_ui = getattr(master, "solution_ui", extension_arguments["solution"]) + file_path_ui = getattr(master, "file_path_ui", extension_arguments["file_path"]) + + output_dict = { + "password": password_ui, + "application": application_ui, + "solution": solution_ui, + "file_path": file_path_ui, + } + return output_dict + + +def check_missing(input_object, output_object, file_path): + if output_object.design_type not in [ + "HFSS", + "Icepak", + "Q3d", + "2D Extractor", + "Maxwell 3D", + "Maxwell 2D", + "Mechanical", + ]: + return + object_list = input_object.modeler.object_names[::] + new_object_list = output_object.modeler.object_names[::] + un_classified_objects = output_object.modeler.unclassified_names[::] + unclassified = [i for i in object_list if i not in new_object_list and i in un_classified_objects] + disappeared = [i for i in object_list if i not in new_object_list and i not in un_classified_objects] + list_of_suppressed = [["Design", "Object", "Operation"]] + for obj_name in unclassified: + if obj_name in output_object.modeler.object_names: + continue + hist = output_object.modeler[obj_name].history() + for el_name, el in list(hist.children.items())[::-1]: + if "Suppress Command" in el.props: + el.props["Suppress Command"] = True + list_of_suppressed.append([output_object.design_name, obj_name, el_name]) + if obj_name in output_object.modeler.object_names: + break + for obj_name in disappeared: + input_object.export_3d_model( + file_name=obj_name, + file_format=".x_t", + file_path=input_object.working_directory, + assignment_to_export=[obj_name], + ) + output_object.modeler.import_3d_cad(os.path.join(input_object.working_directory, obj_name + ".x_t")) + list_of_suppressed.append([output_object.design_name, obj_name, "History"]) + from pyaedt.generic.general_methods import read_csv + from pyaedt.generic.general_methods import write_csv + + if file_path.split(".")[1] == "a3dcomp": + output_csv = os.path.join(file_path[:-8], "Import_Errors.csv")[::-1].replace("\\", "_", 1)[::-1] + else: + output_csv = os.path.join(file_path[:-5], "Import_Errors.csv")[::-1].replace("\\", "_", 1)[::-1] + if os.path.exists(output_csv): + data_read = read_csv(output_csv) + list_of_suppressed = data_read + list_of_suppressed[1:] + write_csv(output_csv, list_of_suppressed) + print(f"Errors saved in {output_csv}") + return output_csv, True + + +def convert_3d_component( + extension_args, + output_desktop, + input_desktop, +): + + file_path = extension_args["file_path"] + password = extension_args["password"] + solution = extension_args["solution"] + application = extension_args["application"] + + output_path = file_path[:-8] + f"_{version}.a3dcomp" + + if os.path.exists(output_path): + output_path = file_path[:-8] + generate_unique_name(f"_version", n=2) + ".a3dcomp" + app = Hfss + if application == 1: + app = Icepak + elif application == 2: + app = Maxwell3d + elif application == 3: + app = Q3d + app1 = app(aedt_process_id=input_desktop.aedt_process_id, solution_type=solution) + cmp = app1.modeler.insert_3d_component(file_path, password=password) + app_comp = cmp.edit_definition(password=password) + design_name = app_comp.design_name + app_comp.oproject.CopyDesign(design_name) + project_name2 = generate_unique_name("Proj_convert") + output_app = app(aedt_process_id=output_desktop.aedt_process_id, solution_type=solution, project=project_name2) + + output_app.oproject.Paste() + output_app = get_pyaedt_app(desktop=output_desktop, project_name=project_name2, design_name=design_name) + check_missing(app_comp, output_app, file_path) + output_app.modeler.create_3dcomponent( + output_path, + is_encrypted=True if password else False, + edit_password=password, + hide_contents=False, + allow_edit=True if password else False, + password_type="InternalPassword" if password else "UserSuppliedPassword", + ) + try: + output_desktop.DeleteProject(project_name2) + print(f"Project successfully deleted") + except Exception: + print(f"Error project was not closed") + print(f"3D Component {output_path} has been created.") + + +def convert_aedt( + extension_args, + output_desktop, + input_desktop, +): + + file_path = extension_args["file_path"] + + file_path = str(file_path) + a3d_component_path = str(file_path) + output_path = a3d_component_path[:-5] + f"_{version}.aedt" + if os.path.exists(output_path): + output_path = a3d_component_path[:-5] + generate_unique_name(f"_{version}", n=2) + ".aedt" + + input_desktop.load_project(file_path) + project_name = os.path.splitext(os.path.split(file_path)[-1])[0] + oproject2 = output_desktop.odesktop.NewProject(output_path) + project_name2 = os.path.splitext(os.path.split(output_path)[-1])[0] + + for design in input_desktop.design_list(): + + app1 = get_pyaedt_app(desktop=input_desktop, project_name=project_name, design_name=design) + app1.oproject.CopyDesign(app1.design_name) + oproject2.Paste() + output_app = get_pyaedt_app(desktop=output_desktop, project_name=project_name2, design_name=design) + check_missing(app1, output_app, file_path) + output_app.save_project() + input_desktop.odesktop.CloseProject(os.path.splitext(os.path.split(file_path)[-1])[0]) + + +def convert(args): + logger = logging.getLogger("Global") + if os.path.isdir(args["file_path"]): + files_path = search_files(args["file_path"], "*.a3dcomp") + files_path += search_files(args["file_path"], "*.aedt") + else: + files_path = [args["file_path"]] + output_desktop = Desktop( + new_desktop=True, + version=version, + port=port, + aedt_process_id=aedt_process_id, + student_version=is_student, + ) + input_desktop = Desktop(new_desktop=True, version=222, non_graphical=non_graphical) + for file in files_path: + try: + args["file_path"] = file + if args["file_path"].endswith("a3dcomp"): + convert_3d_component(args, output_desktop, input_desktop) + else: + convert_aedt(args, output_desktop, input_desktop) + except Exception: + logger.error(f"Failed to convert {file}") + input_desktop.release_desktop() + output_desktop.release_desktop(False, False) + + +if __name__ == "__main__": + args = get_arguments(extension_arguments, extension_description) + # Open UI + if not args["is_batch"]: # pragma: no cover + output = frontend() + if output: + for output_name, output_value in output.items(): + if output_name in extension_arguments: + args[output_name] = output_value + convert(args)