Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

3.1. Построение геометрии

Truss.add_node()

add_node(*args)

Этот метод добавляет узлы в ферму.

Аргументы:

  • (label, x, y) — кортеж, где:

    • label — метка узла (строка или символ).

    • x — координата узла по оси X.

    • y — координата узла по оси Y.

Пример

from sympy.physics.continuum_mechanics.truss import Truss

t = Truss()
t.add_node(("A", 0, 0))
print(t.nodes)  # [("A", 0, 0)]
t.add_node(("B", 3, 0), ("C", 4, 1))
print(t.nodes)  # [("A", 0, 0), ("B", 3, 0), ("C", 4, 1)]
p = t.draw()
p.xlim = (-1, 5)  # Границы по X
p.ylim = (-1, 2)  # Границы по Y
p.show()
[('A', 0, 0)]
[('A', 0, 0), ('B', 3, 0), ('C', 4, 1)]
<Figure size 640x480 with 1 Axes>

Truss.add_member()

add_member(*args)

Этот метод добавляет стержень между двумя узлами фермы.

Аргументы:

  • (label, start, end) — кортеж, где:

    • label — метка стержня (строка или символ).

    • start — метка начального узла.

    • end — метка конечного узла.

Пример

from sympy.physics.continuum_mechanics.truss import Truss

t = Truss()
t.add_node(("A", 0, 0), ("B", 3, 0), ("C", 2, 2))
t.add_member(("AB", "A", "B"), ("BC", "B", "C"))
print(t.members)  # {"AB": ["A", "B"], "BC": ["B", "C"]}
t.draw().show()
{'AB': ['A', 'B'], 'BC': ['B', 'C']}
<Figure size 640x480 with 1 Axes>

Truss.remove_node()

remove_node()

Данный метод удаляет узел из фермы. Допускается одновременное удаление нескольких узлов.

Аргументы: Входными данными для этого метода являются метки удаляемых узлов.

  • label — строка или символ

Метка узла, который необходимо удалить.

Пример

from sympy.physics.continuum_mechanics.truss import Truss
t = Truss()
t.add_node(('A', 0, 0), ('B', 3, 0), ('C', 5, 0))
print(t.nodes)
t.remove_node('A', 'C')
print(t.nodes)
p = t.draw()
p.xlim = (1, 5)
p.ylim = (-1, 1)
p.show()
[('A', 0, 0), ('B', 3, 0), ('C', 5, 0)]
[('B', 3, 0)]
<Figure size 640x480 with 1 Axes>

Truss.remove_member()

remove_member()

Данный метод удаляет стержни из заданной фермы.

Аргументы:

  • labels — строка или символ

Метка удаляемого стержня.

Пример

from sympy.physics.continuum_mechanics.truss import Truss
t = Truss()
t.add_node(('A', 0, 0), ('B', 3, 0), ('C', 2, 2))
t.add_member(('AB', 'A', 'B'), ('AC', 'A', 'C'), ('BC', 'B', 'C'))
print(t.members)
t.remove_member('AC', 'BC')
print(t.members)
t.draw().show()
{'AB': ['A', 'B'], 'AC': ['A', 'C'], 'BC': ['B', 'C']}
{'AB': ['A', 'B']}
<Figure size 640x480 with 1 Axes>

Truss.change_node_label()

change_node_label()

Изменяет метку указанного узла.

Аргументы:

(label, new_label) — кортеж, где:

  • label — текущая метка узла.

  • new_label — новая метка узла.

Пример

from sympy.physics.continuum_mechanics.truss import Truss

t = Truss()
t.add_node(("A", 0, 0), ("B", 3, 0))
print(t.nodes)
[('A', 0, 0), ('B', 3, 0)]
t.change_node_label(("A", "C"), ("B", "D"))
print(t.nodes)
[('C', 0, 0), ('D', 3, 0)]

Truss.change_member_label()

change_member_label()

Метод изменяет метку указанного стержня.

Аргументы

(label, new_label) — кортеж, где:

  • label — текущая метка стержня.

  • new_label — новая метка стержня.

Пример

from sympy.physics.continuum_mechanics.truss import Truss

t = Truss()
t.add_node(("A", 0, 0), ("B", 3, 0), ("D", 5, 0))
t.add_member(("AB", "A", "B"), ("BD", "B", "D"))
print(t.members)  # {"AB": ["A", "B"], "BD": ["B", "D"]}
t.change_member_label(("AB", "BC_new"), ("BD", "BD_new"))
print(t.members)  # {"BC_new": ["B", "C"], "BD_new": ["B", "D"]}
{'AB': ['A', 'B'], 'BD': ['B', 'D']}
{'BC_new': ['A', 'B'], 'BD_new': ['B', 'D']}