Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.06.2020
Сообщений: 3

Соответствия между двумя большими наборами переменных в Tekla

03.09.2020, 23:51. Показов 823. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, занимаюсь проектированием металлоконструкций. В программе для работы (Tekla) можно писать плагины через Open API на C#. Сейчас пытаюсь сделать плагин для определения максимальной несущей способности балки. Для этого надо знать её геометрические характеристики (высота, длины, толщины полок и т.д.). Проблема в том, что одного из этих параметров - пластического момент сопротивления в датабазе профилей нет и следовательно невозможно получить его из программы. Поэтому может кто-то подскажет, каким образом в C# можно связать два больших набора переменных (около 300 профилей балок), т.е. ,чтобы при определении профиля балки в Tekla автоматически определялся и пластический момент сопротивления Zx через Open Api?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
namespace UDL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.Location = new System.Drawing.Point(1120, 150);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Model model = new Model();
 
            if (model.GetConnectionStatus() == false) return;
 
            Picker p = new Picker();
            ModelObject mo = p.PickObject(Picker.PickObjectEnum.PICK_ONE_OBJECT);
 
            if (mo is Beam b)
            {
                string param = "LENGTH";
                double result = 0.0;
                string angle = "END1_ANGLE_Z";
                double aresult = 0.0;
                string param1 = "PROFILE";
                string result1 = "";
                b.GetReportProperty(param, ref result);
                b.GetReportProperty(param1, ref result1);
                b.GetReportProperty(angle, ref aresult);
                textBox1.Text = Convert.ToString(result/**Math.Cos(aresult)*/ / 25.4);
                textBox2.Text = Convert.ToString(result1);
                //textBox3.Text = Convert.ToString(Math.Cos(aresult));
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
Миниатюры
Соответствия между двумя большими наборами переменных в Tekla   Соответствия между двумя большими наборами переменных в Tekla  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2020, 23:51
Ответы с готовыми решениями:

Передача переменных между двумя приложениями node js (docker)?
Добрый день. Есть сервер который запускается в контейнере docker. В какой то момент он хочет запустить функцию в другом файле node js...

Переключение между наборами элементов
Все видели окно настроек QiP Там кнопки типа настроек слева, а при нажатии на кнопку, справа меняется содержимое Подскажите...

Передача значений переменных между двумя программами на разных компьютерах
Как организовать передачу значений переменных между двумя программами? Нужно передать значение переменной А из первой во вторую...

7
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
04.09.2020, 00:52
tandrew, если имя профиля уникально, то можно через него связать. Данные о Zx, Zy занести в ресурсы в любом удобном виде, но только не Excel.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
04.09.2020, 06:17
tandrew, что за датабаза?
Может проще в неё внести нужные изменения?
0
0 / 0 / 0
Регистрация: 27.06.2020
Сообщений: 3
04.09.2020, 11:27  [ТС]
датабаза содержится в файле profdb.bin. Да, в программе есть возможность добавить руками необходимые параметры. Просто хотелось бы во-первых, устранить человеческий фактор на вбивании руками 300 значений, а во-вторых , сэкономить время, поэтому интересно ,как это реализовать через C#.
Миниатюры
Соответствия между двумя большими наборами переменных в Tekla  
0
0 / 0 / 0
Регистрация: 27.06.2020
Сообщений: 3
04.09.2020, 11:30  [ТС]
Могли бы вы объяснить какие ресурсы имеете в виду и как их связывать ?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
04.09.2020, 11:40
.. может, для этого OpenAPI должны же быть возможности доступа скриптами, а не только через UI ... тогда запустить скрипт один раз, считать данные из экселя и загрузить в "датабазу" ... В общем смысле, но информации мало ...
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
04.09.2020, 11:49
Цитата Сообщение от tandrew Посмотреть сообщение
во-первых, устранить человеческий фактор на вбивании руками 300 значений, а во-вторых , сэкономить время, поэтому интересно ,как это реализовать через C#.
То есть у вас уже есть готовый источник для второго набора данных (с Zx и Zy)?
Если да, то что это за источник?
Можете ли вы его получить полностью для всех профилей?

Цитата Сообщение от tandrew Посмотреть сообщение
датабаза содержится в файле profdb.bin. Да, в программе есть возможность добавить руками необходимые параметры.
Что это за формат?
Есть ли возможность не "руками", а программно в него добавить информацию.

Цитата Сообщение от tandrew Посмотреть сообщение
поэтому интересно ,как это реализовать через C#.
Вариантов реализаций может быть множество, но всё зависит от деталей задачи.
Одни из типовых подходов является реализация паттерна Репозиторий Данных.

Смысл его в том, что с исходными источниками работает только Репозиторий.
Он получает (в вашей задаче) данные из profdb.bin и создаёт экземпляр типа со свойствами для каждого параметра.
Потом получает данные из второго источника, ищет совпадающее название и дополняет по нему ранее сформированный экземпляр.
С "другой стороны" Репозиторий имеет интерфейс по запросу и возврату данных, например: метод возвращающий список заданного уровня, метод возвращающий параметры заданной балки и т.д.
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
04.09.2020, 12:07
tandrew,
.. ну, краем глаза глянув на Tekla OpenAPI, я нашел следующее свойство в namespace Tekla.Structures

AnalysisCrossSection.Wplyy Property
The plastic modulus about the Y-axis (m3) of the analysis cross section.
... соответственно, у класса AnalysisCrossSection есть метод .Insert() ...
.. то есть, если знать, как крутить, то можно составить скрипт (консольное приложение на C# с использованием библиотеки Tekla), который вам вставит нужные значения Wplyy для нужных структур (балок) ... Но я не инженер ...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2020, 12:07
Помогаю со студенческими работами здесь

Передачай значений переменных между двумя разными програмами с помощью каналов PIPE
Здраствуйте уважаемые программисты!! Нужна помащь с передачай значений переменных между двумя разными програмами,в общем есть к примеру...

Как переключиться между наборами картинок в галерее с PHP и MySQL
Доброе время суток. Имеется простая галерея с jquery. А также имеется код PHP который связан с БД. <ul...

Передача сесионных переменных между двумя WEB серверами (WEB farm)
Уважаемые люди, кто подскажет как безболезненно передавать, сохранять сесионные переменные между WEB серверами IIS. ASP <---> ASP....

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

Написать функцию с двумя переменными. Первая - собственно, шаблон, вторая - строка для проверки соответствия
Задание: сопоставление введенного шаблона и строки Нужно написать функцию с двумя переменными. первая - собственно, шаблон, вторая -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru