def setUp(self): self.test_shape = paramak.ToroidalFieldCoilPrincetonD( R1=100, R2=300, thickness=50, distance=30, number_of_coils=1, with_inner_leg=True)
def main(): number_of_toroidal_field_coils = 8 angle_offset = (360 / number_of_toroidal_field_coils) / 2. tf_coil_thickness = 50 tf_coil_distance = 130 tf_coil_casing_distance = tf_coil_distance + 40 tf_coil_casing_thickness = 20 inner_tf_case = paramak.InnerTfCoilsFlat( height=1800, inner_radius=330, outer_radius=430, number_of_coils=number_of_toroidal_field_coils, gap_size=5, rotation_angle=180, azimuth_start_angle=angle_offset) tf_coils = paramak.ToroidalFieldCoilPrincetonD( R1=400, R2=1500, # height thickness=tf_coil_thickness, distance=tf_coil_distance, number_of_coils=number_of_toroidal_field_coils, rotation_angle=180, ) tf_coil_casing = paramak.TFCoilCasing( magnet=tf_coils, distance=tf_coil_casing_distance, inner_offset=tf_coil_casing_thickness, outer_offset=tf_coil_casing_thickness, vertical_section_offset=tf_coil_casing_thickness, # rotation_angle=180, # producing occational errors with this arg ) pf_coils = paramak.PoloidalFieldCoilSet( heights=[100, 120, 80, 80, 120, 180], widths=[100, 120, 80, 80, 120, 180], center_points=[(530, 1030), (1370, 790), (1740, 250), (1750, -250), (1360, -780), (680, -1050)], rotation_angle=180) pf_coils_casing = paramak.PoloidalFieldCoilCaseSetFC( pf_coils=pf_coils, casing_thicknesses=[10] * 6, rotation_angle=180) pf_coils.export_stp('pf_coils.stp') pf_coils_casing.export_stp('pf_coils_case.stp') tf_coils.export_stp('tf_coil.stp') tf_coil_casing.export_stp('tf_coil_casing.stp') inner_tf_case.export_stp('inner_tf_case.stp')
def test_ToroidalFieldCoilPrincetonD_creation(self): """creates a ToroidalFieldCoilPrincetonD object and checks a solid is created""" test_shape = paramak.ToroidalFieldCoilPrincetonD( R1=100, R2=300, thickness=50, distance=50, number_of_coils=2, ) assert test_shape.solid is not None assert test_shape.volume > 1000
def test_ToroidalFieldCoilPrincetonD_with_leg(self): """creates a ToroidalFieldCoilPrincetonD object and checks a leg can be created""" my_magnet = paramak.ToroidalFieldCoilPrincetonD(R1=0.29, R2=0.91, thickness=0.05, distance=0.05, number_of_coils=1) my_magnet.export_stp('princeton.stp') my_leg = paramak.ExtrudeStraightShape( points=my_magnet.inner_leg_connection_points, distance=0.05) assert my_leg.solid is not None
def test_ToroidalFieldCoilPrincetonD_rotation_angle(self): """creates a tf coil with a rotation_angle < 360 and checks that the correct cut is performed and the volume is correct""" test_shape = paramak.ToroidalFieldCoilPrincetonD( R1=50, R2=150, thickness=30, distance=30, number_of_coils=8, ) test_volume = test_shape.volume test_shape.rotation_angle = 180 assert test_shape.volume == pytest.approx(test_volume * 0.5, rel=0.01)
def make_center_column_study_reactor( outputs=['stp', 'neutronics', 'svg', 'stl', 'html']): my_reactor = paramak.CenterColumnStudyReactor( inner_bore_radial_thickness=20, inboard_tf_leg_radial_thickness=50, center_column_shield_radial_thickness_mid=50, center_column_shield_radial_thickness_upper=100, inboard_firstwall_radial_thickness=20, divertor_radial_thickness=100, inner_plasma_gap_radial_thickness=80, plasma_radial_thickness=200, outer_plasma_gap_radial_thickness=90, elongation=2.3, triangularity=0.45, plasma_gap_vertical_thickness=40, center_column_arc_vertical_thickness=520, rotation_angle=180) # adding in some TF coils tf_magnet = paramak.ToroidalFieldCoilPrincetonD(R1=20 + 50, R2=20 + 50 + 50 + 80 + 200 + 90 + 100 + 20, thickness=50, distance=50, number_of_coils=12, rotation_angle=180) my_reactor.shapes_and_components.append(tf_magnet) if 'stp' in outputs: my_reactor.export_stp(output_folder='CenterColumnStudyReactor') if 'neutronics' in outputs: my_reactor.export_neutronics_description( 'CenterColumnStudyReactor/manifest.json') if 'svg' in outputs: my_reactor.export_svg('CenterColumnStudyReactor/reactor.svg') if 'stl' in outputs: my_reactor.export_stl(output_folder='CenterColumnStudyReactor') if 'html' in outputs: my_reactor.export_html('CenterColumnStudyReactor/reactor.html')
def setUp(self): inner_offset = 10 outer_offset = 10 magnet_thickness = 5 magnet_extrude_distance = 10 vertical_section_offset = 20 casing_extrude_distance = magnet_extrude_distance * 2 # create a princeton D magnet magnet = paramak.ToroidalFieldCoilPrincetonD( R1=100, R2=200, thickness=magnet_thickness, distance=magnet_extrude_distance, number_of_coils=1) self.test_shape = paramak.TFCoilCasing( magnet=magnet, distance=casing_extrude_distance, inner_offset=inner_offset, outer_offset=outer_offset, vertical_section_offset=vertical_section_offset)
def main(rotation_angle=180): inboard_pf_coils = paramak.PoloidalFieldCoilSet( center_points=[ (53.5, -169.58), (53.5, -118.43), (53.5, -46.54), (53.5, 46.54), (53.5, 118.43), (53.5, 169.58), ], heights=[ 41.5, 40.5, 82.95, 82.95, 40.5, 41.5, ], widths=[27.7, 27.7, 27.7, 27.7, 27.7, 27.7], rotation_angle=rotation_angle, stp_filename='inboard_pf_coils.stp') outboard_pf_coils = paramak.PoloidalFieldCoilSet( center_points=[ (86, 230), (86, -230), (164, 241), (164, -241), (263, 222), (263, -222), (373, 131), (373, -131), ], widths=[ 32, 32, 50, 50, 43, 43, 48, 48, ], heights=[ 40, 40, 30, 30, 28, 28, 37, 37, ], rotation_angle=rotation_angle, stp_filename='outboard_pf_coils.stp') div_coils = paramak.PoloidalFieldCoilSet(center_points=[ (207, 144), (207, 125), (207, -144), (207, -125), ], widths=[15, 15, 15, 15], heights=[15, 15, 15, 15], rotation_angle=rotation_angle, stp_filename='div_coils.stp') vs_coils = paramak.PoloidalFieldCoilSet(center_points=[ (240, 70), (240, -70), ], widths=[10, 10], heights=[10, 10], rotation_angle=rotation_angle, stp_filename='vs_coils.stp') EFCCu_coils_1 = paramak.RotateStraightShape( points=[ (235.56581986143186, -127.64976958525347), (240.1847575057737, -121.19815668202767), (246.65127020785218, -125.80645161290323), (242.0323325635104, -132.25806451612902), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_1.stp') EFCCu_coils_2 = paramak.RotateStraightShape( points=[ (262.3556581986143, -90.78341013824888), (266.97459584295615, -84.33179723502303), (273.44110854503464, -88.94009216589859), (268.82217090069287, -94.47004608294935), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_2.stp') EFCCu_coils_3 = paramak.RotateStraightShape( points=[ (281.7551963048499, -71.42857142857144), (289.1454965357968, -71.42857142857144), (289.1454965357968, -78.80184331797238), (281.7551963048499, -78.80184331797238), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_3.stp') EFCCu_coils_4 = paramak.RotateStraightShape( points=[ (235.56581986143186, 127.64976958525347), (240.1847575057737, 121.19815668202767), (246.65127020785218, 125.80645161290323), (242.0323325635104, 132.25806451612902), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_4.stp') EFCCu_coils_5 = paramak.RotateStraightShape( points=[ (262.3556581986143, 90.78341013824888), (266.97459584295615, 84.33179723502303), (273.44110854503464, 88.94009216589859), (268.82217090069287, 94.47004608294935), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_5.stp') EFCCu_coils_6 = paramak.RotateStraightShape( points=[ (281.7551963048499, 71.42857142857144), (289.1454965357968, 71.42857142857144), (289.1454965357968, 78.80184331797238), (281.7551963048499, 78.80184331797238), ], rotation_angle=rotation_angle, stp_filename='EFCCu_coils_6.stp') plasma = paramak.Plasma( major_radius=185, minor_radius=57 - 6, # 3 is a small ofset to avoid overlaps triangularity=0.31, elongation=1.97, rotation_angle=rotation_angle, stp_filename='plasma.stp', ) antenna = paramak.RotateMixedShape(points=[ (263.2794457274827, 46.5437788018433, 'straight'), (263.2794457274827, -46.54377880184336, 'straight'), (231.87066974595842, -46.54377880184336, 'spline'), (243.87990762124713, 0, 'spline'), (231.87066974595842, 46.5437788018433, 'straight'), ], rotation_angle=rotation_angle, stp_filename='antenna.stp') tf_coil = paramak.ToroidalFieldCoilPrincetonD( R1=105, R2=339, thickness=33, distance=33, number_of_coils=12, rotation_angle=rotation_angle, stp_filename='tf_coil.stp') vac_vessel = paramak.RotateStraightShape(points=[ (117.32101616628177, 126.72811059907835), (163.51039260969978, 170.04608294930875), (181.98614318706697, 171.88940092165896), (196.76674364896073, 169.12442396313364), (196.76674364896073, 115.66820276497694), (236.4896073903002, 114.74654377880185), (273.44110854503464, 65.89861751152074), (272.51732101616625, -65.89861751152074), (236.4896073903002, -115.66820276497697), (196.76674364896073, -115.66820276497697), (196.76674364896073, -169.12442396313367), (181.98614318706697, -172.81105990783408), (163.51039260969978, -170.04608294930875), (117.32101616628177, -126.72811059907832), (117.32101616628177, 123.04147465437785), (123.78752886836028, 123.04147465437785), (123.78752886836028, -123.963133640553), (165.3579676674365, -162.67281105990781), (181.98614318706697, -164.5161290322581), (190.3002309468822, -162.67281105990781), (190.3002309468822, -112.90322580645159), (193.99538106235568, -109.21658986175117), (232.7944572748268, -109.21658986175117), (266.97459584295615, -63.13364055299536), (266.05080831408776, 62.21198156682027), (232.7944572748268, 109.21658986175115), (193.99538106235568, 109.21658986175115), (190.3002309468822, 111.98156682027647), (190.3002309468822, 162.67281105990784), (181.98614318706697, 164.51612903225805), (165.3579676674365, 162.67281105990784), (123.78752886836028, 123.04147465437785), (117.32101616628177, 123.04147465437785), ], rotation_angle=rotation_angle, stp_filename='vacvessel.stp') inner_vessel = paramak.RotateMixedShape( points=[ (269.7459584295612, -46.54377880184336, 'straight'), (231.87066974595842, -46.5437788018433, 'spline'), (223.55658198614316, -62.21198156682027, 'spline'), (207.85219399538107, -80.64516129032262, 'spline'), (166.28175519630486, -115.66820276497697, 'spline'), (164.43418013856814, -119.35483870967744, 'spline'), (164.43418013856814, -122.11981566820276, 'straight'), (173.67205542725173, -140.5529953917051, 'straight'), (184.75750577367205, -140.5529953917051, 'straight'), (184.75750577367205, -158.98617511520735, 'straight'), (181.98614318706697, -159.9078341013825, 'straight'), (147.80600461893764, -118.43317972350235, 'straight'), (129.33025404157044, -123.04147465437785, 'straight'), (145.95842956120094, -111.05990783410135, 'straight'), (126.55889145496536, -50.23041474654377, 'straight'), (127.48267898383372, 50.23041474654377, 'straight'), (145.95842956120094, 110.13824884792626, 'straight'), (128.40646651270208, 123.04147465437785, 'straight'), (147.80600461893764, 117.51152073732717, 'straight'), (181.98614318706697, 159.90783410138246, 'straight'), (185.6812933025404, 158.98617511520735, 'straight'), (184.75750577367205, 140.55299539170505, 'straight'), (172.74826789838338, 140.55299539170505, 'spline'), (164.43418013856814, 121.19815668202764, 'spline'), (164.43418013856814, 118.43317972350229, 'spline'), (165.3579676674365, 115.66820276497694, 'spline'), (173.67205542725173, 111.05990783410135, 'spline'), (207.85219399538107, 80.64516129032256, 'spline'), (220.7852193995381, 66.82027649769586, 'spline'), (231.87066974595842, 46.5437788018433, 'spline'), (268.82217090069287, 46.5437788018433, 'straight'), (268.82217090069287, 63.13364055299536, 'straight'), (233.71824480369514, 111.98156682027647, 'straight'), (193.99538106235568, 112.90322580645159, 'straight'), (192.14780600461893, 164.51612903225805, 'straight'), (163.51039260969978, 166.35944700460828, 'straight'), (121.93995381062356, 123.96313364055297, 'straight'), (121.0161662817552, -125.80645161290323, 'straight'), (163.51039260969978, -166.35944700460834, 'straight'), (192.14780600461893, -166.35944700460834, 'straight'), (193.99538106235568, -112.90322580645159, 'straight'), (234.64203233256353, -111.9815668202765, 'straight'), (269.7459584295612, -63.13364055299536, 'straight'), ], rotation_angle=rotation_angle, stp_filename='inner_vessel.stp', cut=[vac_vessel, vs_coils, antenna]) sparc = paramak.Reactor([ inboard_pf_coils, outboard_pf_coils, plasma, antenna, vs_coils, inner_vessel, tf_coil, EFCCu_coils_1, EFCCu_coils_2, EFCCu_coils_3, EFCCu_coils_4, EFCCu_coils_5, EFCCu_coils_6, vac_vessel, div_coils ]) sparc.export_stp() sparc.export_svg('htc_reactor.svg') sparc.export_html('htc_reactor.html')
def main(): rot_angle = 180 all_components = [] plasma = paramak.Plasma( # default parameters rotation_angle=rot_angle, stp_filename="plasma_shape.stp", ) all_components.append(plasma) component = paramak.BlanketFP( plasma=plasma, thickness=100, stop_angle=90, start_angle=-90, offset_from_plasma=30, rotation_angle=rot_angle, stp_filename="blanket_constant_thickness_outboard_plasma.stp", ) all_components.append(component) component = paramak.BlanketCutterStar(height=2000, width=2000, distance=100) all_components.append(component) component = paramak.BlanketFP( plasma=plasma, thickness=100, stop_angle=90, start_angle=250, offset_from_plasma=30, rotation_angle=rot_angle, stp_filename="blanket_constant_thickness_inboard_plasma.stp", ) all_components.append(component) component = paramak.BlanketFP( plasma=plasma, thickness=100, stop_angle=250, start_angle=-90, offset_from_plasma=30, rotation_angle=rot_angle, stp_filename="blanket_constant_thickness_plasma.stp", ) all_components.append(component) CenterColumnShieldCylinder = paramak.CenterColumnShieldCylinder( inner_radius=80, outer_radius=100, height=300, rotation_angle=rot_angle, stp_filename="center_column_shield_cylinder.stp", ) all_components.append(CenterColumnShieldCylinder) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldCylinder, thickness=50, rotation_angle=rot_angle, stp_filename="firstwall_from_center_column_shield_cylinder.stp", ) all_components.append(component) CenterColumnShieldHyperbola = paramak.CenterColumnShieldHyperbola( inner_radius=50, mid_radius=75, outer_radius=100, height=300, rotation_angle=rot_angle, stp_filename="center_column_shield_hyperbola.stp", ) all_components.append(CenterColumnShieldHyperbola) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldHyperbola, thickness=50, rotation_angle=rot_angle, stp_filename="firstwall_from_center_column_shield_hyperbola.stp", ) all_components.append(component) CenterColumnShieldCircular = paramak.CenterColumnShieldCircular( inner_radius=50, mid_radius=75, outer_radius=100, height=300, rotation_angle=rot_angle, stp_filename="center_column_shield_circular.stp", ) all_components.append(CenterColumnShieldCircular) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldCircular, thickness=50, rotation_angle=rot_angle, stp_filename="firstwall_from_center_column_shield_circular.stp", ) all_components.append(component) CenterColumnShieldFlatTopHyperbola = paramak.CenterColumnShieldFlatTopHyperbola( inner_radius=50, mid_radius=75, outer_radius=100, arc_height=220, height=300, rotation_angle=rot_angle, stp_filename="center_column_shield_flat_top_hyperbola.stp", ) all_components.append(CenterColumnShieldFlatTopHyperbola) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldFlatTopHyperbola, thickness=50, rotation_angle=rot_angle, stp_filename= "firstwall_from_center_column_shield_flat_top_hyperbola.stp", ) all_components.append(component) CenterColumnShieldFlatTopCircular = paramak.CenterColumnShieldFlatTopCircular( inner_radius=50, mid_radius=75, outer_radius=100, arc_height=220, height=300, rotation_angle=rot_angle, stp_filename="center_column_shield_flat_top_Circular.stp", ) all_components.append(CenterColumnShieldFlatTopCircular) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldFlatTopCircular, thickness=50, rotation_angle=rot_angle, stp_filename= "firstwall_from_center_column_shield_flat_top_Circular.stp", ) all_components.append(component) CenterColumnShieldPlasmaHyperbola = paramak.CenterColumnShieldPlasmaHyperbola( inner_radius=150, mid_offset=50, edge_offset=40, height=800, rotation_angle=rot_angle, stp_filename="center_column_shield_plasma_hyperbola.stp", ) all_components.append(CenterColumnShieldPlasmaHyperbola) component = paramak.InboardFirstwallFCCS( central_column_shield=CenterColumnShieldPlasmaHyperbola, thickness=50, rotation_angle=rot_angle, stp_filename="firstwall_from_center_column_shield_plasma_hyperbola.stp", ) all_components.append(component) component = paramak.InnerTfCoilsCircular( inner_radius=25, outer_radius=100, number_of_coils=10, gap_size=5, height=300, stp_filename="inner_tf_coils_circular.stp", ) all_components.append(component) component = paramak.InnerTfCoilsFlat( inner_radius=25, outer_radius=100, number_of_coils=10, gap_size=5, height=300, stp_filename="inner_tf_coils_flat.stp", ) all_components.append(component) # this makes 4 pf coil cases pf_coil_set = paramak.PoloidalFieldCoilCaseSet( heights=[10, 10, 20, 20], widths=[10, 10, 20, 40], casing_thicknesses=[5, 5, 10, 10], center_points=[(100, 100), (100, 150), (50, 200), (50, 50)], rotation_angle=rot_angle, stp_filename="pf_coil_case_set.stp") all_components.append(pf_coil_set) # this makes 4 pf coils pf_coil_set = paramak.PoloidalFieldCoilSet(heights=[10, 10, 20, 20], widths=[10, 10, 20, 40], center_points=[(100, 100), (100, 150), (50, 200), (50, 50)], rotation_angle=rot_angle, stp_filename="pf_coil_set.stp") all_components.append(pf_coil_set) # this makes 4 pf coil cases for the 4 pf coils made above component = paramak.PoloidalFieldCoilCaseSetFC( pf_coils=pf_coil_set, casing_thicknesses=[5, 5, 10, 10], rotation_angle=rot_angle, stp_filename="pf_coil_cases_set.stp") all_components.append(component) # this makes 1 pf coils pf_coil = paramak.PoloidalFieldCoil(center_point=(100, 100), height=20, width=20, rotation_angle=rot_angle, stp_filename="poloidal_field_coil.stp") all_components.append(pf_coil) # this makes one PF coil case for the provided pf coil component = paramak.PoloidalFieldCoilCaseSetFC( pf_coils=[pf_coil], casing_thicknesses=[10], rotation_angle=rot_angle, stp_filename="pf_coil_cases_set_fc.stp") all_components.append(component) component = paramak.PoloidalFieldCoilCaseFC( pf_coil=pf_coil, casing_thickness=10, rotation_angle=rot_angle, stp_filename="poloidal_field_coil_case_fc.stp", ) all_components.append(component) component = paramak.PoloidalFieldCoilCase( center_point=(100, 100), coil_height=20, coil_width=20, casing_thickness=10, rotation_angle=rot_angle, stp_filename="poloidal_field_coil_case.stp", ) all_components.append(component) component = paramak.BlanketConstantThicknessArcV( inner_lower_point=(300, -200), inner_mid_point=(500, 0), inner_upper_point=(300, 200), thickness=100, rotation_angle=rot_angle, stp_filename="blanket_arc_v.stp", ) all_components.append(component) component = paramak.BlanketConstantThicknessArcH( inner_lower_point=(300, -200), inner_mid_point=(400, 0), inner_upper_point=(300, 200), thickness=100, rotation_angle=rot_angle, stp_filename="blanket_arc_h.stp", ) all_components.append(component) component = paramak.ToroidalFieldCoilRectangle( horizontal_start_point=(100, 700), vertical_mid_point=(800, 0), thickness=150, distance=60, stp_filename="tf_coil_rectangle.stp", number_of_coils=1, ) all_components.append(component) component = paramak.ToroidalFieldCoilCoatHanger( horizontal_start_point=(200, 500), horizontal_length=400, vertical_mid_point=(700, 50), vertical_length=500, thickness=50, distance=50, stp_filename="toroidal_field_coil_coat_hanger.stp", number_of_coils=1, ) all_components.append(component) component = paramak.ToroidalFieldCoilTripleArc( R1=80, h=200, radii=(70, 100), coverages=(60, 60), thickness=30, distance=30, number_of_coils=1, stp_filename="toroidal_field_coil_triple_arc.stp") all_components.append(component) magnet = paramak.ToroidalFieldCoilPrincetonD( R1=80, R2=300, thickness=30, distance=30, number_of_coils=1, stp_filename="toroidal_field_coil_princeton_d.stp") all_components.append(magnet) component = paramak.ITERtypeDivertor( # default parameters rotation_angle=rot_angle, stp_filename="ITER_type_divertor.stp", ) all_components.append(component) component = paramak.PortCutterRotated(center_point=(450, 0), polar_coverage_angle=20, rotation_angle=10, polar_placement_angle=45, azimuth_placement_angle=0) all_components.append(component) component = paramak.PortCutterRectangular( distance=3, z_pos=0, height=0.2, width=0.4, fillet_radius=0.02, azimuth_placement_angle=[0, 45, 90, 180]) all_components.append(component) component = paramak.PortCutterCircular( distance=3, z_pos=0.25, radius=0.1, # azimuth_placement_angle=[0, 45, 90, 180], # TODO: fix issue #548 azimuth_placement_angle=[0, 45, 90], ) all_components.append(component) component = paramak.VacuumVessel(height=2, inner_radius=1, thickness=0.2, rotation_angle=270) all_components.append(component) component = paramak.CoolantChannelRingStraight( height=200, channel_radius=10, ring_radius=70, number_of_coolant_channels=8, workplane="XY", rotation_axis="Z", stp_filename="coolant_channel_ring_straight.stp", ) all_components.append(component) component = paramak.CoolantChannelRingCurved( height=200, channel_radius=10, ring_radius=70, mid_offset=-20, number_of_coolant_channels=8, workplane="XY", path_workplane="XZ", stp_filename="coolant_channel_ring_curved.stp", force_cross_section=True) all_components.append(component) component = paramak.RotatedIsoscelesTriangle( height=20, base_length=15, pivot_angle=0, pivot_point=(100, 50), rotation_angle=70, workplane='XY', stp_filename='rotated_isosceles_triangle.stp') all_components.append(component) component = paramak.RotatedTrapezoid(length_1=10, length_2=20, length_3=30, pivot_angle=0, pivot_point=(100, 50), rotation_angle=45, stp_filename='rotated_trapezoid.stp') all_components.append(component) component = paramak.PoloidalSegments(number_of_segments=5, center_point=(400, 50)) all_components.append(component) component = paramak.TFCoilCasing(magnet=magnet, inner_offset=10, outer_offset=15, vertical_section_offset=20, distance=40) all_components.append(component) component = paramak.HexagonPin(length_of_side=5, distance=10, center_point=(10, 20)) all_components.append(component) return all_components