Блог о программном обеспечении

Зачем оно нужно?
Публиковать для себя разные вещи, чтобы потом не искать их у себя по разным папкам.
И, конечно, - делиться открытой информацией с другими.
Коротко по темам Caelinux - самый инженерный дистрибутив линукс;
CalculiX - мощная программа для расчетов по МКЭ;
OpenOffice Basic - то что легче выучить и затем эффективно использовать
Maxima - символьная математика от Вильяма Шеллтера, профессора Остинского университета. Все прочее - понемногу.

Зависимость натяжения вант от температуры

Данная задача - сугубо практическая, потому что ванты с одной стороны весьма чувствительны к температуре, а с другой стороны в проекте КМ согласно норм требуется указывать натяжение в температурном диапазоне.
Вот тут с пользователем Ильнур развернули большую тему по канатам.
Итак, поехали.
Относительное изменение хорды оттяжки ε=ΔL/L связано с напряжением уравнением нити:

где P=p/A, Н/м^3 – поперечная нагрузка, Н/м, отнесенная к площади А, м^2; индекс "0" относится к величинам исходного состояния.
Примем за исходное состояние – состояние при температуре t и обозначим Δt=t-t0. При изменении температуры ствол деформируется на величину α·Δt, что повлечет за собой изменение длины оттяжки на ΔL = α·Δt·(sinβ)^2, где β – угол наклона оттяжки к горизонту. С изменением температуры поперечная нагрузка (собственный вес) не меняется, поэтому можно принять:
P = P0 = γ = g·cosβ /A,
где g – погонный вес, Н/м; А – площадь ванты.
Подставляя указанные величины в уравнение нити и производя преобразования, получаем разрешающее уравнение, позволяющее скорректировать напряжение с учетом изменения температуры:
или
где
Действительный корень уравнения определяется формулой:
Определив из уравнения величину напряжения при заданном перепаде температур определяем как обычно - умножением напряжения на площадь.
Указанная методика рекомендована в книге
Petersen, Chr. (1970): Guyed masts and chimneys, Verlag Ernst & Sohn, Berlin-München-Düsseldorf, Germany.
Ниже приведен код пользовательской функции для OOo Calc

Function otemp(T, T0, N0, A, g, E, L, beta, h)
' Возвращает тяжение стальной оттяжки мачты, тс, при заданной темературе T
'Описание величин
't = Заданная температура
'T0 - Начальная температура (среднегодовая температура воздуха)
'N0 - Начальное тяжение ванты, тс, при температуре T0
'A = Площадь оттяжки, мм2
'g = Погонный вес отттяжки, кгс/м
'E = Модуль Юнга оттяжки, кгс/см2
'L = Длина оттяжки, м
'beta = Угол наклона оттяжки к горизонту в градусах
'h = Высота ствола под оттяжкой
'Переобозначение переменных и перевод всех величин в систему кгс, см, рад.

N0=N0*1000
A=A/100
g=g/100
L=L*100
beta = beta*3.1416/180
h=h*100

alpha = 0.000012
Gamma = g * Cos(beta) / A
Delta = t - T0
s0 = N0 / A
C = Gamma ^ 2 * L ^ 2 * E / (24 * s0 ^ 3)
B = (1 - C - alpha * Delta * E * (1 - (h / L) * Sin(beta)) / s0)
z = 1 / 6 * (108 * C + 8 * B ^ 3 + 12 * Sqr(81 * C ^ 2 + 12 * C * B ^ 3)) ^ (1 / 3) + 2 / 3 * B ^ 2 / ((108 * C + 8 * B ^ 3 + 12 * Sqr(81 * C ^ 2 + 12 * C * B ^ 3)) ^ (1 / 3)) + 1 / 3 * B
'Искомое усилия тяжения в тс
N = z * s0 * A / 1000
otemp = N
End Function

Пример использования функции:

По ссылке с форума

https://www.tychina.pro/

Хороший сайт, очень аккуратный, но классический советский курс сопромата - омерзительный. Причем удивительно, потому что на русском языке предостаточно хороших статей и монографий, равно как и специалистов тоже. По математике есть отличные книги (например Натансон - краткий курс)
И также удивительно то, что за десятилетия сменился конституционный строй и все такое, а как читали на уровне достижений 30х годов про "допускаемые напряжения", так и продолжают.
К слову в 30е были хорошие учебники и курсы. Всегда всем рекомендую этот: https://dwg.ru/dnl/5326
Экспериментальный и передовой на момент написания, очень четкое и актуальное изложение.
Для стержневых систем, да будет жить в веках: https://dwg.ru/dnl/5225
Относительно хороший новый учебник (с уклоном в мостостроительство)
https://dwg.ru/dnl/5219

К слову сказать, действительно не понятно. Что дает курс сопротивления материалов с точки знаний о материалах и о их сопротивлении и как он способствует например пониманию современных нормативных документов (не 30х годов). Некоторые вещи типа предельных состояний или той же малоцикловой усталости не даются вообще.
Все что в среднем помнит человек из сопромата (ключевого технического предмета) - то, что понять это нельзя в принципе, а можно только зубрить по главам. И какое то правило то ли левой руки, то ли правой ноги - для построения эпюр в РГР.

Дистрибуция приложений в linux

По какой то причине, часто встречается заблуждение, что под линукс невозможно делать и распространять программы, потому что "линуксов много" и это почти невозможно учесть все версии данной операционной системы.
На самом деле - много дистрибутивов, которые отличаются внешней оболочкой, но все они работают на одном и том же ядре, и программы в основном не требуется тестировать на каждом дистрибутиве в отдельности.

Итак, рассмотрим некоторое приложение, например консольное - без графического интерфейса. Например, такое как calculix CCX
 Внешне для пользователя на экране данное приложение выглядит как файл (без расширения exe как в Windows). Этот файл запускается через консоль, вместе с файлом модели и в результате расчета производит много других файлов с результатами расчета.
Данная расчетная программа не работает сама по себе на "одном ядре"
у нее есть внешние библиотеки. В линукс они складированы в недрах системы, закрытых для пользователя системных папках. Это файлы с расширением .so (аналог dll в Windows). Работают они аналогично dll, кстати в Windows та же программа выглядит как один exe файл и несколько dll, которые складируются в одной папке с exe
Так вот, в Linux, в принципе можно вытащить so файлы и складировать их в одной папке с экзешником - эффект будет тот же. Папку с файлами можно будет переносить с одного дистрибутива на другой, где они будут успешно работать.
Можно пойти дальше и при компиляции экзешника посредством GCC добавить ключ -static
в этом случае получится экзешник с уже вшитыми в него библиотеками (весить он будет больше на размер всех библиотек)
Статически линкованный файл будет работать на "голом ядре" в любом линуксе, даже, возможно, очень старом.
В linux есть команда file, позволяющая получить информацию об экзешике, является ли он statially linked или dynamically linked (то есть с библиотеками отдельно в системных разделах)

Чуть сложнее обстоит дело с программами, имеющими графический интерфейс. Ну, в общем, все различие в том, что экзешник линкован с библиотеками графического интерфейса. Но некоторые такие библиотеки настолько общие, что они наверняка окажутся любом дистрибутиве (так, что и не потребуется до устанавливать).
Например программы скомпилированные в среде Lazarus имеют в linux зависимость от GTK2, это очень общая и распространенная по умолчанию библиотека. Каких то усилий по портабелизации в данном случае можно не предпринимать.

Известно, что при наличии внешних библиотек могут случаться конфликты между версиями ("ад зависимостей") и в этом случае сложно бывает заставить приложение работать. Linux изначально - серверная операционная система, предназначенная для более-менее профессиональных пользователей, поэтому "ад" для начинающего - суть стандартная решаемая ситуация для продвинутого.
Но при использовании linux в качестве десктопной системы, зависимости могут причинять массу неудобств (особенно когда много программ или их версий)

Поэтому распространение софта в портабельном виде, вместе с библиотеками - наиболее распространенный способ.
В linux есть масса примеров распространения софта (в том числе очень сложного, коммерческого, типа  Siemenc NX или GiD pre- postprocessor) или открытого, как Salome-Platform, в портабельном виде, то есть когда все библиотеки идут вместе с приложением и складируются отдельно от системы.
Обычно файлы пакуют в так называемые run файлы - что то вроде setup exe в Windows. Иногда - просто папки в архиве, как qcad или Z88Aurora хотя в этом случае иногда нужно либо запустить скрипт, либо с помощью нескольких команд разрешить файлам и библиотекам выполняться.

В общем, портабельный софт в линукс - обыденная задача. С некоторых пор она даже проще решается чем в windows, где надо до устанавливать Net или среду выполнения программ на C++

Более серьезные сложности могут возникнуть при распространении приложений для разных архитектур (32 и 64 битных), в этом случае компиляторы разные и работа программы может немного отличаться (требуется отдельное тестирование)
Но это - отдельная тема, которая сути вопроса не касается





3д печать зданий

В продаже (в РФ) уже появились серийные принтеры для 3д печати цементными смесями.

http://specavia.pro/articls/2238/

Пока данная технология формообразования очень ограничена в применении, но большая часть имеющихся проблем вполне решаема в обозримом будущем.

Какие потенциальные выгоды это дает?

1) Архитектурное разнообразие - практически Гауди в массовое строительство. Конечно, Гауди - прежде всего вкус и то, что не дается одними технологиями, но мода на разнообразные детали может снова вернуться.

2) Транспортные расходы. Это довольно существенная в сумме всех этапов часть затрат. Вполне возможно, что промышленные принтеры начнут оснащать оборудованием для производства наполнителя смеси из более-менее произвольного "подножного" грунта. Если предположить, что экскаватор выкапывает подвал или бассейн, а затем робот формирует из полученного материала основной массив здания, то это может дать очень существенную экономию, даже если речь идет только о стенах. Конечно вяжущее и добавки все равно придется подвозить на площадку.
Как и в первом случае, этот факт может вернуть назад старую и очень хорошую архитектурную особенность - а именно большую тепловую инерцию ограждающих конструкций и подвалы, выполняющие роль теплообменника с массивом грунта среднегодовой температуры (то есть прохлада летом и тепло зимой). Использование местных материалов - не новая вещь, например землебитный Гатчинский дворец, хотя не для всякой площадки это подходит.

Существующие проблемы 3д печати в основном следующие:

- сложности с горизонтальными конструкциями и перекрытиями. Конструкции перекрытия и покрытия нужно подвозить, либо формовать их на земле и поднимать в проектное положение. Метод формования 3д печатью тут подходит не очень хорошо, поскольку не дает возможности провибрировать плиты (отдельные слои имеют плохое сцепление друг с другом и арматурой). Как вариант - печатать сводчатые конструкции на месте (тоже очень древний подход), но для этого потребуется усовершенствование существующей технологии, так чтобы она могла укладывать полосу цемента под углом, например на стальную подкладку-полосу, выгнутую криволинейно. Своды теоретически можно печатать и на надувных основаниях.

- программная часть 3д печати пока слишком примитивна.

 В результате 3д печать зданий на месте станет практически пригодной (с учетом многочисленных требований к материалам и конструкциям) и выгодной только после того, как будет существенно усложнена и 3д принтер превратиться в набор достаточно сложного роботизированного оборудования. Производить его будут, вероятней всего, крупные машиностроительные корпорации и стоимость будет приличной.
Но формование отдельных архитектурных деталей и блоков методом 3д печати вероятней всего станет обыденным уже скоро и стоимость такого решения будет не велика.




-





Начало работы в linux - несколько советов от меня

Тут читая разного рода источники по этому поводу, я решил сформулировать свои собственные советы, как подходить к этому вопросу.
Не буду касаться, что лучше а что нет и не буду ничего утверждать категорически, но вот советы будут такие.

1. Какой дистрибутив выбрать? Это тема для холливаров, а их разводить я не хочу. Я бы сказал для начинающего - выбирайте ubuntu основной стабильной ветки (на данный момент 14). Не kubuntu, не xubuntu и не edubuntu - а именно основной, поскольку он поддерживается Canonical лучше всего и наилучшим образом работает ... с точки зрения начинающего. Не выбирайте никаких минтов - не все то, что рекламируется на каждом углу, является руководством для вас. Это мое персональное мнение. 
PS caelinux в данном случае исключение - выбирать его стоит, если вы хотите попробовать открытые инженерные и математические программы. Правда, в настоящее время нет проблем установить и использовать их где угодно, например Salome-MECA распространяется в портабельном виде для любого дистрибутива.  

2. Ubuntu основной ветки имеет так называемый Unity интерфейс без меню Пуск. Вернее меню пуск есть, но оно реализовано в виде поисковой строки.  Если впечатаете "sys" то будет вам и System Monitor и System Settings. Ярлыки программ показаны сбоку и количество открытых окон соответствует количеству точек на ярлыке. переход между окнами - по клику на ярлык. В общем освоить не так сложно на самом деле. И когда привыкнете - поймете что это удобно на самом деле. Только в filter results можно из категорий убрать все кроме программ, а так - ничего реально раздражающего.
PS Unity интерфейс удачно оптимизирован с точки зрения сокращения движений мышью.  Все действия с операционной системой концентрируются в левом верхнем углу. Удобство ощущается в том случае, если вы захотите поработать на ноутбуке полулежа например.

3. Перходя на линукс с самого начала при установке запишите своего юзера латиницей без пробелов. Не знаю, вообще говоря, можно ли записать юзера кириллицей в принципе. Но даже если можно - то не надо. И научитесь по возможности все имена папок и файлов выражать латиницей без пробелов. Как будто вы бородатый админ из времен ДОСа.
Этот совет к тому, что какая то часть софта под линукс написана в старорежимном стиле, и может просто не работать. Это не очень утомительное правило, и его не сложно соблюдать.
Устанавливайте основным языком английский и потом после установки добавляйте русский/украинский.

4. Программы устанавливать удобней всего из Ubuntu Software Center и из терминала с использованием ppa (если гуглите как установить из ppa, то набирайте гугл запрос типа "sudo ubuntu ..."
Вообще способов установки масса, но перечисленные - самые простые.
Вот например как обновить adobe flash (гуглится одна строчка из сервиса askubuntu)

sudo apt-get update && sudo apt-get install -y flashplugin-installer


5. Windows приложения могут "идти под вайн", а могут и не идти. Я бы посоветовал установить не вайн, а настоящий коробочный виндоус (например XP) под virtaulbox. Это отдельная тема - как, не сложно, но есть детали - не буду касаться. При этом автоматически обновлять в виндоус ничего не надо (и вообще сеть можно отрубить после установки основных программ, благо что интернет работает из линукса, а вирусам в основном кроме интернета прийти неоткуда, если вы флешки в виртуалбоксе втыкать не будете. Вот так ваш добрый старый виндоус будет работать в отдельном окошке со всем софтом.



Вынесу свой пост на форуме сюда (о температурных задачах в строительстве)

http://forum.dwg.ru/showthread.php?p=1534524

Да все довольно просто на самом деле. Когда вы делаете статический расчет то задаете граничные условия - например закрепления и нагрузку (давления, силы). Для материала указывается модуль Юнга и коэффициент Пуассона (в зав-ти что у вас - сталь и т.д.) Решаются уравнения теории упругости и получаются напряжения и перемещения (опорные реакции). В какой бы вы программе не решали - результат один и тот же (согласно теореме об единственности решения).
В данном случае решаются уравнения теплопроводности и граничные условия свои - температуры и теплоотдачи. В результате получается распределение температуры (а вместо опорных реакций - тепловой поток через стены)
Уравнения теплопроводности вообще говоря гораздо проще уравнений теории упругости. То что какая то программа нужна - так их бесплатных больше десятка (Elmer FEM, Agros2D и так далее).
Довольно странно что такого рода стандартные строительные расчеты не реализовали в скадах и лирах (хотя бы для плоского случая).