pyleecan.Classes.Arc module

Method code available at https://github.com/Eomys/pyleecan/tree/master/pyleecan/Methods/Geometry/Arc

class Arc(prop_dict=None, init_dict=None, init_str=None)[source]

Bases: Line

Abstract class for arc

VERSION = 1
draw_FEMM(femm, nodeprop=None, maxseg=None, element_size=None, propname=None, hide=False, group=None, is_draw=True)

Draw the Arc object in FEMM and assign the property

Parameters:
  • femm (FEMMHandler) – client to send command to a FEMM instance

  • nodeprop

    Nodal property

    (Default value = None)

  • maxseg

    Meshed with elements that span at most maxsegdeg degrees per element

    (Default value = None)

  • propname

    Boundary property ’propname’

    (Default value = None)

  • hide

    0 = not hidden in post-processor, 1 == hidden in post processor

    (Default value = False)

  • group

    the group the Arc1 object belongs

    (Default value = None)

  • is_draw (bool) – 1 to draw the list of surfaces given

Return type:

None

intersect_line(Z1, Z2)

Return a list (0, 1 or 2 complex) of coordinates of the intersection of the arc with a line defined by two complex

Parameters:

self (Arc) – An Arc object

Returns:

Z_list – Complex coordinates of the intersection (if any)

Return type:

list

is_on_line(Z)

Check is a point defined by its complex coordinate is on the arc

Parameters:
  • self (Arc) – An Arc object

  • Z (complex) – Complex coordinate of the point

Returns:

is_on_line – True if the point is on the arc

Return type:

bool

split_line(Z1, Z2, is_join=False, prop_dict_join=None)

Cut the Arc according to a line defined by two complex “Above” is in the coordinate system with Z1 in 0 and Z2 on the X>0 axis

Parameters:
  • self (Segment) – An Segment object

  • Z1 (complex) – First point of the cutting Line

  • Z2 (complex) – Second point of the cutting Line

  • is_join (bool) – True to join the split_list with Segment if there is more that one remaining parts

  • prop_dict_join (dict) – Property dict to set on the join line

Returns:

top_split_list, bot_split_list – Both part of the arc

Return type:

([Line], [Line])

comp_distance(Z)

Compute the distance of a point to the Arc

Parameters:
  • self (Arc) – An Arc object

  • Z (complex) – Complex coordinate of the point

Returns:

D – distance of a point to the Segment

Return type:

float

plot(fig=None, ax=None, linestyle='solid', linewidth=1, color='black', label=None, offset_label=0, fontsize=12)

Plot the Arc

Parameters:
  • self (Arc) – An Arc object

  • fig (Matplotlib.figure.Figure) – existing figure to use if None create a new one

  • ax (Matplotlib.axes.Axes object) – Axis on which to plot the data

  • linestyle (str) – Line of the line (solid, dotted…)

  • linewidth (int) – Line Width

  • color (str) – Color of the line

  • label (str) – To add a label at the middle of the line

  • offset_label (complex) – Complex value to shift the label from the middle

  • fontsize (int) – Size of the font for the label (if any)

Returns:

  • fig (Matplotlib.figure.Figure) – Figure containing the plot

  • ax (Matplotlib.axes.Axes object) – Axis containing the plot

comp_maxseg(elementsize, maxseg_amp)

Computes the number of segments per arc degrees in function of the elementsize of the region

Parameters:
  • self (Arc) – An Arc object

  • elementsize (float) – max element size parameter

  • maxseg_amp (float) – amplifying factor

Returns:

maxseg – number of segments per arc degrees

Return type:

float

intersect_obj(other, is_on_line=True)

Find the intersection points between this line and another line object

Parameters:
  • self (Arc) – An Arc object

  • other (Line) – The other line object to intersect

  • is_on_line (bool) – True to return only points that are on both Line objects

Returns:

Z_list – Complex coordinates of the intersection (if any)

Return type:

list

is_arc()

Check if the line is an Arc

Parameters:

self (Arc) – An Arc object

Returns:

is_arc – True for Arc

Return type:

bool

save(save_path='', is_folder=False, type_handle_old=2, type_compression=0)

Save the object to the save_path

Parameters:
  • self – A pyleecan object

  • save_path (str) – path to the folder to save the object

  • is_folder (bool) – to split the object in different files: separate simulation machine and materials (json only)

  • type_handle_old (int) – How to handle old file in folder mode (0:Nothing, 1:Delete, 2:Move to “Backup” folder)

  • type_compression (int) – Available only for json, 0: no compression, 1: gzip

get_logger()

Get the object logger or its parent’s one

Parameters:

obj – A pyleecan object

Returns:

logger – Pyleecan object dedicated logger

Return type:

logging.Logger

compare(other, name='self', ignore_list=None, is_add_value=False)[source]

Compare two objects and return list of differences

as_dict(type_handle_ndarray=0, keep_function=False, **kwargs)[source]

Convert this object in a json serializable dict (can be use in __init__). type_handle_ndarray: int

How to handle ndarray (0: tolist, 1: copy, 2: nothing)

keep_functionbool

True to keep the function object, else return str

Optional keyword input parameter is for internal use only and may prevent json serializability.

copy()[source]

Creates a deepcopy of the object