Кажется затея так себе...
Что скрывает КЭ55
Если вы слабо знакомы с КЭ55, то на первый взгляд это простая пружинка и проще ничего быть не может, но если в расчетной схеме элемент используется для моделирования стыков под разными углами и в разных направлениях то могут возникнуть проблемы.
Значение в элементе зависит от выбора системы координат для него. Если элемент имеет местную систему координат, то знаки и значения усилий в пружинках вы получите относительно местных осей элемента. И если элемент повернут в пространстве, то для вычисления вертикальных или горизонтальных реакций вдоль глобальных осей следует делить значение усилия в элементе на cos угла наклона, что не очень удобно. То есть пользоваться цветовой шкалой SCAD++ для оценки не получится напрямую, так как проекционное значение будет зависеть от угла наклона пружины. А чаще всего нас интересует именно проекционное значение (например напряжение в растворном шве панельного здания, где шов смоделирован рядом КЭ55)
При выборе глобальной системы координат КЭ55 вы получите на шкалах истинные значения в проекциях по глобальным осям, но знак усилия в элементах будет зависеть от значения перемещения между 1 и 2 узлом в глобальных осях.
Чтобы стало понятно о чем речь я создал расчетную схему с 2 пружинами КЭ55. Левая пружина нарисована снизу вверх. То есть нижний узел 1, а верхний 2-ой. Правая пружина нарисована сверху вниз. На обе пружины задана одинаковая вертикальная нагрузка 1т. Обе пружины находятся в глобальной системе осей (к ним не применена местная система координат).
Получили при одинаковой вертикальной нагрузке 1т. Левом элементе знак плюс, а в правом элементе знак минус. Но мы же пониманием, что знак будет одинаковым и обе пружины будут сжаты.
Это происходит из-за правила знаков SCAD++ для этих элементов. Которое отображает знак в зависимости перемещения 2го узла относительно первого вдоль оси глобальной системы координат.
Это правило знаков начинает работать только если к пружинам не применена местная система координат
Как с этим дружить?
В нашем случае пружин очень много (моделирование растворных швов) и отслеживать вручную каждую пружину (тысячи пружинок) не представляется возможным. Какие-то фрагменты расчетной схемы могут переносится импортом dxf, копированием, разворотом и.т.д. Поэтому гарантии того, что каждый КЭ55 прорисован снизу вверх нет никакой.
Эту гарантию нам и даст JScript for SCAD++
Нужно заметить, что жесткости пружин в нашей задачи тоже разные. Так как жесткость зависит от грузовой площади опирающегося на пружинку пластинчатого КЭ.
Гладко было на бумаге
На самом деле оврагов никаких нет и все произойдет в пару строк кода, но все равно нужно описать алгоритм.
1. Получаем список КЭ55
2. Обращаемся к каждому элементу запрашивая у него координаты узла.
3. Если координата 2-го узла меньше координаты первого узла то:
а) Запоминаем жесткость и номера узлов
б) Удаляем элемент
в) Рисуем элемент правильно (в нужной последовательности и с жесткостью которую запомнили)
К самому коду
Тут постарался закомментировать в листинге все что описал выше, поэтому проблем думаю не будет.
Скачать программу можно по ссылке