From 6cf4d385f6dd3d1d44623af4d9b9244da864c51a Mon Sep 17 00:00:00 2001 From: Dante Newman Date: Wed, 22 May 2024 14:49:34 -0500 Subject: [PATCH 1/5] add code to specify geometry to avoid naming issues - main mach_cad file - tutorial 5 file --- mach_cad/tools/jmag/jmag.py | 1 + .../analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py | 1 + 2 files changed, 2 insertions(+) diff --git a/mach_cad/tools/jmag/jmag.py b/mach_cad/tools/jmag/jmag.py index 7653de4c..10971959 100644 --- a/mach_cad/tools/jmag/jmag.py +++ b/mach_cad/tools/jmag/jmag.py @@ -122,6 +122,7 @@ def open( self.geometry_editor = self.jd.CreateGeometryEditor( True ) # creates new geometry or edits the geometry. + self.geometry_editor.SetVersion(21.1) self.doc = self.geometry_editor.GetDocument() self.assembly = self.doc.GetAssembly() return file_found diff --git a/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py b/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py index 745a4108..9dae63d6 100644 --- a/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py +++ b/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py @@ -322,6 +322,7 @@ def draw_jmag_model( # open JMAG Geometry Editor app.LaunchGeometryEditor() geomApp = app.CreateGeometryEditor() + geomApp.SetVersion(21.1) # geomApp.Show() geomApp.NewDocument() doc = geomApp.GetDocument() From 342969d57358b9cd47bc9fc63f4ab2c4bbaadb19 Mon Sep 17 00:00:00 2001 From: Takahiro Noguchi Date: Mon, 27 May 2024 21:57:06 -0500 Subject: [PATCH 2/5] Fix Stator ID in imag_2d --- mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py index 490c1545..3634c33e 100644 --- a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py +++ b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py @@ -306,6 +306,7 @@ def group(name, id_list): partIDRange_Magnet = part_ID_list[2 : int(2 + self.machine_variant.p * 2)] # id_sleeve = part_ID_list[int(2 + self.machine_variant.p * 2)] id_statorCore = part_ID_list[int(2 + self.machine_variant.p * 2) + 1] + id_statorCore = part_ID_list[int(2 + self.machine_variant.p * 2)] partIDRange_Coil = part_ID_list[ int(1 + self.machine_variant.p * 2) + 2 : int(2 + self.machine_variant.p * 2) @@ -318,6 +319,12 @@ def group(name, id_list): group("Magnet", partIDRange_Magnet) group("Coils", partIDRange_Coil) + # """ Set Parts names """ + + # app.GetModel(0).SetPartName(id_backiron, u"NotchedRotor") + # app.GetModel(0).SetPartName(id_shaft, u"Shaft") + # app.GetModel(0).SetPartName(id_statorCore, u"StatorCore") + """ Add Part to Set for later references """ def add_part_to_set(name, x, y, ID=None): From bb254ebb15afed51c2af6e5c8560010516b4aebc Mon Sep 17 00:00:00 2001 From: Takahiro Noguchi Date: Tue, 28 May 2024 00:39:20 -0500 Subject: [PATCH 3/5] Uncomment codes to rename parts --- mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py index 3634c33e..f42c5f68 100644 --- a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py +++ b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py @@ -321,9 +321,9 @@ def group(name, id_list): # """ Set Parts names """ - # app.GetModel(0).SetPartName(id_backiron, u"NotchedRotor") - # app.GetModel(0).SetPartName(id_shaft, u"Shaft") - # app.GetModel(0).SetPartName(id_statorCore, u"StatorCore") + app.GetModel(0).SetPartName(id_backiron, u"NotchedRotor") + app.GetModel(0).SetPartName(id_shaft, u"Shaft") + app.GetModel(0).SetPartName(id_statorCore, u"StatorCore") """ Add Part to Set for later references """ From 15665b92dfb7f50eaeac040f4b312c0a86fc961a Mon Sep 17 00:00:00 2001 From: Dante Newman Date: Wed, 29 May 2024 11:57:20 -0500 Subject: [PATCH 4/5] make changes based on feedback: - remove references to version 21.1 - remove extra stator id naming line --- mach_cad/tools/jmag/jmag.py | 1 - .../analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py | 1 - mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py | 1 - 3 files changed, 3 deletions(-) diff --git a/mach_cad/tools/jmag/jmag.py b/mach_cad/tools/jmag/jmag.py index 10971959..7653de4c 100644 --- a/mach_cad/tools/jmag/jmag.py +++ b/mach_cad/tools/jmag/jmag.py @@ -122,7 +122,6 @@ def open( self.geometry_editor = self.jd.CreateGeometryEditor( True ) # creates new geometry or edits the geometry. - self.geometry_editor.SetVersion(21.1) self.doc = self.geometry_editor.GetDocument() self.assembly = self.doc.GetAssembly() return file_found diff --git a/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py b/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py index 9dae63d6..745a4108 100644 --- a/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py +++ b/mach_eval/analyzers/electromagnetic/bspm/electrical_analysis/JMAG.py @@ -322,7 +322,6 @@ def draw_jmag_model( # open JMAG Geometry Editor app.LaunchGeometryEditor() geomApp = app.CreateGeometryEditor() - geomApp.SetVersion(21.1) # geomApp.Show() geomApp.NewDocument() doc = geomApp.GetDocument() diff --git a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py index f42c5f68..a9f6eb7b 100644 --- a/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py +++ b/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py @@ -305,7 +305,6 @@ def group(name, id_list): id_shaft = part_ID_list[1] partIDRange_Magnet = part_ID_list[2 : int(2 + self.machine_variant.p * 2)] # id_sleeve = part_ID_list[int(2 + self.machine_variant.p * 2)] - id_statorCore = part_ID_list[int(2 + self.machine_variant.p * 2) + 1] id_statorCore = part_ID_list[int(2 + self.machine_variant.p * 2)] partIDRange_Coil = part_ID_list[ int(1 + self.machine_variant.p * 2) From 4498941dd68da50c43ecfa244866079630d4fa06 Mon Sep 17 00:00:00 2001 From: Dante Newman Date: Thu, 30 May 2024 13:31:22 -0500 Subject: [PATCH 5/5] fix SynR and flux linkage analyzer for JMAG23 --- .../electromagnetic/SynR/SynR_em_analyzer.py | 11 +++++++++-- .../electromagnetic/SynR/SynR_inductance_analyzer.py | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/mach_eval/analyzers/electromagnetic/SynR/SynR_em_analyzer.py b/mach_eval/analyzers/electromagnetic/SynR/SynR_em_analyzer.py index 8774c2a5..d29e7ed1 100644 --- a/mach_eval/analyzers/electromagnetic/SynR/SynR_em_analyzer.py +++ b/mach_eval/analyzers/electromagnetic/SynR/SynR_em_analyzer.py @@ -118,7 +118,7 @@ def analyze(self, problem): model.SetName(self.project_name) model.SetDescription(self.show(self.project_name, toString=True)) - valid_design = self.pre_process(model) + valid_design = self.pre_process(app, model) if not valid_design: raise InvalidDesign @@ -403,7 +403,7 @@ def show(self, name, toString=False): "%s = %s" % item for item in tuple_list ) - def pre_process(self, model): + def pre_process(self, app, model): # pre-process : you can select part by coordinate! """Group""" @@ -427,6 +427,13 @@ def group(name, id_list): group("Coils", partIDRange_Coil) + # """ Set Parts names """ + + app.GetModel(0).SetPartName(id_rotorCore, u"RotorCore") + app.GetModel(0).SetPartName(id_shaft, u"Shaft") + app.GetModel(0).SetPartName(id_statorCore, u"StatorCore") + + """ Add Part to Set for later references """ def add_part_to_set(name, x, y, ID=None): diff --git a/mach_eval/analyzers/electromagnetic/SynR/SynR_inductance_analyzer.py b/mach_eval/analyzers/electromagnetic/SynR/SynR_inductance_analyzer.py index 241c9670..7f25dd3b 100644 --- a/mach_eval/analyzers/electromagnetic/SynR/SynR_inductance_analyzer.py +++ b/mach_eval/analyzers/electromagnetic/SynR/SynR_inductance_analyzer.py @@ -104,7 +104,7 @@ def analyze(self, problem): model.SetName(self.project_name) model.SetDescription(self.show(self.project_name, toString=True)) - valid_design = self.pre_process(model) + valid_design = self.pre_process(app, model) if not valid_design: raise InvalidDesign @@ -385,7 +385,7 @@ def show(self, name, toString=False): "%s = %s" % item for item in tuple_list ) - def pre_process(self, model): + def pre_process(self, app, model): # pre-process : you can select part by coordinate! """Group""" @@ -409,6 +409,12 @@ def group(name, id_list): group("Coils", partIDRange_Coil) + # """ Set Parts names """ + + app.GetModel(0).SetPartName(id_rotorCore, u"RotorCore") + app.GetModel(0).SetPartName(id_shaft, u"Shaft") + app.GetModel(0).SetPartName(id_statorCore, u"StatorCore") + """ Add Part to Set for later references """ def add_part_to_set(name, x, y, ID=None):