class_docstr: Cables are structures in engineering that support
  the applied transverse loads through the tensile
  resistance developed in its members.
  
  Cables are widely used in suspension bridges, tension
  leg offshore platforms, transmission lines, and find
  use in several other engineering applications.
  
  Examples
  ========
  A cable is supported at (0, 10) and (10, 10). Two point loads
  acting vertically downwards act on the cable, one with magnitude 3 kN
  and acting 2 meters from the left support and 3 meters below it, while
  the other with magnitude 2 kN is 6 meters from the left support and
  6 meters below it.
  
  >>> from sympy.physics.continuum_mechanics.cable import Cable
  >>> c = Cable(('A', 0, 10), ('B', 10, 10))
  >>> c.apply_load(-1, ('P', 2, 7, 3, 270))
  >>> c.apply_load(-1, ('Q', 6, 4, 2, 270))
  >>> c.loads
  {'distributed': {}, 'point_load': {'P': [3, 270], 'Q': [2, 270]}}
  >>> c.loads_position
  {'P': [2, 7], 'Q': [6, 4]}
class_docstr_tok: ["Cables","are","structures","in","engineering","that","support","the","applied","transverse","loads","through","the","tensile","resistance","developed","in","its","members",".","Cables","are","widely","used","in","suspension","bridges",",","tension","leg","offshore","platforms",",","transmission","lines",",","and","find","use","in","several","other","engineering","applications",".","Examples","========","A","cable","is","supported","at","(","0",",","10",")","and","(","10",",","10",")",".","Two","point","loads","acting","vertically","downwards","act","on","the","cable",",","one","with","magnitude","3","kN","and","acting","2","meters","from","the","left","support","and","3","meters","below","it",",","while","the","other","with","magnitude","2","kN","is","6","meters","from","the","left","support","and","6","meters","below","it",".",">",">",">","from","sympy.physics.continuum_mechanics.cable","import","Cable",">",">",">","c","=","Cable","(","(","'","A","'",",","0",",","10",")",",","(","'","B","'",",","10",",","10",")",")",">",">",">","c.apply_load","(","-1",",","(","'","P","'",",","2",",","7",",","3",",","270",")",")",">",">",">","c.apply_load","(","-1",",","(","'","Q","'",",","6",",","4",",","2",",","270",")",")",">",">",">","c.loads","{","'distributed","'",":","{","}",",","'point_load","'",":","{","'","P","'",":","[","3",",","270","]",",","'","Q","'",":","[","2",",","270","]","}","}",">",">",">","c.loads_position","{","'","P","'",":","[","2",",","7","]",",","'","Q","'",":","[","6",",","4","]","}"]
docstr: This method changes the mentioned support with a new support.
  
  Parameters
  ==========
  label: String or symbol
      The label of the support to be changed
  
  new_support: Tuple of the form (new_label, x, y)
      new_label: String or symbol
          The label of the new support
  
      x: Sympifyable
          The x-coordinate of the position of the new support.
  
      y: Sympifyable
          The y-coordinate of the position of the new support.
  
  Examples
  ========
  
  >>> from sympy.physics.continuum_mechanics.cable import Cable
  >>> c = Cable(('A', 0, 10), ('B', 10, 10))
  >>> c.supports
  {'A': [0, 10], 'B': [10, 10]}
  >>> c.change_support('B', ('C', 5, 6))
  >>> c.supports
  {'A': [0, 10], 'C': [5, 6]}
docstr_tok: ["This","method","changes","the","mentioned","support","with","a","new","support",".","Parameters","==========","label",":","String","or","symbol","The","label","of","the","support","to","be","changed","new_support",":","Tuple","of","the","form","(","new_label",",","x",",","y",")","new_label",":","String","or","symbol","The","label","of","the","new","support","x",":","Sympifyable","The","x-coordinate","of","the","position","of","the","new","support",".","y",":","Sympifyable","The","y-coordinate","of","the","position","of","the","new","support",".","Examples","========",">",">",">","from","sympy.physics.continuum_mechanics.cable","import","Cable",">",">",">","c","=","Cable","(","(","'","A","'",",","0",",","10",")",",","(","'","B","'",",","10",",","10",")",")",">",">",">","c.supports","{","'","A","'",":","[","0",",","10","]",",","'","B","'",":","[","10",",","10","]","}",">",">",">","c.change_support","(","'","B","'",",","(","'","C","'",",","5",",","6",")",")",">",">",">","c.supports","{","'","A","'",":","[","0",",","10","]",",","'","C","'",":","[","5",",","6","]","}"]
code: def change_support(self, label, new_support):
      """
      This method changes the mentioned support with a new support.
  
      Parameters
      ==========
      label: String or symbol
          The label of the support to be changed
  
      new_support: Tuple of the form (new_label, x, y)
          new_label: String or symbol
              The label of the new support
  
          x: Sympifyable
              The x-coordinate of the position of the new support.
  
          y: Sympifyable
              The y-coordinate of the position of the new support.
  
      Examples
      ========
  
      >>> from sympy.physics.continuum_mechanics.cable import Cable
      >>> c = Cable(('A', 0, 10), ('B', 10, 10))
      >>> c.supports
      {'A': [0, 10], 'B': [10, 10]}
      >>> c.change_support('B', ('C', 5, 6))
      >>> c.supports
      {'A': [0, 10], 'C': [5, 6]}
      """
      if label not in self._supports:
          raise ValueError("No support exists with the given label")
  
      i = self._support_labels.index(label)
      rem_label = self._support_labels[(i + 1) % 2]
      x1 = self._supports[rem_label][0]
      y1 = self._supports[rem_label][1]
  
      x = sympify(new_support[1])
      y = sympify(new_support[2])
  
      for l in self._loads_position:
          if l[0] >= max(x, x1) or l[0] <= min(x, x1):
              raise ValueError(
                  "The change in support will throw an existing load out of range"
              )
  
      self._supports.pop(label)
      self._left_support.clear()
      self._right_support.clear()
      self._reaction_loads.clear()
      self._support_labels.remove(label)
  
      self._supports[new_support[0]] = [x, y]
  
      if x1 < x:
          self._left_support.append(x1)
          self._left_support.append(y1)
          self._right_support.append(x)
          self._right_support.append(y)
          self._support_labels.append(new_support[0])
  
      else:
          self._left_support.append(x)
          self._left_support.append(y)
          self._right_support.append(x1)
          self._right_support.append(y1)
          self._support_labels.insert(0, new_support[0])
  
      for i in self._support_labels:
          self._reaction_loads[Symbol("R_" + i + "_x")] = 0
          self._reaction_loads[Symbol("R_" + i + "_y")] = 0
  
file_path: sympy/sympy/physics/continuum_mechanics/cable.py
imports: from sympy.core.sympify import sympify
  from sympy.core.symbol import Symbol
label_desc: Use image node_id 10 for calling the Cable obj's underlying member method code with example usage: obj.change_support(label, new_support) without return types