Add work with versions
This commit is contained in:
@@ -15,8 +15,9 @@ namespace DataAccess.DTOs
|
||||
public Guid Id { get; set; }
|
||||
[JsonProperty("DateTime")]
|
||||
public DateTime DateTime { get; set; }
|
||||
[JsonProperty("Comment")]
|
||||
public string Comment { get; set; } = string.Empty;
|
||||
[JsonProperty("AnalysisVersion")]
|
||||
public ISaveable AnalysisVersion { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
2902
StructureHelper/Documentation/Examples/Composite.shpj
Normal file
2902
StructureHelper/Documentation/Examples/Composite.shpj
Normal file
File diff suppressed because it is too large
Load Diff
935
StructureHelper/Documentation/Examples/OverStrain.shpj
Normal file
935
StructureHelper/Documentation/Examples/OverStrain.shpj
Normal file
@@ -0,0 +1,935 @@
|
||||
{
|
||||
"$id": "1",
|
||||
"$type": "RootObject",
|
||||
"FileVersion": {
|
||||
"Id": "6d7ad6f9-4754-4f07-a4c4-4715c993de9c",
|
||||
"VersionNumber": 1,
|
||||
"SubVersionNumber": 0
|
||||
},
|
||||
"Project": {
|
||||
"Id": "7295aaae-5291-40ef-836b-67679f0b7432",
|
||||
"VisualAnalyses": {
|
||||
"$id": "2",
|
||||
"$type": "ListOfIVisualAnalysis",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "3",
|
||||
"$type": "VisualAnalysis",
|
||||
"Id": "4513ced2-7aa4-42dc-afd9-32cd1cc81b9d",
|
||||
"Analysis": {
|
||||
"$id": "4",
|
||||
"$type": "CrossSectionNdmAnalysis",
|
||||
"Id": "6415665d-e31a-4447-bb91-1fa9d3101538",
|
||||
"Name": "New NDM Analysis",
|
||||
"Tags": "#New group",
|
||||
"VersionProcessor": {
|
||||
"$id": "5",
|
||||
"$type": "VersionProcessor",
|
||||
"Id": "516424cd-b978-4791-a92b-b8d6e067fe7a",
|
||||
"Versions": {
|
||||
"$type": "ListOfIDateVersion",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "6",
|
||||
"$type": "DateVersion",
|
||||
"Id": "458bfd1a-e3ea-48a4-b397-6208298a1cb1",
|
||||
"DateTime": "2024-11-30T17:26:41.950465+05:00",
|
||||
"Comment": "",
|
||||
"AnalysisVersion": {
|
||||
"$id": "7",
|
||||
"$type": "CrossSection",
|
||||
"Id": "46f8b24f-68e8-4a80-82c6-6d8dcefab29c",
|
||||
"SectionRepository": {
|
||||
"$id": "8",
|
||||
"$type": "CrossSectionRepository",
|
||||
"Id": "b6c67d83-f23e-4897-9cf7-1c501c627936",
|
||||
"HeadMaterials": {
|
||||
"$type": "ListOfIHeadMaterial",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "9",
|
||||
"$type": "HeadMaterial",
|
||||
"Id": "598dba27-5382-4c9c-9baa-8cf1caf9a696",
|
||||
"Name": "Concrete",
|
||||
"Color": "#FFF0F8FF",
|
||||
"HelperMaterial": {
|
||||
"$id": "10",
|
||||
"$type": "ConcreteLibMaterial",
|
||||
"Id": "325b3e63-5f6c-4998-9e2f-ed4d88d6c962",
|
||||
"RelativeHumidity": 0.55,
|
||||
"MinAge": 0.0,
|
||||
"MaxAge": 2207520000.0,
|
||||
"MaterialEntityId": "1cdc3598-c67b-4e35-89ac-3f7c0a9db167",
|
||||
"SafetyFactors": {
|
||||
"$id": "11",
|
||||
"$type": "ListOfMaterialSafetyFactor",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "12",
|
||||
"$type": "MaterialSafetyFactor",
|
||||
"Id": "4976a2b2-cd2a-4663-8aa5-96e68fd75208",
|
||||
"Name": "Gamma_b1",
|
||||
"Take": true,
|
||||
"Description": "Coefficient for considering long term calculations",
|
||||
"PartialFactors": {
|
||||
"$type": "ListOfMaterialPartialFactor",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "13",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "be1571d7-8d02-46b0-9b80-04492fb230c3",
|
||||
"FactorValue": 0.9,
|
||||
"StressState": 0,
|
||||
"CalcTerm": 2,
|
||||
"LimitState": 1
|
||||
},
|
||||
{
|
||||
"$id": "14",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "412f48a9-7170-4a7c-8e33-8271eb2d8cd1",
|
||||
"FactorValue": 0.9,
|
||||
"StressState": 1,
|
||||
"CalcTerm": 2,
|
||||
"LimitState": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "15",
|
||||
"$type": "MaterialSafetyFactor",
|
||||
"Id": "fa3c957d-a6fd-4d19-b292-6e7c29e570c7",
|
||||
"Name": "Gamma_b2",
|
||||
"Take": false,
|
||||
"Description": "Coefficient for plain concrete structures",
|
||||
"PartialFactors": {
|
||||
"$type": "ListOfMaterialPartialFactor",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "16",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "2e278522-4ab8-4baf-b256-6f3e09ddc840",
|
||||
"FactorValue": 0.9,
|
||||
"StressState": 1,
|
||||
"CalcTerm": 1,
|
||||
"LimitState": 1
|
||||
},
|
||||
{
|
||||
"$id": "17",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "af236127-8edb-4da7-889a-7a83696b9a12",
|
||||
"FactorValue": 0.9,
|
||||
"StressState": 1,
|
||||
"CalcTerm": 2,
|
||||
"LimitState": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "18",
|
||||
"$type": "MaterialSafetyFactor",
|
||||
"Id": "aa856334-dbd5-4c2f-b4eb-3d63cbc19e56",
|
||||
"Name": "Gamma_b3",
|
||||
"Take": false,
|
||||
"Description": "Coefficient for considering bleeding in vertical placement conditionals",
|
||||
"PartialFactors": {
|
||||
"$type": "ListOfMaterialPartialFactor",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "19",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "261dd7ac-e6bf-4fcf-a8c2-7d3f0f03c1bf",
|
||||
"FactorValue": 0.85,
|
||||
"StressState": 1,
|
||||
"CalcTerm": 1,
|
||||
"LimitState": 1
|
||||
},
|
||||
{
|
||||
"$id": "20",
|
||||
"$type": "MaterialPartialFactor",
|
||||
"Id": "421c27ba-f06d-4943-aade-356455e70a3e",
|
||||
"FactorValue": 0.85,
|
||||
"StressState": 1,
|
||||
"CalcTerm": 2,
|
||||
"LimitState": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TensionForULS": false,
|
||||
"TensionForSLS": true,
|
||||
"MaterialLogicId": "b97e8168-76a1-4e24-ae98-9aa38edd1e9a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "21",
|
||||
"$type": "HeadMaterial",
|
||||
"Id": "c7f4f947-e7bb-4134-9639-e1c857e90f3b",
|
||||
"Name": "Reinforcement",
|
||||
"Color": "#FFFF0000",
|
||||
"HelperMaterial": {
|
||||
"$id": "22",
|
||||
"$type": "ReinforcementLibMaterial",
|
||||
"Id": "3b30e2bf-860c-4c8b-a34d-8ba4ce3fbd8f",
|
||||
"MaterialEntityId": "ea422282-3465-433c-9b93-c5bbfba5a904",
|
||||
"SafetyFactors": {
|
||||
"$id": "23",
|
||||
"$type": "ListOfMaterialSafetyFactor",
|
||||
"$values": []
|
||||
},
|
||||
"MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ForceActions": {
|
||||
"$type": "ListOfIForceAction",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "24",
|
||||
"$type": "ForceCombinationList",
|
||||
"Id": "c4174be1-4d7a-40fa-be08-b6a915c646fb",
|
||||
"Name": "New Force Action",
|
||||
"SetInGravityCenter": true,
|
||||
"ForcePoint": {
|
||||
"$id": "25",
|
||||
"$type": "Point2D",
|
||||
"Id": "fe7f7a53-9cb3-4f53-9f95-90dcda3e6074",
|
||||
"X": 0.0,
|
||||
"Y": 0.0
|
||||
},
|
||||
"DesignForces": {
|
||||
"$id": "26",
|
||||
"$type": "ListOfIDesignForceTuple",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "27",
|
||||
"$type": "DesignForceTuple",
|
||||
"Id": "264799c6-a507-43b1-8dec-4dc946ff3f56",
|
||||
"LimitState": 1,
|
||||
"CalcTerm": 1,
|
||||
"ForceTuple": {
|
||||
"$id": "28",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "5208c12d-cfa6-4484-8004-8adf5499aaa4",
|
||||
"Mx": -400000.0,
|
||||
"My": -400000.0,
|
||||
"Nz": -100000.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "29",
|
||||
"$type": "DesignForceTuple",
|
||||
"Id": "40819c8c-6959-4355-9fd9-b5b2286a6f6c",
|
||||
"LimitState": 1,
|
||||
"CalcTerm": 2,
|
||||
"ForceTuple": {
|
||||
"$id": "30",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "82fee963-0992-4bd4-8e50-601ae19bbe40",
|
||||
"Mx": -50000.0,
|
||||
"My": -50000.0,
|
||||
"Nz": -100000.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "31",
|
||||
"$type": "DesignForceTuple",
|
||||
"Id": "6b393798-9926-4fe4-a2a2-124fcec73d4a",
|
||||
"LimitState": 2,
|
||||
"CalcTerm": 1,
|
||||
"ForceTuple": {
|
||||
"$id": "32",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "84a9f571-fab5-469a-b65d-13d016e70be5",
|
||||
"Mx": -50000.0,
|
||||
"My": -50000.0,
|
||||
"Nz": -100000.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "33",
|
||||
"$type": "DesignForceTuple",
|
||||
"Id": "660e0fa3-9d13-4f40-9500-643a7677123c",
|
||||
"LimitState": 2,
|
||||
"CalcTerm": 2,
|
||||
"ForceTuple": {
|
||||
"$id": "34",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "bb916a62-c3db-494d-860d-fe56e98be95a",
|
||||
"Mx": -50000.0,
|
||||
"My": -50000.0,
|
||||
"Nz": -100000.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Primitives": {
|
||||
"$type": "ListOfINdmPrimitive",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "35",
|
||||
"$type": "RectangleNdmPrimitive",
|
||||
"Id": "2a238dea-815c-486d-8f67-3406d721f4cd",
|
||||
"Name": "Concrete block",
|
||||
"RectangleShape": {
|
||||
"$id": "36",
|
||||
"$type": "RectangleShape",
|
||||
"Id": "366105da-71cf-4452-b451-16a7a08725dc",
|
||||
"Width": 0.5,
|
||||
"Height": 0.5
|
||||
},
|
||||
"NdmElement": {
|
||||
"$id": "37",
|
||||
"$type": "NdmElement",
|
||||
"Id": "924467a4-831f-4eea-bbb4-b8e7fa2ed776",
|
||||
"HeadMaterial": {
|
||||
"$ref": "9"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "38",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "bb9b0a37-05e3-4b3e-9838-397f14366b09",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "39",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "5a9c3315-cf46-4361-831f-874902a20548",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "40",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "fcd06688-7c88-45a2-a8d7-48cf1ef19f13",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFE96AB6",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 0.8
|
||||
},
|
||||
"Center": {
|
||||
"$id": "41",
|
||||
"$type": "Point2D",
|
||||
"Id": "bfd326bb-ddb7-4e0d-abe4-679bf0632623",
|
||||
"X": 0.0,
|
||||
"Y": 0.0
|
||||
},
|
||||
"DivisionSize": {
|
||||
"$id": "42",
|
||||
"$type": "DivisionSize",
|
||||
"Id": "51316094-5e15-420d-b7a3-8c92ef2794ee",
|
||||
"NdmMaxSize": 0.005,
|
||||
"NdmMinDivision": 10,
|
||||
"ClearUnderlying": false
|
||||
},
|
||||
"RotationAngle": 0.0
|
||||
},
|
||||
{
|
||||
"$id": "43",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "73197605-fc29-449f-8e98-7c365086d98e",
|
||||
"Name": "Left bottom rebar",
|
||||
"NdmElement": {
|
||||
"$id": "44",
|
||||
"$type": "NdmElement",
|
||||
"Id": "e79cedeb-7b16-4612-97b4-a072936fa53b",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "45",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "de97f261-85b0-4edf-afb8-203697b9c19f",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "46",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "f7cbdd8d-4851-441b-9a51-3b56d22e56bb",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "47",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "6ebbfd7e-6d94-4bb1-8c4b-b5124b63cf65",
|
||||
"IsVisible": true,
|
||||
"Color": "#FF9BCE2E",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "48",
|
||||
"$type": "Point2D",
|
||||
"Id": "f7a33bd8-cd95-4c25-bb40-589c33a50833",
|
||||
"X": -0.2,
|
||||
"Y": -0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "49",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "df2dfc59-7a93-4b9d-bf0a-e0710f34cbd4",
|
||||
"Name": "Right bottom rebar",
|
||||
"NdmElement": {
|
||||
"$id": "50",
|
||||
"$type": "NdmElement",
|
||||
"Id": "4fb5c96d-906f-4186-9a2b-90b84ca19fe8",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "51",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "125344e4-fadb-45bf-9a52-846650d9fc2a",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "52",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "c99f3561-58e0-42f9-aadf-61b82cd31526",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "53",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "7f80b672-e856-4b9b-9e17-cae242701d27",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFAE14EE",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "54",
|
||||
"$type": "Point2D",
|
||||
"Id": "1b60b8ac-26df-46ea-86b9-08fe74c21956",
|
||||
"X": 0.2,
|
||||
"Y": -0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "55",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "7d67360d-9398-4ba8-84cf-19c8e746b89e",
|
||||
"Name": "Left top rebar",
|
||||
"NdmElement": {
|
||||
"$id": "56",
|
||||
"$type": "NdmElement",
|
||||
"Id": "334946d7-3111-4dc6-99fd-4ea702891f14",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "57",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "59efbe75-5d1b-4013-913c-d8e64a4b4936",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "58",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "7e0a0c41-4846-40dd-a3d9-51375c06899d",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "59",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "4c47a16a-db0d-49fe-a28f-dc36b485068c",
|
||||
"IsVisible": true,
|
||||
"Color": "#FF3156CB",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "60",
|
||||
"$type": "Point2D",
|
||||
"Id": "d5bb9f38-2e78-46cd-b2ed-5665d0143234",
|
||||
"X": -0.2,
|
||||
"Y": 0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "61",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "10237fc4-b8c7-4cbc-895f-757f40227210",
|
||||
"Name": "Right top rebar",
|
||||
"NdmElement": {
|
||||
"$id": "62",
|
||||
"$type": "NdmElement",
|
||||
"Id": "1883429f-7893-462f-94e6-69f211663e6e",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "63",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "cf16dddf-68d3-46e7-89d4-1606e8db1775",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "64",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "b61d1847-2629-4d69-a983-cfa8f14fa342",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "65",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "b5ce594c-e89a-4061-9160-1cd0a0d80efe",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFE50629",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "66",
|
||||
"$type": "Point2D",
|
||||
"Id": "acd7f02d-33f1-4be7-aa98-dbaef471659f",
|
||||
"X": 0.2,
|
||||
"Y": 0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "67",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "bce2c23d-57bc-4e55-828a-4dad15fd7350",
|
||||
"Name": "Bottom rebar 1",
|
||||
"NdmElement": {
|
||||
"$id": "68",
|
||||
"$type": "NdmElement",
|
||||
"Id": "00dbf316-590c-4d5a-a5f4-3109448453b1",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "69",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "681b5e21-1043-4d6a-9e6e-571ef39dc00d",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "70",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "d2c6db45-b912-4621-bc12-06e14921e30a",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "71",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "5195b8fb-56bd-44cd-acb2-5505ea1a3f1b",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFBFED4D",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "72",
|
||||
"$type": "Point2D",
|
||||
"Id": "2626fc57-4f92-4b96-902d-0ef1e8570e81",
|
||||
"X": 0.0,
|
||||
"Y": -0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "73",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "0b4f3017-408d-485a-a469-54f9ae899ce8",
|
||||
"Name": "Top rebar 1",
|
||||
"NdmElement": {
|
||||
"$id": "74",
|
||||
"$type": "NdmElement",
|
||||
"Id": "21a77b6e-039d-4eb8-bb7c-5274f8faba2a",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "75",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "ba6183e8-cd67-4d8d-916d-85ace8301446",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "76",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "53be9567-8c6f-4fd2-ac6e-de3b4c908b38",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "77",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "1502c9bc-a18f-42ad-bd26-ce600628f665",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFEE1071",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "78",
|
||||
"$type": "Point2D",
|
||||
"Id": "91424470-6a9b-49cd-b8aa-6622c8b3774e",
|
||||
"X": 0.0,
|
||||
"Y": 0.2
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "79",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "b80fe995-59b8-4b77-8df7-d67cadeac090",
|
||||
"Name": "Left point 1",
|
||||
"NdmElement": {
|
||||
"$id": "80",
|
||||
"$type": "NdmElement",
|
||||
"Id": "2b9ac324-38f2-42d4-b0bd-a587e7259e1b",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "81",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "ba3dee2f-cdf3-492f-ba50-b622bf59e350",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "82",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "5d126f83-95fb-442e-861b-bb33dc0d6b7f",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "83",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "fef9f1a1-0545-4fd2-b044-191947f597a3",
|
||||
"IsVisible": true,
|
||||
"Color": "#FF1A9AD5",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "84",
|
||||
"$type": "Point2D",
|
||||
"Id": "f16d9011-5e08-42cf-9297-893d746db326",
|
||||
"X": -0.2,
|
||||
"Y": 0.0
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$id": "85",
|
||||
"$type": "RebarNdmPrimitive",
|
||||
"Id": "c9ec6833-a044-467f-8064-aec01ddb8d1f",
|
||||
"Name": "Right point 1",
|
||||
"NdmElement": {
|
||||
"$id": "86",
|
||||
"$type": "NdmElement",
|
||||
"Id": "17f9cad4-07d0-452b-9dff-08e7673b1a04",
|
||||
"HeadMaterial": {
|
||||
"$ref": "21"
|
||||
},
|
||||
"Triangulate": true,
|
||||
"UsersPrestrain": {
|
||||
"$id": "87",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "c27677c2-b4b4-4252-8a4c-6d64a218718d",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
},
|
||||
"AutoPrestrain": {
|
||||
"$id": "88",
|
||||
"$type": "ForceTuple",
|
||||
"Id": "0b7bcb68-1d6c-4a7e-86ec-9d4d12fad77a",
|
||||
"Mx": 0.0,
|
||||
"My": 0.0,
|
||||
"Nz": 0.0,
|
||||
"Qx": 0.0,
|
||||
"Qy": 0.0,
|
||||
"Mz": 0.0
|
||||
}
|
||||
},
|
||||
"VisualProperty": {
|
||||
"$id": "89",
|
||||
"$type": "VisualProperty",
|
||||
"Id": "a076924e-70f9-4300-94fa-d38b95a536ab",
|
||||
"IsVisible": true,
|
||||
"Color": "#FFEF0EC2",
|
||||
"SetMaterialColor": true,
|
||||
"ZIndex": 0,
|
||||
"Opacity": 1.0
|
||||
},
|
||||
"Center": {
|
||||
"$id": "90",
|
||||
"$type": "Point2D",
|
||||
"Id": "36503512-755e-433f-a30e-9dc2bbde392a",
|
||||
"X": 0.2,
|
||||
"Y": 0.0
|
||||
},
|
||||
"RotationAngle": 0.0,
|
||||
"Area": 0.0012566370614359175,
|
||||
"HostPrimitive": {
|
||||
"$ref": "35"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Calculators": {
|
||||
"$type": "ListOfICalculator",
|
||||
"$values": [
|
||||
{
|
||||
"$id": "91",
|
||||
"$type": "ForceCalculator",
|
||||
"Id": "fc01f68a-53d7-4d2c-8dd1-23f6c8eeb396",
|
||||
"Name": "New Force Calculator",
|
||||
"InputData": {
|
||||
"$id": "92",
|
||||
"$type": "ForceCalculatorInputData",
|
||||
"Id": "ef13418e-eb58-487b-be7f-1fa4c7b3a7d6",
|
||||
"ForceActions": {
|
||||
"$id": "93",
|
||||
"$type": "ListOfIForceAction",
|
||||
"$values": [
|
||||
{
|
||||
"$ref": "24"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Primitives": {
|
||||
"$id": "94",
|
||||
"$type": "ListOfINdmPrimitive",
|
||||
"$values": [
|
||||
{
|
||||
"$ref": "35"
|
||||
},
|
||||
{
|
||||
"$ref": "43"
|
||||
},
|
||||
{
|
||||
"$ref": "49"
|
||||
},
|
||||
{
|
||||
"$ref": "55"
|
||||
},
|
||||
{
|
||||
"$ref": "61"
|
||||
},
|
||||
{
|
||||
"$ref": "67"
|
||||
},
|
||||
{
|
||||
"$ref": "73"
|
||||
},
|
||||
{
|
||||
"$ref": "79"
|
||||
},
|
||||
{
|
||||
"$ref": "85"
|
||||
}
|
||||
]
|
||||
},
|
||||
"LimitStatesList": {
|
||||
"$id": "95",
|
||||
"$type": "ListOfLimitState",
|
||||
"$values": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"CalcTermList": {
|
||||
"$id": "96",
|
||||
"$type": "ListOfCalcTerms",
|
||||
"$values": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"Accuracy": {
|
||||
"$id": "97",
|
||||
"$type": "Accuracy",
|
||||
"Id": "f3b5dc11-039f-41e7-ac96-d10794715935",
|
||||
"IterationAccuracy": 0.001,
|
||||
"MaxIterationCount": 1000
|
||||
},
|
||||
"CompressedMember": {
|
||||
"$id": "98",
|
||||
"$type": "CompressedMember",
|
||||
"Id": "71169845-2e5f-433d-bad2-c442222354d7",
|
||||
"Bucling": false,
|
||||
"GeometryLength": 3.0,
|
||||
"LengthFactorX": 1.0,
|
||||
"DiagramFactorX": 1.0,
|
||||
"LengthFactorY": 1.0,
|
||||
"DiagramFactorY": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Comment": "",
|
||||
"Color": "#FF800000"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -122,6 +122,7 @@
|
||||
|
||||
<Style x:Key="ButtonResultCanvas" TargetType="Canvas" BasedOn="{StaticResource ButtonCanvas}">
|
||||
<Setter Property="Background" Value="{DynamicResource ResultCanvas}"/>
|
||||
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ButtonRect" TargetType="Rectangle">
|
||||
@@ -228,15 +229,80 @@
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="MomentCurvature">
|
||||
<Path Margin="4" Data="M 3 18 l 4 -7 h 4 l 8 -7 h 5" Stroke="Black"/>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="MomentCurvatureDiagram">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource CoordGrid}"/>
|
||||
<Path Margin="4" Data="M 3 18 l 4 -7 h 4 l 8 -7 h 5" Stroke="Black"/>
|
||||
<ContentControl ContentTemplate="{DynamicResource MomentCurvature}"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
|
||||
<DataTemplate x:Key="MomentCurvatureCrackDiagram">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource CoordGrid}"/>
|
||||
<ContentControl ContentTemplate="{DynamicResource MomentCurvature}"/>
|
||||
<TextBlock Text="Crc" FontSize="8" FontWeight="Bold" Margin="4,2,0,0"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="CrackForces">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource ButtonResultRectangle}"/>
|
||||
<Path Margin="4" Data="M 0 10 h 5 l -1 3 l 1 3 l 0 -3 l 1 -3 h 5 l -1 3 l 1 4 l 0 -3 l 1 -4 h 6 l -1 3 l 1 3 l 0 -3 l 1 -3 h 5 v 14 h -24 z" Fill="DarkGray" Stroke="Black"/>
|
||||
<TextBlock Text="Ncrc" FontSize="8" FontWeight="Bold" Margin="4,2,0,0"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Prestrain">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource ButtonResultRectangle}"/>
|
||||
<Ellipse Margin="14,13,0,0" Height="4" Width="4" Fill="DarkGray" Stroke="Black"/>
|
||||
<ContentControl ContentTemplate="{DynamicResource StraightArrow}">
|
||||
<ContentControl.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform ScaleX="0.6" ScaleY="0.6"/>
|
||||
<TranslateTransform X="13" Y="6"/>
|
||||
</TransformGroup>
|
||||
</ContentControl.RenderTransform>
|
||||
</ContentControl>
|
||||
<ContentControl ContentTemplate="{DynamicResource StraightArrow}">
|
||||
<ContentControl.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform ScaleX="-0.6" ScaleY="0.6"/>
|
||||
<TranslateTransform X="19" Y="6"/>
|
||||
</TransformGroup>
|
||||
</ContentControl.RenderTransform>
|
||||
</ContentControl>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="LappingLength">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource ButtonResultRectangle}"/>
|
||||
<Line X1="10" Y1="17" X2="28" Y2="17" Stroke="Black"/>
|
||||
<Line X1="3" Y1="20" X2="22" Y2="20" Stroke="Black"/>
|
||||
<Line X1="10" Y1="6" X2="10" Y2="15" Stroke="Black"/>
|
||||
<Line X1="22" Y1="6" X2="22" Y2="15" Stroke="Black"/>
|
||||
<Line X1="7" Y1="10" X2="25" Y2="10" Stroke="Black"/>
|
||||
<Line X1="7" Y1="13" X2="13" Y2="7" Stroke="Black"/>
|
||||
<Line X1="19" Y1="13" X2="25" Y2="7" Stroke="Black"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
|
||||
<DataTemplate x:Key="ValuePointDiagram">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
@@ -452,4 +518,91 @@
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Restore">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource Back}"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Back">
|
||||
<Path Margin="4" Data="M -1 18 l 2 -9 l 1 3 a 15 15 90 0 1 22 -3 l -2 4 a 13 13 90 0 0 -18 2 l 3 3 z" Fill="White" Stroke="Black"/>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Forward">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource Back}">
|
||||
<ContentControl.RenderTransform>
|
||||
<TransformGroup>
|
||||
<TranslateTransform Y="-5"/>
|
||||
<ScaleTransform ScaleX="-1" CenterX="15" CenterY="8"/>
|
||||
</TransformGroup>
|
||||
</ContentControl.RenderTransform>
|
||||
</ContentControl>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Renew">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource Back}">
|
||||
<ContentControl.RenderTransform>
|
||||
<TransformGroup>
|
||||
<TranslateTransform Y="-6"/>
|
||||
<ScaleTransform ScaleX="-1" CenterX="15" CenterY="8"/>
|
||||
</TransformGroup>
|
||||
</ContentControl.RenderTransform>
|
||||
</ContentControl>
|
||||
<ContentControl ContentTemplate="{DynamicResource Back}">
|
||||
<ContentControl.RenderTransform>
|
||||
<TransformGroup>
|
||||
<TranslateTransform Y="-22"/>
|
||||
<ScaleTransform ScaleY="-1" CenterX="15" CenterY="8"/>
|
||||
</TransformGroup>
|
||||
</ContentControl.RenderTransform>
|
||||
</ContentControl>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="RestoreAndDelete">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<ContentControl ContentTemplate="{DynamicResource DeleteAnalysis}"/>
|
||||
<ContentControl ContentTemplate="{DynamicResource Back}"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="StraightArrow">
|
||||
<Path Margin="4" Data="M 5 13 l 0 -4 l 10 0 l 0 -3 l 5 5 l -5 5 l 0 -3 z" Fill="White" Stroke="Black"/>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="ExportToNewAnalysis">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<Path Margin="4" Data="M 12 22 l 0 -18 l 12 0 l 0 14 l -4 4 z" Fill="White" Stroke="Black"/>
|
||||
<Path Margin="4" Data="M 20 22 l 0 -4 l 4 0 " Fill="White" Stroke="Black"/>
|
||||
<TextBlock Margin="16, 4, 0, 0" Text="+-" FontSize="10"/>
|
||||
<Path Margin="4" Data="M -1 18 l 0 -4 l 10 0 l 0 -3 l 5 5 l -5 5 l 0 -3 z" Fill="White" Stroke="Black"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="Print">
|
||||
<Canvas Style="{DynamicResource ButtonResultCanvas}">
|
||||
<Canvas.Children>
|
||||
<Rectangle Margin="9,8,0,0" Height="8" Width="15" Fill="White" Stroke="Black"/>
|
||||
<Rectangle Margin="5,15,0,0" Height="10" Width="23" Fill="DarkGray" Stroke="Black"/>
|
||||
<Ellipse Margin="8,18,0,0" Height="2" Width="2" Fill="Black" Stroke="Black"/>
|
||||
<Ellipse Margin="12,18,0,0" Height="2" Width="2" Fill="Black" Stroke="Black"/>
|
||||
<Ellipse Margin="16,18,0,0" Height="2" Width="2" Fill="Black" Stroke="Black"/>
|
||||
<Rectangle Margin="9,22,0,0" Height="6" Width="15" Fill="White" Stroke="Black"/>
|
||||
</Canvas.Children>
|
||||
</Canvas>
|
||||
</DataTemplate>
|
||||
|
||||
</ResourceDictionary>
|
||||
Binary file not shown.
@@ -89,6 +89,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Documentation\Manuals\" />
|
||||
<Folder Include="Documentation\Examples\" />
|
||||
<Folder Include="Infrastructure\UI\DataContexts\Logics\" />
|
||||
<Folder Include="Resources\" />
|
||||
<Folder Include="Services\Settings\" />
|
||||
|
||||
@@ -10,9 +10,40 @@
|
||||
Title="Calculation Results" Height="450" Width="850" MinHeight="400" MinWidth="650" WindowStartupLocation="CenterScreen">
|
||||
<DockPanel>
|
||||
<ToolBarTray DockPanel.Dock="Top">
|
||||
<ToolBar Name="Prestressing">
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding SetPrestrainCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Set prestrain"
|
||||
IconContent="{StaticResource Prestrain}"
|
||||
DescriptionText="Set strain from selected combination as auto prestrain (not available if selected result is invalid)"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{StaticResource Prestrain}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar Name="Lapping">
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding ShowAnchorageCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Show lapping length"
|
||||
IconContent="{StaticResource LappingLength}"
|
||||
DescriptionText="Calculate and show development and lapping length (not available if selected result is invalid)"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{StaticResource LappingLength}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar Name="CrackResult">
|
||||
<Button Style="{StaticResource ToolButton}" Command="{Binding ShowCrackResultCommand}" ToolTip="Show force of cracking">
|
||||
<Image Source="/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/32px_crack.png"/>
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding ShowCrackResultCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Show result step by step"
|
||||
IconContent="{StaticResource CrackForces}"
|
||||
DescriptionText="Show proportional combination of forces where cracks are appeared"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{StaticResource CrackForces}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar Name="InterpolatedResultToolBar">
|
||||
@@ -22,7 +53,9 @@
|
||||
IconContent="{StaticResource StepSolution}"
|
||||
DescriptionText="Show result step by step for selected load combination"/>
|
||||
</Button.ToolTip>
|
||||
<ContentControl ContentTemplate="{DynamicResource StepSolution}"/>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource StepSolution}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding ShowGraphsCommand}">
|
||||
<Button.ToolTip>
|
||||
@@ -30,7 +63,9 @@
|
||||
IconContent="{StaticResource MomentCurvatureDiagram}"
|
||||
DescriptionText="Show moment-curvature diagram as result of stepped solution"/>
|
||||
</Button.ToolTip>
|
||||
<ContentControl ContentTemplate="{DynamicResource MomentCurvatureDiagram}"/>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource MomentCurvatureDiagram}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding GraphValuePointsCommand}">
|
||||
<Button.ToolTip>
|
||||
@@ -38,7 +73,19 @@
|
||||
IconContent="{StaticResource ValuePointDiagram}"
|
||||
DescriptionText="Show results for value point as result of stepped solution"/>
|
||||
</Button.ToolTip>
|
||||
<ContentControl ContentTemplate="{DynamicResource ValuePointDiagram}"/>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource ValuePointDiagram}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Style="{DynamicResource ToolButton}" Command="{Binding ShowCrackGraphsCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Show crack moment-curvature diagram"
|
||||
IconContent="{StaticResource MomentCurvatureCrackDiagram}"
|
||||
DescriptionText="Show moment-curvature diagram as result of stepped solution with considering cracks"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{StaticResource MomentCurvatureCrackDiagram}" FontSize="8"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar Name="InteractionDiagramToolBar">
|
||||
@@ -48,7 +95,9 @@
|
||||
IconContent="{StaticResource InteractionDiagram}"
|
||||
DescriptionText="Show interaction diagram, which means line of limit bearing capacity"/>
|
||||
</Button.ToolTip>
|
||||
<ContentControl ContentTemplate="{DynamicResource InteractionDiagram}"/>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource InteractionDiagram}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar Name="IsoFieldToolBar">
|
||||
@@ -101,7 +150,7 @@
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
@@ -132,11 +181,6 @@
|
||||
<DataGridTextColumn Header="Description" Width="300" Binding="{Binding Description}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<StackPanel Grid.Column="1">
|
||||
<Button Margin="3" Content="CrcDiagrams" ToolTip="Show diagrams for cracked section" Command="{Binding ShowCrackGraphsCommand}"/>
|
||||
<Button Margin="3" Content="Set Prestrain" ToolTip="Set strains as auto prestrain" Command="{Binding SetPrestrainCommand}"/>
|
||||
<Button Margin="3" Content="Anchorage" ToolTip="Set strains as auto prestrain" Command="{Binding ShowAnchorageCommand}"/>
|
||||
</StackPanel>
|
||||
<StatusBar Grid.Row="1">
|
||||
<StatusBarItem>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
|
||||
@@ -315,7 +315,7 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
|
||||
(setPrestrainCommand = new RelayCommand(o =>
|
||||
{
|
||||
SetPrestrain();
|
||||
}, o => SelectedResult != null
|
||||
}, o => SelectedResult != null && SelectedResult.IsValid
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,30 +4,57 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:StructureHelper.Windows.CalculationWindows.ProgressViews"
|
||||
xmlns:uc="clr-namespace:StructureHelper.Windows.UserControls"
|
||||
d:DataContext="{d:DesignInstance local:TraceDocumentVM}"
|
||||
mc:Ignorable="d"
|
||||
Title="Trace Document Viewer" Height="450" Width="800" MinHeight="400" MinWidth="600" WindowStartupLocation="CenterScreen">
|
||||
Title="Trace Document Viewer" Height="600" Width="800" MinHeight="400" MinWidth="600" WindowStartupLocation="CenterScreen">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<FlowDocumentReader Name="DocumentReader" ViewingMode="Scroll"/>
|
||||
<StackPanel Grid.Column="1">
|
||||
<GroupBox Header="Tab gap">
|
||||
<TextBox Text="{Binding TabGap, ValidatesOnExceptions=True}" />
|
||||
</GroupBox>
|
||||
<GroupBox Header="Max priority">
|
||||
<StackPanel>
|
||||
<TextBox Text="{Binding PriorityLimit, ValidatesOnExceptions=True}" />
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Slider Width="88" Value="{Binding PriorityLimit}" Maximum="{Binding MaxPriority}" Minimum="0"/>
|
||||
<TextBlock Width="20" FontSize="8" Text="{Binding MaxPriority}"/>
|
||||
<DockPanel>
|
||||
<ToolBarTray DockPanel.Dock="Top">
|
||||
<ToolBar>
|
||||
<Button Style="{StaticResource ToolButton}"
|
||||
Command="{Binding PrintDocumentCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Print"
|
||||
IconContent="{StaticResource Print}"
|
||||
DescriptionText="Print current document to phisical or virtual printer"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource Print}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
<ToolBar>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
||||
<GroupBox Width="100" Header="Tab gap">
|
||||
<TextBox Height="22" Text="{Binding TabGap, ValidatesOnExceptions=True}" VerticalAlignment="Top" />
|
||||
</GroupBox>
|
||||
<GroupBox Header="Max priority">
|
||||
<StackPanel>
|
||||
<TextBox Text="{Binding PriorityLimit, ValidatesOnExceptions=True}" />
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Slider Width="88" Value="{Binding PriorityLimit}" Maximum="{Binding MaxPriority}" Minimum="0"/>
|
||||
<TextBlock Width="20" FontSize="8" Text="{Binding MaxPriority}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
<Button Margin="3" Content="Rebuild" ToolTip="Rebuild document" Command="{Binding RebuildCommand}"/>
|
||||
<Button Margin="3" Content="Print" ToolTip="Print document" Command="{Binding PrintDocumentCommand}"/>
|
||||
</StackPanel>
|
||||
<Button Style="{StaticResource ToolButton}"
|
||||
Command="{Binding RebuildCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Rebuild document"
|
||||
IconContent="{StaticResource Renew}"
|
||||
DescriptionText="Rebuild current document considering new values of gap and priority"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{StaticResource Renew}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
</ToolBarTray>
|
||||
<Grid>
|
||||
<FlowDocumentReader Name="DocumentReader" ViewingMode="Scroll"/>
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using StructureHelper.Infrastructure;
|
||||
using StructureHelper.Windows.MainWindow.Analyses;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Infrastructures.Settings;
|
||||
using StructureHelperCommon.Models.Analyses;
|
||||
using StructureHelperLogic.Models.Analyses;
|
||||
@@ -18,6 +19,7 @@ namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
public class AnalysesLogic : ViewModelBase
|
||||
{
|
||||
private IUpdateStrategy<IAnalysis> updateStrategy = new AnalysisUpdateStrategy();
|
||||
private RelayCommand? addAnalyisCommand;
|
||||
private RelayCommand? runCommand;
|
||||
private RelayCommand? editCommand;
|
||||
@@ -108,6 +110,7 @@ namespace StructureHelper.Windows.MainWindow
|
||||
VersionsViewModel viewModel = new(SelectedAnalysis.Analysis.VersionProcessor);
|
||||
var wnd = new VersionsView(viewModel);
|
||||
wnd.ShowDialog();
|
||||
Refresh();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -144,14 +147,12 @@ namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
if (SelectedAnalysis is not null)
|
||||
{
|
||||
var name = SelectedAnalysis.Analysis.Name;
|
||||
var tags = SelectedAnalysis.Analysis.Tags;
|
||||
var tmpItem = SelectedAnalysis.Analysis.Clone() as IAnalysis;
|
||||
var wnd = new AnalysisView(SelectedAnalysis);
|
||||
wnd.ShowDialog();
|
||||
if (wnd.DialogResult != true)
|
||||
{
|
||||
SelectedAnalysis.Analysis.Name = name;
|
||||
SelectedAnalysis.Analysis.Tags = tags;
|
||||
updateStrategy.Update(SelectedAnalysis.Analysis, tmpItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
xmlns:local="clr-namespace:StructureHelper.Windows.MainWindow.Analyses"
|
||||
d:DataContext="{d:DesignInstance local:AnalysisViewModel}"
|
||||
mc:Ignorable="d"
|
||||
Title="Analysis" Height="200" Width="300" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
|
||||
Title="Analysis" Height="250" Width="300" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
@@ -19,6 +19,7 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="25"/>
|
||||
<RowDefinition Height="75"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="Name"/>
|
||||
@@ -26,6 +27,9 @@
|
||||
<GroupBox Grid.Row="1" Grid.ColumnSpan="2" Header="Tags">
|
||||
<TextBox Margin="1" Text="{Binding Tags}"/>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="2" Grid.ColumnSpan="2" Header="Comment">
|
||||
<TextBox Margin="1" Text="{Binding Comment}"/>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
<ContentControl Grid.Row="1" ContentTemplate="{StaticResource OkCancelButtons}" Content="{Binding}"/>
|
||||
</Grid>
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
{
|
||||
@@ -23,6 +24,17 @@ namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
get => analysis.Tags;
|
||||
set => analysis.Tags = value;
|
||||
}
|
||||
public Color Color
|
||||
{
|
||||
get => analysis.Color;
|
||||
set => analysis.Color = value;
|
||||
}
|
||||
|
||||
public string Comment
|
||||
{
|
||||
get => analysis.Comment;
|
||||
set => analysis.Comment = value;
|
||||
}
|
||||
|
||||
public AnalysisViewModel(IAnalysis analysis)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:uc="clr-namespace:StructureHelper.Windows.UserControls"
|
||||
d:DataContext="{d:DesignInstance local:VersionsViewModel}"
|
||||
mc:Ignorable="d"
|
||||
Title="VersionsView" Height="250" Width="400" MinHeight="250" MinWidth="400" MaxHeight="800" MaxWidth="1000" WindowStartupLocation="CenterScreen">
|
||||
Title="Version Viewer" Height="250" Width="400" MinHeight="250" MinWidth="400" MaxHeight="800" MaxWidth="1000" WindowStartupLocation="CenterScreen">
|
||||
<Grid>
|
||||
<DockPanel>
|
||||
<ToolBarTray DockPanel.Dock="Top">
|
||||
@@ -27,19 +27,50 @@
|
||||
Command="{Binding ReturnToVersionCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Restore to selected version"
|
||||
IconContent="{StaticResource DeleteAnalysis}"
|
||||
IconContent="{StaticResource RestoreAndDelete}"
|
||||
DescriptionText="Removes all versions which are younger than selected one"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource RestoreAndDelete}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Style="{StaticResource ToolButton}"
|
||||
Command="{Binding DeleteVersionCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Delete selected version"
|
||||
IconContent="{StaticResource DeleteAnalysis}"
|
||||
DescriptionText="Deletes selected version (not available for unique version)"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource DeleteAnalysis}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Style="{StaticResource ToolButton}"
|
||||
Command="{Binding ExportToNewCommand}">
|
||||
<Button.ToolTip>
|
||||
<uc:ButtonToolTipEh HeaderText="Export to new analysis"
|
||||
IconContent="{StaticResource ExportToNewAnalysis}"
|
||||
DescriptionText="Exports selected version to new analysis"/>
|
||||
</Button.ToolTip>
|
||||
<Viewbox>
|
||||
<ContentControl ContentTemplate="{DynamicResource ExportToNewAnalysis}"/>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</ToolBar>
|
||||
</ToolBarTray>
|
||||
<ListBox ItemsSource="{Binding DateVersions}" SelectedItem="{Binding SelectedVersion}">
|
||||
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DateTime}"/>
|
||||
<Grid MinWidth="375">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="1" Text="{Binding DateTime}"/>
|
||||
<TextBox Grid.Column="3" Text="{Binding Comment}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
|
||||
@@ -13,24 +13,28 @@ using System.Threading.Tasks;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
|
||||
using System.Windows;
|
||||
using StructureHelper.Windows.ViewModels.Errors;
|
||||
using System.Windows.Input;
|
||||
using StructureHelperLogic.Models.Analyses;
|
||||
using StructureHelperLogics.Models.CrossSections;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Settings;
|
||||
|
||||
namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
{
|
||||
public class VersionsViewModel : ViewModelBase
|
||||
public class VersionsViewModel : SelectItemVM<IDateVersion>
|
||||
{
|
||||
private const string errorOfDeleting = "Error of deleting of version";
|
||||
private IVersionProcessor versionProcessor;
|
||||
private RelayCommand addNewVersionCommand;
|
||||
private RelayCommand returnToVersionCommand;
|
||||
private RelayCommand deleteVersionCommand;
|
||||
private RelayCommand exportToNewCommand;
|
||||
|
||||
public VersionsViewModel(IVersionProcessor versionProcessor)
|
||||
public VersionsViewModel(IVersionProcessor versionProcessor) : base(versionProcessor.Versions)
|
||||
{
|
||||
this.versionProcessor = versionProcessor;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
public IDateVersion SelectedVersion { get; set; }
|
||||
public ObservableCollection<IDateVersion> DateVersions { get; set; } = new();
|
||||
|
||||
public RelayCommand AddNewVersionCommand
|
||||
{
|
||||
get
|
||||
@@ -39,7 +43,7 @@ namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
{
|
||||
AddNewVersion();
|
||||
},
|
||||
b => SelectedVersion is not null);
|
||||
b => SelectedItem is not null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,26 +55,109 @@ namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
{
|
||||
ReturnToVersion();
|
||||
},
|
||||
b => SelectedVersion is not null);
|
||||
b => SelectedItem is not null);
|
||||
}
|
||||
}
|
||||
|
||||
public RelayCommand DeleteVersionCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return deleteVersionCommand ??= new RelayCommand(obj =>
|
||||
{
|
||||
DeleteVersion();
|
||||
},
|
||||
b => SelectedItem is not null);
|
||||
}
|
||||
}
|
||||
public RelayCommand ExportToNewCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return exportToNewCommand ??= new RelayCommand(obj =>
|
||||
{
|
||||
ExportToNew();
|
||||
},
|
||||
b => SelectedItem is not null);
|
||||
}
|
||||
}
|
||||
|
||||
private void ExportToNew()
|
||||
{
|
||||
if (SelectedItem is null) return;
|
||||
SafetyProcessor.RunSafeProcess(ExportingToNew, "Error of export");
|
||||
}
|
||||
|
||||
private void ExportingToNew()
|
||||
{
|
||||
if (SelectedItem.AnalysisVersion is ICrossSection oldCrossSection)
|
||||
{
|
||||
ProcessCrossSectionAnalysis(oldCrossSection);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(SelectedItem.AnalysisVersion));
|
||||
}
|
||||
ProgramSetting.SetCurrentProjectToNotActual();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void ProcessCrossSectionAnalysis(ICrossSection oldCrossSection)
|
||||
{
|
||||
string newComment = "Exported version from: " + SelectedItem.DateTime;
|
||||
ICrossSection newCrossSection = oldCrossSection.Clone() as ICrossSection;
|
||||
ICrossSectionNdmAnalysis newAnalysis = new CrossSectionNdmAnalysis()
|
||||
{
|
||||
Name = "New NDM Analysis",
|
||||
Comment = newComment,
|
||||
};
|
||||
newAnalysis.VersionProcessor.AddVersion(newCrossSection);
|
||||
var visualAnalysis = new VisualAnalysis(newAnalysis);
|
||||
ProgramSetting.CurrentProject.VisualAnalyses.Add(visualAnalysis);
|
||||
}
|
||||
|
||||
private void DeleteVersion()
|
||||
{
|
||||
if (SelectedItem is null) return;
|
||||
if (CheckIfOnceVersion() == true) { return; }
|
||||
if (ConfirmDeletenig() != true) { return; }
|
||||
SafetyProcessor.RunSafeProcess(DeletingOfVersion, errorOfDeleting);
|
||||
}
|
||||
|
||||
private void DeletingOfVersion()
|
||||
{
|
||||
versionProcessor.Versions.Remove(SelectedItem);
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void ReturnToVersion()
|
||||
{
|
||||
if (SelectedVersion is null) return;
|
||||
if (SelectedItem is null) return;
|
||||
if (CheckIfOnceVersion() == true) { return; }
|
||||
if (ConfirmDeletenig() != true) { return; }
|
||||
SafetyProcessor.RunSafeProcess(RemovingOfVersion, errorOfDeleting);
|
||||
}
|
||||
|
||||
private bool ConfirmDeletenig()
|
||||
{
|
||||
MessageBoxResult result = MessageBox.Show("Please, confirm deleting", "Delete version(s)?", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||
if (result == MessageBoxResult.OK) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool CheckIfOnceVersion()
|
||||
{
|
||||
if (versionProcessor.Versions.Count <= 1)
|
||||
{
|
||||
MessageBox.Show("It is not possible to delete last version", "There is only 1 version", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
MessageBoxResult result = MessageBox.Show("Please, confirm deleting", "Delete version(s)?", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||
if (result != MessageBoxResult.OK) { return; }
|
||||
SafetyProcessor.RunSafeProcess(RemovingOfVersion, "Error of deleting of version");
|
||||
return false;
|
||||
}
|
||||
|
||||
private void RemovingOfVersion()
|
||||
{
|
||||
while (SelectedVersion != versionProcessor.GetCurrentVersion())
|
||||
while (SelectedItem != versionProcessor.GetCurrentVersion())
|
||||
{
|
||||
versionProcessor
|
||||
.Versions
|
||||
@@ -81,22 +168,22 @@ namespace StructureHelper.Windows.MainWindow.Analyses
|
||||
|
||||
private void AddNewVersion()
|
||||
{
|
||||
if (SelectedVersion is null) { return; }
|
||||
if (SelectedItem is null) { return; }
|
||||
SafetyProcessor.RunSafeProcess(AddVersion, "Error of adding of new version");
|
||||
}
|
||||
|
||||
private void AddVersion()
|
||||
{
|
||||
var selectedItem = SelectedVersion.AnalysisVersion as ICloneable;
|
||||
var selectedItem = SelectedItem.AnalysisVersion as ICloneable;
|
||||
versionProcessor.AddVersion(selectedItem.Clone() as ISaveable);
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void Refresh()
|
||||
private new void Refresh()
|
||||
{
|
||||
DateVersions.Clear();
|
||||
versionProcessor.Versions.ForEach(x => DateVersions.Add(x));
|
||||
SelectedVersion = DateVersions[^1];
|
||||
Items.Clear();
|
||||
versionProcessor.Versions.ForEach(x => Items.Add(x));
|
||||
SelectedItem = Items[^1];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -134,7 +134,9 @@
|
||||
</Button>
|
||||
|
||||
</ToolBar>
|
||||
<ListBox Grid.Row="1" ItemsSource="{Binding FilteredAnalyses}" SelectedItem="{Binding SelectedAnalysis}">
|
||||
<ListBox Grid.Row="1"
|
||||
ItemsSource="{Binding FilteredAnalyses}"
|
||||
SelectedItem="{Binding SelectedAnalysis}" MouseDoubleClick="ListBox_MouseDoubleClick">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
@@ -142,10 +144,13 @@
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition Width="200"/>
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Analysis.Name}"/>
|
||||
<TextBlock Grid.Column="3" Text="{Binding Analysis.Tags}"/>
|
||||
<TextBlock Grid.Column="5" Text="{Binding Analysis.Comment}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
|
||||
@@ -41,5 +41,10 @@ namespace StructureHelper.Windows.MainWindow
|
||||
e.Cancel = true;
|
||||
};
|
||||
}
|
||||
|
||||
private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
viewModel.AnalysesLogic.RunCommand.Execute(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,6 +183,10 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
{
|
||||
SelectedItem.TraceLogger.TraceLoggerEntries.Clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedItem.TraceLogger = new ShiftTraceLogger();
|
||||
}
|
||||
if (SelectedItem is LimitCurvesCalculator calculator)
|
||||
{
|
||||
ShowInteractionDiagramByInputData(calculator);
|
||||
|
||||
@@ -5,10 +5,15 @@ using StructureHelperCommon.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace StructureHelper.Windows.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// View model which provides CRUD-operations with collection of items
|
||||
/// </summary>
|
||||
/// <typeparam name="TItem">Type of items</typeparam>
|
||||
public class SelectItemVM<TItem> : ViewModelBase, ICRUDViewModel<TItem> where TItem : class
|
||||
{
|
||||
private ICommand addCommand;
|
||||
@@ -16,11 +21,21 @@ namespace StructureHelper.Windows.ViewModels
|
||||
private ICommand copyCommand;
|
||||
private ICommand editCommand;
|
||||
|
||||
/// <summary>
|
||||
/// Shadow (true) collection of items
|
||||
/// </summary>
|
||||
public List<TItem> Collection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Items which has been added recently
|
||||
/// </summary>
|
||||
public TItem NewItem { get; set; }
|
||||
/// <summary>
|
||||
/// Item which selected in visual collection
|
||||
/// </summary>
|
||||
public TItem SelectedItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Visual collection of items
|
||||
/// </summary>
|
||||
public ObservableCollection<TItem> Items { get; private set; }
|
||||
|
||||
public ICommand Add
|
||||
@@ -128,6 +143,10 @@ namespace StructureHelper.Windows.ViewModels
|
||||
{
|
||||
Items = new ObservableCollection<TItem>(Collection);
|
||||
OnPropertyChanged(nameof(Items));
|
||||
if (Items.Any())
|
||||
{
|
||||
SelectedItem = Items[^1];
|
||||
}
|
||||
AfterItemsEdit?.Invoke(this, new CRUDVMEventArgs());
|
||||
}
|
||||
public delegate void CRUDHandler(SelectItemVM<TItem> sender, CRUDVMEventArgs e);
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
public Guid Id { get; }
|
||||
public DateTime DateTime { get; set; }
|
||||
public ISaveable AnalysisVersion { get; set; }
|
||||
public string Comment { get; set; } = "...";
|
||||
|
||||
public DateVersion(Guid id)
|
||||
{
|
||||
|
||||
@@ -11,5 +11,6 @@ namespace StructureHelperCommon.Models.Analyses
|
||||
{
|
||||
DateTime DateTime { get; set; }
|
||||
ISaveable AnalysisVersion { get; set; }
|
||||
string Comment { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using LoaderCalculator.Logics;
|
||||
using LoaderCalculator.Data.Ndms;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
{
|
||||
@@ -21,6 +23,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
private LoaderOptions loaderData;
|
||||
private Calculator calculator;
|
||||
private ILoaderResults calcResult;
|
||||
private IStressLogic stressLogic = new StressLogic();
|
||||
|
||||
public IForceTupleInputData InputData { get; set; }
|
||||
|
||||
@@ -102,7 +105,8 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
|
||||
private void ProcessInCorrectLoaderResult()
|
||||
{
|
||||
TraceLogger?.AddMessage(string.Intern("Required accuracy rate has not achieved"), TraceLogStatuses.Error);
|
||||
string message = string.Intern("Required accuracy rate has not achieved");
|
||||
TraceLogger?.AddMessage(message, TraceLogStatuses.Error);
|
||||
TraceLogger?.AddMessage($"Current accuracy {calcResult.AccuracyRate}, {calcResult.IterationCounter} iteration has done", TraceLogStatuses.Warning);
|
||||
result.IsValid = false;
|
||||
result.Description = string.Intern("Required accuracy rate has not achieved");
|
||||
@@ -119,6 +123,35 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
TraceLogger = TraceLogger
|
||||
};
|
||||
forceTupleTraceResultLogic.TraceResult(result);
|
||||
CheckOverStrainedNdms();
|
||||
}
|
||||
|
||||
private bool CheckOverStrainedNdms()
|
||||
{
|
||||
bool checkResult = true;
|
||||
TraceLogger?.AddMessage("Checking of limitation of strain");
|
||||
List<INdm> overStrainedNdms = new();
|
||||
foreach (var ndm in InputData.NdmCollection)
|
||||
{
|
||||
var strain = stressLogic.GetTotalStrain(calcResult.ForceStrainPair.StrainMatrix, ndm);
|
||||
if (strain < ndm.Material.LimitNegativeStrain || strain > ndm.Material.LimitPositiveStrain)
|
||||
{
|
||||
TraceLogger?.AddMessage($"Elementary part x = {ndm.CenterX}, y = {ndm.CenterY} has strain epsilon = {strain}, positive limit strain epsilon+,max = {ndm.Material.LimitPositiveStrain}, negative limit strain epsilon-,min = {ndm.Material.LimitNegativeStrain}", TraceLogStatuses.Warning);
|
||||
overStrainedNdms.Add(ndm);
|
||||
}
|
||||
};
|
||||
if (overStrainedNdms.Any())
|
||||
{
|
||||
result.IsValid = false;
|
||||
checkResult = false;
|
||||
string errorMessage = $"There are {overStrainedNdms.Count} elementary parts where strain are over limit";
|
||||
result.Description += "\n" + errorMessage;
|
||||
TraceLogger?.AddMessage(errorMessage, TraceLogStatuses.Error);
|
||||
double sumOverStrainedArea = overStrainedNdms.Sum(x => x.Area);
|
||||
double totalArea = InputData.NdmCollection.Sum(x => x.Area);
|
||||
TraceLogger?.AddMessage($"Total area of over strained parts A = {sumOverStrainedArea}(m^2), that is {sumOverStrainedArea / totalArea * 100d}% of total area");
|
||||
}
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
private void GetLoaderResult()
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(result));
|
||||
}
|
||||
calcResult = ((IForcesTupleResult)result).LoaderResults;
|
||||
TraceLogger?.AddMessage($"Analysis is done succsesfully");
|
||||
TraceLogger?.AddMessage($"Analysis of internal forces is done succsesfully");
|
||||
TraceLogger?.AddMessage($"Current accuracy {calcResult.AccuracyRate} has achieved in {calcResult.IterationCounter} iteration", TraceLogStatuses.Debug);
|
||||
var strainMatrix = calcResult.ForceStrainPair.StrainMatrix;
|
||||
var stiffness = new StiffnessLogic().GetStiffnessMatrix(ndmCollection, strainMatrix);
|
||||
|
||||
Reference in New Issue
Block a user