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

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

Заметка о градостроительстве (часть 1)

Напишу немного про американские субурбы, основную (хотя и не единственную) форму застройки городов.
Архитекторы и градостроители в своих теориях почти всегда сосредотачиваются на малозначительных деталях и грешат ссылками на авторитетные мнения, друг друга и самих себя. Конечно, написание научной статьи или монографии это достаточно тяжелая и требующая времени работа, но я такой цели не ставлю и просто ограничусь некоторыми наблюдениями и мыслями на этот счет.
Градостроительство связано всегда и прежде всего с экономикой, а не с желанием построить нечто красивое по заданному плану.
Так в общем исторически города возникали как центры торговли и ремесел, сосредоточение начальства и культурной (то есть религиозной) жизни. Планировка и градостроительство в частности было строго подчинено данной функции. То есть города современного типа в средние века не возникали по понятным причинам, хотя ранее - да, например древний Рим или города древней Греции имеют много общего с современными.
Градостроительство в Советском Союзе основывалось на закрытости экономики от внешнего мира, и имело поначалу довольно логичную структуру. Моногорода с одним или несколькими крупными производствами, чаще всего являвшиеся районными центрами с местным снабжением продуктами. Кризис моногородов начался еще до ликвидации СССР, во многом был связан с центральной политикой и функционирующей тогда денежной системой. Вероятней всего, с распадом глобальной экономической системы, моногорода будут отчасти возрождаться, по крайней мере на юге и в центральной части РФ (где они и сохранились лучше всего).
Теперь после краткого предисловия вернусь собственно к тому с чего начал - а именно к субурбам. Субурб это не город и не деревня, а скорее искусственное образование, играющее важную роль в экономике потребления, представляет собой однотипную малоэтажную застройку рассеяную островами на больших площадях и связанную с центром и между собой в основном автомобильными дорогами. Сразу коротко замечу, что многоэтажные и среднеэтажные дома тоже существуют, но квартиры там не сильно дешевле или даже сильно дороже чем дома на окраинах.
Возникновение субурбов связано во многом с финансовой политикой. Производство как таковое в крупных городах большой роли не играет (в мелких американских городах - куда большую роль), вернее субурбы это и есть своего рода производство, главным образом денег в кредит, в котором производители - это сами граждане являющие собой юридические контейнеры для связывания денежной массы.
Само собой, что малоэтажность отчасти привлекательна для потребителя, особено для выходцев из сельской местности и людей старшего поколения, хотя домики в современных субурбах чаще всего не имеют приусадебных участков и никакой продовольственной самодостаточности не предусматривают .
Равно так малоэтажная застройка привлекательна где угодно и в том числе в РФ, хотя в северных городах там возникают проблемы с дороговизной обслуживания.
Дело тут скорее не в привлекательности а в расходах и издержках.
Так вот для жителей субурбов является необходимым владеть как минимум парой машин, чтобы просто посетить магазин или попасть на работу.
Про экономику доставки я не говорю - она куда дороже и существует как и все прочее за счет получения кредитов от банковской системы (пока такая возможность есть).
Дороги и в 10 раз большая площадь благоустройства (чем в городах с 5-9этажными домами) плюс поддержание самих домов - это тоже значительные налоги и расходы и потребность в труде, в частности, нелегальных мигрантов. Все эти искусственно созданные ограничения в основном и представляют собой современную городскую экономку США.
За пределами Америки и в менее богатых странах такие вещи воспроизвести гораздо сложней, хотя Москва с ее многоэтажными человейниками тоже разновидность субурбов чисто по экономическому назначению.



Про линейное и нелинейное мышление

Была такая идея (еще даже есть), которую постояльцы разных технологических и псевдотехнологических ресурсов вероятно помнят, которая называлась "струнный транспорт".
Так вот штука в том, что даже квалифицированному строителю, с опытом расчета вант и преднапряженных балок, опровергнуть идею очень непросто с ходу. И интересно - почему.
Потому что мышление: все представляют себе струну и то, что натянутая струна очень жесткая. Можно представить себе струнный транспорт между диваном и подоконником, и маленькую машинку на нем. И, действительно, почему бы не натянуть такие струны между населенными пунктами? зачем все эти тяжелые экстакады, насыпи и все прочее?
Не профессиональному проектировщику (и даже профессиональному без опыта конкретных расчетов) опровергнуть все это сложно, проще поверить в некий "заговор", почему такого не построили - всякие "карпарации", "ротшильды" и все прочее, что объясняет все нестыковки в мозгу обывателя, почему он живет именно в том мире, в котором живет.
Кстати при губернаторе Лебеде построили опытный участок, но выглядел он как то более прозаично - достаточно сложная конструкция с вантами, никаких суперструн фром сиа то шайнин сее. Зилом проехали медленно достаточно и все.
А разгадка проста - данная система математически нелинейна и не масштабируема. То есть между диваном и подоконником можно катать мышонка, а между опорами с расстоянием 500 метров уже начнутся сложности.
Вот до кучи вам уравнение оттяжки.
И кстати - еще одна скандальная вещь, такая как композитная арматура. Так вот у нее плотность практически совпадает с плотностью воды. И если такую струну натянуть в воде, то она больше будет походить на струнный транспорт (и особенно если тележка легкая, то можно будет перемещать задницу из пункта А в пункт Б). Такие композитные оттяжки могли бы быть (за счет невесомости в воде) удобны для поддержания каких то понтонов и платформ. То есть по меньшей мере в узко-специальных задачах оно бы вполне работало.
Есть еще масса примеров когда линейное мышление приводит к парадоксальным выводам и вводит в заблуждение даже вполне разумных людей. Например в финансах - какое количество свободных денег предельно, чтобы не получить гиперинфляцию и крах валюты. Это наверно было бы интересно какому-нибудь Перельману, если бы он был жив и решил написать продолжение своих книжек.

Кстати про BIM

Все такие модные концепции глубоко порочны. Автоматизация работы кого? Архитектора, чертежника или расчетчика? Так их работа в сумме всегда стоила доли процента. Тем не менее то, что в конечном итоге строится - важно со всех точек зрения, например с художественной.
То есть, несомненно специалист должен владеть компьютерными программами в том числе, чтобы быстрей прорабатывать различные варианты. Но замыслы и варианты возникают в голове прежде всего, оценочные расчеты если архитектор владеет экономикой стоительства (а он должен владеть) тоже не проблема. Поэтому толпы архитеторов, маструбирующих на какие то программки - это смешно. Это не дух старой школы, не уважаю абсолютно. Пишите отзывы.

Online CAD

Пример онлайн-када
https://www.onshape.com/

Вполне работоспособный уже и масса пользователей.
Solidworks провел свое первое бета-тестирование (для США во всяком случае).

Расчетные сервисы
https://www.simscale.com/

Для расчетов требуется мощный компьютер, который стоит дорого. Если сложные расчеты единичны, то данная идея имеет наибольший смысл.

Другая идея, которая идет в паре с онлайн работой - магазин приложений.
Конечно всякий, кто пытался что то разрабатывать для инженеров, сталкивался с фактом, что 99% это не вперлось совершенно. Ни о какой коммерческой популярности речи обычно не идет, это не игрушка в которой можно кидаться птичками и какашками, понятная всему множеству пользователей магазина.
Если вы что то решили разрабатывать для инженеров - делайте это opensorce (желательно под лицензией GPL 2.0 и выкладывайте на sf.net)

Будущий CAD на мой взгляд будет сочетать не только разработку моделей, чертежи и расчеты, но и организацию производства, поступления заказов и сбыт с логистикой. Это сделает возможным эффективное распределенное производство, в котором полноправным участником выступает не завод (эффективный только при выпуске тысяч единиц), а простой умелец со станком в гараже или обычный сварщик с приспособлениями. Вопрос, конечно, как оценить того или иного участника применительно к конкретному заказу. Вероятней всего рулить таким CAD-ом будет штат наблюдателей за сетью.

Что это даст? Например - полную загруженность (ценовую эффективность) участников, отсутствие необходимости в больших инвестициях в производство, взаимозаменяемость исполнителей (что плюс для надежности и сроков).
Такого рода CAD вероятней всего будет бесплатным по настоящему, не с целью завлечения клиентов и не по причине отсутствия менеджмента продаж (как в случае opensource), а деньги разработчикам будут поступать как процент от заказов и плата за вступление в сеть. Скорее всего это будут приличные деньги, потому что практические заказы всегда дороже софта. Объединить таким образом можно производственную сеть в пределах разумной транспортной доступности, то есть США, Евросоюз и небольшие страны тут выигрывают моментально.
В РФ такое возможно только наверно для укрупненных регионов и местностей типа Москва-подмосковье.

Так или иначе, такая постановка вопроса (CAD как средство организации производства и источник поступления заказов) мне пока не встречалась. Хотя скорее всего эта идея не нова по сути.

Всякого рода online CAD имеют небольшой смысл, потому что работать на локальном компьютере намного удобней. Смысл есть только в коммуникациях и управлении этими коммуникациями, так что рано ли поздно все придет именно к тому, о чем я пишу выше.








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

Данная задача - сугубо практическая, потому что ванты с одной стороны весьма чувствительны к температуре, а с другой стороны в проекте КМ согласно норм требуется указывать натяжение в температурном диапазоне.
Вот тут с пользователем Ильнур развернули большую тему по канатам.
Итак, поехали.
Относительное изменение хорды оттяжки ε=Δ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 битных), в этом случае компиляторы разные и работа программы может немного отличаться (требуется отдельное тестирование)
Но это - отдельная тема, которая сути вопроса не касается