diff --git a/src/ansys/aedt/core/modeler/cad/primitives.py b/src/ansys/aedt/core/modeler/cad/primitives.py index a5c3a8d5337..34f406b2803 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives.py +++ b/src/ansys/aedt/core/modeler/cad/primitives.py @@ -2843,18 +2843,26 @@ def mirror(self, assignment, origin, vector, duplicate=False, is_3d_comp=False, x_pos, y_pos, z_pos = self._pos_with_arg(origin) x_norm, y_norm, z_norm = self._pos_with_arg(vector) if duplicate: - vArg1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] - vArg2 = ["NAME:DuplicateToMirrorParameters"] - vArg2.append("DuplicateMirrorBaseX:="), vArg2.append(x_pos) - vArg2.append("DuplicateMirrorBaseY:="), vArg2.append(y_pos) - vArg2.append("DuplicateMirrorBaseZ:="), vArg2.append(z_pos) - vArg2.append("DuplicateMirrorNormalX:="), vArg2.append(x_norm) - vArg2.append("DuplicateMirrorNormalY:="), vArg2.append(y_norm) - vArg2.append("DuplicateMirrorNormalZ:="), vArg2.append(z_norm) - vArg3 = ["NAME:Options", "DuplicateAssignments:=", duplicate_assignment] + arg_1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] + arg_2 = [ + "NAME:DuplicateToMirrorParameters", + "DuplicateMirrorBaseX:=", + x_pos, + "DuplicateMirrorBaseY:=", + y_pos, + "DuplicateMirrorBaseZ:=", + z_pos, + "DuplicateMirrorNormalX:=", + x_norm, + "DuplicateMirrorNormalY:=", + y_norm, + "DuplicateMirrorNormalZ:=", + z_norm, + ] + arg_3 = ["NAME:Options", "DuplicateAssignments:=", duplicate_assignment] if is_3d_comp: orig_3d = [i for i in self.user_defined_component_names] - added_objs = self.oeditor.DuplicateMirror(vArg1, vArg2, vArg3) + added_objs = self.oeditor.DuplicateMirror(arg_1, arg_2, arg_3) self.add_new_objects() if is_3d_comp: added_3d_comps = [i for i in self.user_defined_component_names if i not in orig_3d] @@ -2863,16 +2871,23 @@ def mirror(self, assignment, origin, vector, duplicate=False, is_3d_comp=False, return added_3d_comps return added_objs else: - vArg1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] - vArg2 = ["NAME:MirrorParameters"] - vArg2.append("MirrorBaseX:="), vArg2.append(x_pos) - vArg2.append("MirrorBaseY:="), vArg2.append(y_pos) - vArg2.append("MirrorBaseZ:="), vArg2.append(z_pos) - vArg2.append("MirrorNormalX:="), vArg2.append(x_norm) - vArg2.append("MirrorNormalY:="), vArg2.append(y_norm) - vArg2.append("MirrorNormalZ:="), vArg2.append(z_norm) - - self.oeditor.Mirror(vArg1, vArg2) + arg_1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] + arg_2 = [ + "NAME:MirrorParameters", + "MirrorBaseX:=", + x_pos, + "MirrorBaseY:=", + y_pos, + "MirrorBaseZ:=", + z_pos, + "MirrorNormalX:=", + x_norm, + "MirrorNormalY:=", + y_norm, + "MirrorNormalZ:=", + z_norm, + ] + self.oeditor.Mirror(arg_1, arg_2) return True @pyaedt_function_handler(objid="assignment") @@ -2899,14 +2914,19 @@ def move(self, assignment, vector): x_vec, y_vec, z_vec = self._pos_with_arg(vector) selections = self.convert_to_selections(assignment) - vArg1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] - vArg2 = ["NAME:TranslateParameters"] - vArg2.append("TranslateVectorX:="), vArg2.append(x_vec) - vArg2.append("TranslateVectorY:="), vArg2.append(y_vec) - vArg2.append("TranslateVectorZ:="), vArg2.append(z_vec) + arg_1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] + arg_2 = [ + "NAME:TranslateParameters", + "TranslateVectorX:=", + x_vec, + "TranslateVectorY:=", + y_vec, + "TranslateVectorZ:=", + z_vec, + ] if self.oeditor is not None: - self.oeditor.Move(vArg1, vArg2) + self.oeditor.Move(arg_1, arg_2) return True @pyaedt_function_handler(objid="assignment", cs_axis="axis", nclones="clones") @@ -3023,16 +3043,23 @@ def duplicate_along_line( selections = self.convert_to_selections(assignment) x_pos, y_pos, z_pos = self._pos_with_arg(vector) - vArg1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] - vArg2 = ["NAME:DuplicateToAlongLineParameters"] - vArg2.append("CreateNewObjects:="), vArg2.append(not attach) - vArg2.append("XComponent:="), vArg2.append(x_pos) - vArg2.append("YComponent:="), vArg2.append(y_pos) - vArg2.append("ZComponent:="), vArg2.append(z_pos) - vArg2.append("Numclones:="), vArg2.append(str(clones)) - vArg3 = ["NAME:Options", "DuplicateAssignments:=", duplicate_assignment] + arg_1 = ["NAME:Selections", "Selections:=", selections, "NewPartsModelFlag:=", "Model"] + arg_2 = [ + "NAME:DuplicateToAlongLineParameters", + "CreateNewObjects:=", + not attach, + "XComponent:=", + x_pos, + "YComponent:=", + y_pos, + "ZComponent:=", + z_pos, + "Numclones:=", + str(clones), + ] + arg_3 = ["NAME:Options", "DuplicateAssignments:=", duplicate_assignment] self.add_new_objects() - self.oeditor.DuplicateAlongLine(vArg1, vArg2, vArg3) + self.oeditor.DuplicateAlongLine(arg_1, arg_2, arg_3) if is_3d_comp: return self._duplicate_added_components_tuple() if attach: @@ -3640,12 +3667,11 @@ def unite(self, assignment, purge=False, keep_originals=False): while remaining > 1: objs = assignment[:slice] selections = self.convert_to_selections(objs) - vArg1 = ["NAME:Selections", "Selections:=", selections] - vArg2 = ["NAME:UniteParameters", "KeepOriginals:=", keep_originals] + arg_1 = ["NAME:Selections", "Selections:=", selections] + arg_2 = ["NAME:UniteParameters", "KeepOriginals:=", keep_originals] if settings.aedt_version > "2022.2": - vArg2.append("TurnOnNBodyBoolean:=") - vArg2.append(True) - self.oeditor.Unite(vArg1, vArg2) + arg_2 += ["TurnOnNBodyBoolean:=", True] + self.oeditor.Unite(arg_1, arg_2) if selections.split(",")[0] in self.unclassified_names: # pragma: no cover self.logger.error("Error in uniting objects.") self._odesign.Undo() @@ -3954,13 +3980,19 @@ def check_plane(self, assignment, face_location, offset=1): i = 0 while not found: off1, off2, off3 = self._offset_on_plane(i, offset) - vArg1 = ["NAME:FaceParameters"] - vArg1.append("BodyName:="), vArg1.append(assignment) - vArg1.append("XPosition:="), vArg1.append(x_vec + "+" + self._arg_with_dim(off1)) - vArg1.append("YPosition:="), vArg1.append(y_vec + "+" + self._arg_with_dim(off2)) - vArg1.append("ZPosition:="), vArg1.append(z_vec + "+" + self._arg_with_dim(off3)) + arg_1 = [ + "NAME:FaceParameters", + "BodyName:=", + assignment, + "XPosition:=", + x_vec + "+" + self._arg_with_dim(off1), + "YPosition:=", + y_vec + "+" + self._arg_with_dim(off2), + "ZPosition:=", + z_vec + "+" + self._arg_with_dim(off3), + ] try: - face_id = self.oeditor.GetFaceByPosition(vArg1) + _ = self.oeditor.GetFaceByPosition(arg_1) if i < 4: plane = "XY" elif i < 8: @@ -7898,11 +7930,16 @@ def get_bodynames_from_position(self, position, units=None, include_non_model=Tr # self.logger.error("A list of point has to be provided") return [] x_center, y_center, z_center = self._pos_with_arg(position, units) - vArg1 = ["NAME:Parameters"] - vArg1.append("XPosition:="), vArg1.append(x_center) - vArg1.append("YPosition:="), vArg1.append(y_center) - vArg1.append("ZPosition:="), vArg1.append(z_center) - list_of_bodies = list(self.oeditor.GetBodyNamesByPosition(vArg1)) + arg_1 = [ + "NAME:Parameters", + "XPosition:=", + x_center, + "YPosition:=", + y_center, + "ZPosition:=", + z_center, + ] + list_of_bodies = list(self.oeditor.GetBodyNamesByPosition(arg_1)) if not include_non_model: non_models = [i for i in self.non_model_objects] list_of_bodies = [i for i in list_of_bodies if i not in non_models] @@ -7936,15 +7973,21 @@ def get_edgeid_from_position(self, position, assignment=None, units=None): edge_id = -1 x_center, y_center, z_center = self._pos_with_arg(position, units) - vArg1 = ["NAME:EdgeParameters"] - vArg1.append("BodyName:="), vArg1.append("") - vArg1.append("XPosition:="), vArg1.append(x_center) - vArg1.append("YPosition:="), vArg1.append(y_center) - vArg1.append("ZPosition:="), vArg1.append(z_center) + arg_1 = [ + "NAME:EdgeParameters", + "BodyName:=", + "", + "XPosition:=", + x_center, + "YPosition:=", + y_center, + "ZPosition:=", + z_center, + ] for obj in object_list: - vArg1[2] = obj + arg_1[2] = obj try: - edge_id = int(self.oeditor.GetEdgeByPosition(vArg1)) + edge_id = int(self.oeditor.GetEdgeByPosition(arg_1)) return edge_id except Exception: self.logger.debug(f"Cannot retrieve edge id from {obj}") diff --git a/src/ansys/aedt/core/modeler/cad/primitives_2d.py b/src/ansys/aedt/core/modeler/cad/primitives_2d.py index bcaa80ae1ba..82808b9d87f 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives_2d.py +++ b/src/ansys/aedt/core/modeler/cad/primitives_2d.py @@ -120,7 +120,7 @@ def create_circle( "WhichAxis:=", axis, "NumSegments:=", - num_sides, + f"{num_sides}", ] arg_2 = self._default_object_attributes(name=name, material=material, flags="NonModel#" if non_model else "") new_object_name = self.oeditor.CreateCircle(arg_1, arg_2) diff --git a/src/ansys/aedt/core/modeler/cad/primitives_3d.py b/src/ansys/aedt/core/modeler/cad/primitives_3d.py index b1ac7f5c577..e9f9a65f341 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives_3d.py +++ b/src/ansys/aedt/core/modeler/cad/primitives_3d.py @@ -263,7 +263,7 @@ def create_cylinder(self, orientation, origin, radius, height, num_sides=0, name "WhichAxis:=", axis, "NumSides:=", - num_sides, + f"{num_sides}", ] arg_2 = self._default_object_attributes(name=name, material=material) new_object_name = self.oeditor.CreateCylinder(arg_1, arg_2) @@ -339,16 +339,18 @@ def create_polyhedron(self, orientation=None, center=(0.0, 0.0, 0.0), origin=(0. height = self._arg_with_dim(height) - arg_1 = ["NAME:PolyhedronParameters", - "XCenter:=", x_center, - "YCenter:=", y_center, - "ZCenter:=", z_center, - "XStart:=", x_start, - "YStart:=", y_start, - "ZStart:=", z_start, - "Height:=", height, - "NumSides:=", int(num_sides), - "WhichAxis:=", orientation] + arg_1 = [ + "NAME:PolyhedronParameters", + "XCenter:=", x_center, + "YCenter:=", y_center, + "ZCenter:=", z_center, + "XStart:=", x_start, + "YStart:=", y_start, + "ZStart:=", z_start, + "Height:=", height, + "NumSides:=", int(num_sides), + "WhichAxis:=", orientation + ] arg_2 = self._default_object_attributes(name=name, material=material) new_object_name = self.oeditor.CreateRegularPolyhedron(arg_1, arg_2) return self._create_object(new_object_name, **kwargs) @@ -492,11 +494,13 @@ def create_sphere(self, origin, radius, name=None, material=None, **kwargs): x_center, y_center, z_center = self._pos_with_arg(origin) radius = self._arg_with_dim(radius) - arg_1 = ["NAME:SphereParameters", - "XCenter:=", x_center, - "YCenter:=", y_center, - "ZCenter:=", z_center, - "Radius:=", radius] + arg_1 = [ + "NAME:SphereParameters", + "XCenter:=", x_center, + "YCenter:=", y_center, + "ZCenter:=", z_center, + "Radius:=", radius, + ] arg_2 = self._default_object_attributes(name=name, material=material) new_object_name = self.oeditor.CreateSphere(arg_1, arg_2) return self._create_object(new_object_name, **kwargs) @@ -849,14 +853,16 @@ def create_circle(self, orientation, origin, radius, num_sides=0, is_covered=Tru axis = GeometryOperators.cs_plane_to_axis_str(orientation) x_center, y_center, z_center = self._pos_with_arg(origin) radius = self._arg_with_dim(radius) - arg_1 = ["NAME:CircleParameters", - "IsCovered:=", is_covered, - "XCenter:=", x_center, - "YCenter:=", y_center, - "ZCenter:=", z_center, - "Radius:=", radius, - "WhichAxis:=", axis, - "NumSegments:=", f"{num_sides}"] + arg_1 = [ + "NAME:CircleParameters", + "IsCovered:=", is_covered, + "XCenter:=", x_center, + "YCenter:=", y_center, + "ZCenter:=", z_center, + "Radius:=", radius, + "WhichAxis:=", axis, + "NumSegments:=", f"{num_sides}" + ] arg_2 = self._default_object_attributes(name=name, material=material, flags=non_model_flag) new_object_name = self.oeditor.CreateCircle(arg_1, arg_2) return self._create_object(new_object_name, **kwargs) @@ -939,18 +945,19 @@ def create_ellipse( """ axis = GeometryOperators.cs_plane_to_axis_str(orientation) x_start, y_start, z_start = self._pos_with_arg(origin) - major_radius = self._arg_with_dim(major_radius) - arg_1 = ["NAME:EllipseParameters", - "IsCovered:=", is_covered, - "XCenter:=", x_start, - "YCenter:=", y_start, - "ZCenter:=", z_start, - "MajRadius:=", major_radius, - "Ratio:=", ratio, - "WhichAxis:=", axis, - "NumSegments:=", segments] + arg_1 = [ + "NAME:EllipseParameters", + "IsCovered:=", is_covered, + "XCenter:=", x_start, + "YCenter:=", y_start, + "ZCenter:=", z_start, + "MajRadius:=", major_radius, + "Ratio:=", ratio, + "WhichAxis:=", axis, + "NumSegments:=", segments + ] arg_2 = self._default_object_attributes(name=name, material=material) new_object_name = self.oeditor.CreateEllipse(arg_1, arg_2) return self._create_object(new_object_name, **kwargs) @@ -1058,20 +1065,13 @@ def create_equationbased_curve(self, x_t=0, y_t=0, z_t=0, t_start=0, t_end=1, nu arg_1 = [ "NAME:EquationBasedCurveParameters", - "XtFunction:=", - str(x_t), - "YtFunction:=", - str(y_t), - "ZtFunction:=", - str(z_t), - "tStart:=", - str(t_start), - "tEnd:=", - str(t_end), - "NumOfPointsOnCurve:=", - num_points, - "Version:=", - 1, + "XtFunction:=", str(x_t), + "YtFunction:=", str(y_t), + "ZtFunction:=", str(z_t), + "tStart:=", str(t_start), + "tEnd:=", str(t_end), + "NumOfPointsOnCurve:=", num_points, + "Version:=", 1, x_section, ] @@ -1142,22 +1142,14 @@ def create_equationbased_surface(self, x_uv=0, y_uv=0, z_uv=0, u_start=0, u_end= arg_1 = [ "NAME:EquationBasedSurfaceParameters", - "XuvFunction:=", - str(x_uv), - "YuvFunction:=", - str(y_uv), - "ZuvFunction:=", - str(z_uv), - "uStart:=", - str(u_start), - "uEnd:=", - str(u_end), - "vStart:=", - str(v_start), - "vEnd:=", - str(v_end), - "Version:=", - 1, + "XuvFunction:=", str(x_uv), + "YuvFunction:=", str(y_uv), + "ZuvFunction:=", str(z_uv), + "uStart:=", str(u_start), + "uEnd:=", str(u_end), + "vStart:=", str(v_start), + "vEnd:=", str(v_end), + "Version:=", 1, ] arg_2 = self._default_object_attributes(name) @@ -1230,20 +1222,24 @@ def create_helix(self, assignment, origin, x_start_dir, y_start_dir, z_start_dir return False x_center, y_center, z_center = self._pos_with_arg(origin) - arg_1 = ["NAME:Selections", - "Selections:=", assignment, - "NewPartsModelFlag:=", "Model"] - arg_2 = ["NAME:HelixParameters", - "XCenter:=", x_center, - "YCenter:=", y_center, - "ZCenter:=", z_center, - "XStartDir:=", self._arg_with_dim(x_start_dir), - "YStartDir:=", self._arg_with_dim(y_start_dir), - "ZStartDir:=", self._arg_with_dim(z_start_dir), - "NumThread:=", turns, - "RightHand:=", right_hand, - "RadiusIncrement:=", self._arg_with_dim(radius_increment), - "Thread:=", self._arg_with_dim(thread)] + arg_1 = [ + "NAME:Selections", + "Selections:=", assignment, + "NewPartsModelFlag:=", "Model" + ] + arg_2 = [ + "NAME:HelixParameters", + "XCenter:=", x_center, + "YCenter:=", y_center, + "ZCenter:=", z_center, + "XStartDir:=", self._arg_with_dim(x_start_dir), + "YStartDir:=", self._arg_with_dim(y_start_dir), + "ZStartDir:=", self._arg_with_dim(z_start_dir), + "NumThread:=", turns, + "RightHand:=", right_hand, + "RadiusIncrement:=", self._arg_with_dim(radius_increment), + "Thread:=", self._arg_with_dim(thread) + ] self.oeditor.CreateHelix(arg_1, arg_2) if assignment in self.objects_by_name: del self.objects[self.objects_by_name[assignment].id] @@ -1306,28 +1302,19 @@ def create_udm( arg_param_vector += [ [ "NAME:UDMParam", - "Name:=", - name_param, - "Value:=", - str(val), - "DataType:=", - "String", - "PropType2:=", - 1, - "PropFlag2:=", - 0, + "Name:=", name_param, + "Value:=", str(val), + "DataType:=", "String", + "PropType2:=", 1, + "PropFlag2:=", 0, ] ] arg_1 += [ arg_param_vector, - "DllName:=", - udm_full_name, - "Library:=", - library, - "Version:=", - "2.0", - "ConnectionID:=", - "", + "DllName:=", udm_full_name, + "Library:=", library, + "Version:=", "2.0", + "ConnectionID:=", "", ] oname = self.oeditor.CreateUserDefinedModel(arg_1) if oname: @@ -1606,19 +1593,18 @@ def insert_3d_component( if geometry_parameters: sz_geo_params = "".join([f"{par}='{val}' " for par, val in geometry_parameters.items()]) - arg_1 = ["NAME:InsertComponentData", - "TargetCS:=", coordinate_system, - "ComponentFile:=", input_file, - "IsLocal:=", False, - "UniqueIdentifier:=", ""] + arg_1 = [ + "NAME:InsertComponentData", + "TargetCS:=", coordinate_system, + "ComponentFile:=", input_file, + "IsLocal:=", False, + "UniqueIdentifier:=", "" + ] arg_2 = [ "NAME:InstanceParameters", - "GeometryParameters:=", - sz_geo_params, - "MaterialParameters:=", - material_parameters, - "DesignParameters:=", - design_parameters, + "GeometryParameters:=", sz_geo_params, + "MaterialParameters:=", material_parameters, + "DesignParameters:=", design_parameters, ] arg_1 += [arg_2, "Password:=", password] try: @@ -1882,12 +1868,9 @@ def insert_layout_component( "Company URL:=", "", "Model Number:=", "", "Help URL:=", "", - "Version:=", - "1.0", - "Notes:=", - "", - "IconType:=", - "Layout Component", + "Version:=", "1.0", + "Notes:=", "", + "IconType:=", "Layout Component", ], ] sub_arg_0 = [ @@ -1901,22 +1884,14 @@ def insert_layout_component( arg_1.append(["NAME:DesignDefinitionParameters", ["NAME:VariableOrders"]]) arg_1.append(["NAME:MaterialDefinitionParameters", ["NAME:VariableOrders"]]) arg_1 += [ - "DefReferenceCSID:=", - 1, - "MapInstanceParameters:=", - "DesignVariable", - "UniqueDefinitionIdentifier:=", - "", - "OriginFilePath:=", - "", - "IsLocal:=", - False, - "ChecksumString:=", - "", - "ChecksumHistory:=", - [], - "VersionHistory:=", - [], + "DefReferenceCSID:=", 1, + "MapInstanceParameters:=", "DesignVariable", + "UniqueDefinitionIdentifier:=", "", + "OriginFilePath:=", "", + "IsLocal:=", False, + "ChecksumString:=", "", + "ChecksumHistory:=", [], + "VersionHistory:=", [], ] sub_arg_1 = ["NAME:VariableMap"] for param in parameters: @@ -1927,17 +1902,12 @@ def insert_layout_component( sub_arg_1.append(parameters[param][1]) sub_arg_2 = [ "NAME:NativeComponentDefinitionProvider", - "Type:=", - "Layout Component", - "Unit:=", - "mm", - "Version:=", - 1.1, - "EDBDefinition:=", - aedt_component_name, + "Type:=", "Layout Component", + "Unit:=", "mm", + "Version:=", 1.1, + "EDBDefinition:=", aedt_component_name, sub_arg_1, - "ReferenceCS:=", - reference_coordinate_system, + "ReferenceCS:=", reference_coordinate_system, "CSToImport:=", ] if component_cs and not layout_coordinate_systems: # pragma: no cover @@ -1954,19 +1924,18 @@ def insert_layout_component( sub_arg_2.append(sub_arg_3) arg_1.append(sub_arg_2) - sub_arg_4 = ["NAME:InstanceParameters", - "GeometryParameters:="] + sub_arg_4 = ["NAME:InstanceParameters", "GeometryParameters:="] if parameters and parameter_mapping: sub_arg_5 = "" for param in parameters: sub_arg_5 += f" {parameters[param][0]}='{parameters[param][0]}'" else: sub_arg_5 = "" - sub_arg_4 += [sub_arg_5[1:], - "MaterialParameters:=", - "", - "DesignParameters:=", - ""] + sub_arg_4 += [ + sub_arg_5[1:], + "MaterialParameters:=", "", + "DesignParameters:=", "" + ] arg_1.append(sub_arg_4) try: