Segment (class)

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

class Segment(begin=0, end=0, label='', init_dict=None, init_str=None)[source]

Bases: pyleecan.Classes.Line.Line

A segment between two points

VERSION = 1
check()

assert that the line is correct (begin != end)

Parameters

self (Segment) – A Segment object

Returns

Return type

None

Raises

PointSegmentError – The beginning point and the ending point of an Segment can’t be the same

comp_length()

Compute the length of the line

Parameters

self (Segment) – A Segment object

Returns

length – lenght of the line [m]

Return type

float

Raises

PointSegmentError – Call Segment.check()

discretize(nb_point=0)

Return the discretize version of the Segment. Begin and end are always returned

Parameters
  • self (Segment) – A Segment object

  • nb_point (int) – Number of points to add to discretize the line (Default value = LINE_NPOINT_D)

Returns

list_point – List of complex coordinate of the points

Return type

list

Raises

NbPointSegmentDError – nb_point must be an integer >=

draw_FEMM(femm, nodeprop=None, propname=None, element_size=None, automesh=None, hide=False, group=None)

< Draw the segment in FEMM and assign the property

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

  • nodeprop

    Nodal property

    (Default value = None)

  • propname

    Boundary property ’propname’

    (Default value = None)

  • element_size

    Local element size along segment no greater than element_size

    (Default value = None)

  • automesh – 0 = mesher defers to the element constraint defined by element_size, 1 = mesher automatically chooses mesh size along the selected segments (Default value = None)

  • hide

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

    (Default value = False)

  • group

    group the segment belongs

    (Default value = None)

get_begin()

Return the begin point of the segment

Parameters

self (Segment) – A Segment object

Returns

begin – Begin point of the Segment

Return type

complex

get_end()

Return the end point of the segment

Parameters

self (Segment) – A Segment object

Returns

end – End point of the Segment

Return type

complex

get_middle()

Return the point at the middle of the Segment

Parameters

self (Segment) – A Segment object

Returns

Zmid – Complex coordinates of the middle of the Segment

Return type

complex

intersect_line(Z1, Z2)

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

Parameters

self (Segment) – A Segment object

Returns

Z_list – Complex coordinates of the intersection (if any, return [begin, end] if the segment is part of the line)

Return type

list

reverse()

Reverse the begin and end point of the Line

Parameters

self (Segment) – An Segment object

rotate(angle)

Rotation of the Segment of angle

Parameters
  • self (Segment) – An Segment Object

  • angle (float) – the angle of rotation [rad]

Returns

Return type

None

split_half(is_begin=True)

Cut the line in half (modify the object)

Parameters
  • self (Segment) – An Segment object

  • is_begin (bool) – True to keep the part begin=>middle, False for the part middle=>end

split_line(Z1, Z2, is_top=True, is_join=False, label_join='')

Cut the Segment according to a line defined by two complex

Parameters
  • self (Segment) – An Segment object

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

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

  • is_top (bool) – True to keep the part above the cutting line. “Above” is in the coordinate system with Z1 in 0 and Z2 on the X>0 axis

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

  • label_join (str) – Label of the join line

Returns

split_list – The selected part of the Segment (0 or 1 segment depending on cutting point)

Return type

list(Segment)

translate(Zt)

Translate the Segment object

Parameters
  • self (Segment) – An Segment object

  • Zt (complex) – Complex value for translation

Returns

Return type

None

is_on_line(Z)

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

Parameters
  • self (Segment) – A Segment object

  • Z (complex) – Complex coordinate of the point

Returns

is_on_line – True if the point is on the segment

Return type

bool

comp_distance(Z)

Compute the distance of a point to the Segment

Parameters
  • self (Segment) – A Segment object

  • Z (complex) – Complex coordinate of the point

Returns

D – distance of a point to the Segment

Return type

float

save(save_path='', is_folder=False)

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

copy()

Return a copy of the class

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

as_dict()[source]

Convert this object in a json seriable dict (can be use in __init__)

property begin

begin point of the line

Type

complex

property end

end point of the line

Type

complex