sv4
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору говорю "Б" наваял програмку про расчетам комбинаций, пока без графического интерфейса, меланхолично тружусь над графическим интрефейсом (в свободное время) заточена восновном под femap 9.0.1. (уж очень я люблю фемап) но входные тестовые файлы можно создавать как угодно В основу работы программы положена теория графов (рекурсивная функция поиска в глубину). Состав загружений. 1.Постоянная н-ка. 2.Временная длительная н-ка. 3.Снеговая н-ка. 4.Крановая н-ка 1й пролет Дмах слева, Дмин справа. 5.Крановая н-ка 1й пролет Дмин слева, Дмах справа. 6.Крановая н-ка 1й пролет Т слева (знакопеременная). 7.Крановая н-ка 1й пролет Т справа (знакопеременная). 8.Крановая н-ка 2й пролет Дмах слева, Дмин справа. 9.Крановая н-ка 2й пролет Дмин слева, Дмах справа. 10.Крановая н-ка 2й пролет Т слева (знакопеременная). 11.Крановая н-ка 2й пролет Т справа (знакопеременная). 12.Ветровая н-ка W (знакопеременная). Загружения 4-5, 6-7, 8-9, 10-11 между собой взаимоисключающие. Сверху красным номера вершин графа. Снизу черным номера загружений. На входе 2 файла. В качестве примера опорные реации. { Output Set 1 - NX NASTRAN Case 1 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 0. | 5. | 0. | 7 G| 0. | 10. | 0. | 13 G| 0. | 5. | 0. | Output Set 2 - NX NASTRAN Case 2 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 0. | 0.5 | 0. | 7 G| 0. | 1. | 0. | 13 G| 0. | 0.5 | 0. | Output Set 3 - NX NASTRAN Case 3 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 0. | 10. | 0. | 7 G| 0. | 15. | 0. | 13 G| 0. | 10. | 0. | Output Set 4 - NX NASTRAN Case 4 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 1.879 | 10. | 0.604 | 7 G| -1.254 | 2.5 | 3.77 | 13 G| -0.625 | 0. | 3.126 | Output Set 5 - NX NASTRAN Case 5 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 1.254 | 2.5 | -3.768 | 7 G| -1.881 | 10. | -0.595 | 13 G| 0.627 | 0. | -3.137 | Output Set 6 - NX NASTRAN Case 6 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.531 | 0. | 1.656 | 7 G| -0.235 | 0. | 1.173 | 13 G| -0.234 | 0. | 1.171 | Output Set 7 - NX NASTRAN Case 7 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.235 | 0. | 1.173 | 7 G| -0.531 | 0. | 1.654 | 13 G| -0.235 | 0. | 1.173 | Output Set 8 - NX NASTRAN Case 8 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.627 | 0. | 3.137 | 7 G| 1.881 | 10. | 0.595 | 13 G| -1.254 | 2.5 | 3.768 | Output Set 9 - NX NASTRAN Case 9 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| 0.625 | 0. | -3.126 | 7 G| 1.254 | 2.5 | -3.77 | 13 G| -1.879 | 10. | -0.604 | Output Set 10 - NX NASTRAN Case 10 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.235 | 0. | 1.173 | 7 G| -0.531 | 0. | 1.654 | 13 G| -0.235 | 0. | 1.173 | Output Set 11 - NX NASTRAN Case 11 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.234 | 0. | 1.171 | 7 G| -0.235 | 0. | 1.173 | 13 G| -0.531 | 0. | 1.656 | Output Set 12 - NX NASTRAN Case 12 Forces of single-point constraint (XY plane) Опорные реакции (плоскость XY) ID. | T1(X) | T2(Y) | R3(Z) | 1 G| -0.667 | 0. | 3.335 | 7 G| -0.666 | 0. | 3.331 | 13 G| -0.667 | 0. | 3.335 | } Файл анализируется по ключевым словам и символам. При обнаружении ключевого слова Format создается новый набор выходных данных, в данном случае Femap Constraint Forces. Далее ищется ключевая фраза Output Set число следующее за этой фразой принимается за номер текущего загружения. При обнаружении первой строки содержащей символ | создается ”шапка” таблицы содержащая текстовую информацию из этой строки, следующие строки содержащие символ | интерпретируются как данные для последующего анализа и разбиваются на составляющие, первый столбец всегда текстовая информация, последующие столбцы всегда вещественные значения. Файл описывающий ориентированный граф выглядит след. образом { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <graph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <vertex> <id>1</id> <edges>2</edges> <outputset>1</outputset> <factor1>1</factor1> <factor2>0.8</factor2> </vertex> <vertex> <id>2</id> <edges>3</edges> <outputset>2</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>3</id> <edges>4</edges> <outputset>3</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>4</id> <edges>5,8</edges> <outputset>12</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>5</id> <edges>6,7</edges> <outputset>4</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>6</id> <edges>11,14</edges> <outputset>6</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>7</id> <edges>11,14</edges> <outputset>7</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>8</id> <edges>9,10</edges> <outputset>5</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>9</id> <edges>11,14</edges> <outputset>6</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>10</id> <edges>11,14</edges> <outputset>7</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>11</id> <edges>12,13</edges> <outputset>8</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>12</id> <outputset>10</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>13</id> <outputset>11</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>14</id> <edges>15,16</edges> <outputset>9</outputset> <factor1>1</factor1> <factor2>0</factor2> </vertex> <vertex> <id>15</id> <outputset>10</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> <vertex> <id>16</id> <outputset>11</outputset> <factor1>1</factor1> <factor2>-1</factor2> </vertex> </graph> } так граф выглядит в экселе id edges outputset factor1 factor2 1 | 2 | 1 | 1 | 0.8 | 2 | 3 | 2 | 1 | 0 | 3 | 4 | 3 | 1 | 0 | 4 | 5,8 | 12 | 1 | -1 | 5 | 6,7 | 4 | 1 | 0 | 6 |11,14 | 6 | 1 | -1 | 7 |11,14 | 7 | 1 | -1 | 8 |9,10 | 5 | 1 | 0 | 9 |11,14 | 6 | 1 | -1 | 10 |11,14 | 7 | 1 | -1 | 11 |12,13 | 8 | 1 | 0 | 12 | | 10 | 1 | -1 | 13 | | 11 | 1 | -1 | 14 |15,16 | 9 | 1 | 0 | 15 | | 10 | 1 | -1 | 16 | | 11 | 1 | -1 | где vertex - номер вершины графа edges - ребро указывающее на следующуу вершину outputset - "загружение" ассоциированное с данной веришиной factor1, factor2 - кты на которые умножается данное загружение(1;-1) знакопеременное (1;0) может быть может не быть .. и тд ID. | T1(X) | T2(Y) | R3(Z) | Combine 1 G | 3.94 | 14.00 | -8.69 | 1(0.8)12(-1)4(1)6(-1)9(1)10(-1) 1 G | -2.06 | 4.00 | 9.30 | 1(0.8)12(1)6(1)8(1)10(1) 1 G | 0.45 | 25.50 | 6.77 | 1(1)2(1)3(1)12(1)4(1)6(1)10(1) 1 G | -1.43 | 4.00 | 6.16 | 1(0.8)12(1)6(1)10(1) 1 G | -0.18 | 14.00 | 9.91 | 1(0.8)12(1)4(1)6(1)8(1)10(1) 1 G | 3.31 | 6.50 | -13.06 | 1(0.8)12(-1)5(1)6(-1)9(1)10(-1) 7 G | 3.61 | 18.00 | -6.04 | 1(0.8)12(-1)7(-1)8(1)10(-1) 7 G | -3.61 | 18.00 | 6.04 | 1(0.8)12(1)5(1)7(1)10(1) 7 G | -1.43 | 46.00 | 6.16 | 1(1)2(1)3(1)12(1)5(1)6(1)8(1)10(1) 7 G | -1.43 | 8.00 | 6.16 | 1(0.8)12(1)6(1)10(1) 7 G | -1.10 | 20.50 | 11.00 | 1(0.8)12(1)4(1)7(1)8(1)10(1) 7 G | 1.10 | 20.50 | -11.00 | 1(0.8)12(-1)5(1)7(-1)9(1)10(-1) 13 G | 2.06 | 4.00 | -9.30 | 1(0.8)12(-1)5(1)7(-1)11(-1) 13 G | -3.94 | 14.00 | 8.69 | 1(0.8)12(1)4(1)7(1)9(1)11(1) 13 G | -3.64 | 25.50 | 8.20 | 1(1)2(1)3(1)12(1)4(1)6(1)9(1)10(1) 13 G | -1.76 | 4.00 | 8.81 | 1(0.8)12(1)4(1)6(1)10(1) 13 G | -3.31 | 6.50 | 13.06 | 1(0.8)12(1)4(1)7(1)8(1)11(1) 13 G | 0.18 | 14.00 | -9.91 | 1(0.8)12(-1)5(1)7(-1)9(1)11(-1) так выглядят результаты 1G - номер узла T1(X)T2(Y)R3(Z) - опорные реакции по трем осям 1(0.8)12(-1)5(1)7(-1)9(1)11(-1) - загружения с соответствующими к-тами входящие в данную комбинациию Данный граф имеет 16 различных путей. Где путь – последовательность вершин, в которой каждая следующая вершина (после первой), является смежной с предыдущей вершиной на этом пути. Пути графа в виде списка смежности вершин. 1.1 2 3 4 5 6 11 12 2.1 2 3 4 5 6 11 13 3.1 2 3 4 5 6 14 15 4.1 2 3 4 5 6 14 16 5.1 2 3 4 5 7 11 12 6.1 2 3 4 5 7 11 13 7.1 2 3 4 5 7 14 15 8.1 2 3 4 5 7 14 16 9.1 2 3 4 8 9 11 12 10.1 2 3 4 8 9 11 13 11.1 2 3 4 8 9 14 15 12.1 2 3 4 8 9 14 16 13.1 2 3 4 8 10 11 12 14.1 2 3 4 8 10 11 13 15.1 2 3 4 8 10 14 15 16.1 2 3 4 8 10 14 16 В данном графе каждый путь состоит из 8ми вершин, следовательно возможное количество комбинаций будет равно: (2^8)*16=4096; (два в восьмой степени умножить на 16) в качестве примера взял опорные реакции, но считать можно все.. комбинац усилий, перемещ, напряжений.. и тд. наверное не очень понятно получилось обьяснить... возможно составление ЛЮБЫХ вариантов комбинаций это что касается ЛИНЕЙНЫХ расчетов.. считал задачи гораздо большим количеством комбинаций, комп начинает задумываться основательно... Консольное приложение Microsoft Visual C# 2005 beta1. Требования: микрософт офис 2003 Microsoft .NET Framework version 2.0.40607 _http://seva.russia.webmatrixhosting.net/combine/example1.rar.dll файл example1.rar.dll необходимо перейменовать в example1.rar | Всего записей: 278 | Зарегистр. 08-05-2003 | Отправлено: 11:43 29-08-2005 | Исправлено: sv4, 16:18 29-08-2005 |
|