Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoSlipCircleDefinition.cs
===================================================================
diff -u -r3164 -r3170
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoSlipCircleDefinition.cs (.../IoSlipCircleDefinition.cs) (revision 3164)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoSlipCircleDefinition.cs (.../IoSlipCircleDefinition.cs) (revision 3170)
@@ -21,7 +21,9 @@
namespace Deltares.LayerOnSlopeTool.Io
{
- /// Slipcircle Defintion type
+ /// Slipcircle Defintion type
+ /// This is only a partial implementation, because more is not needed for this tool
+ ///
public class IoSlipCircleDefinition
{
/// Gets or sets the grid size determination.
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoGeometryCreationOptions.cs
===================================================================
diff -u -r3161 -r3170
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoGeometryCreationOptions.cs (.../IoGeometryCreationOptions.cs) (revision 3161)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io/IoGeometryCreationOptions.cs (.../IoGeometryCreationOptions.cs) (revision 3170)
@@ -21,7 +21,8 @@
namespace Deltares.LayerOnSlopeTool.Io
{
- /// Geometry Creation Options type
+ /// Geometry Creation Options type
+ /// This is only a partial implementation, because more is not needed for this tool
public class IoGeometryCreationOptions
{
/// Gets or sets the type of the soil geometry.
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.StiFileCreator/StiFileCreator.cs
===================================================================
diff -u -r3164 -r3170
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.StiFileCreator/StiFileCreator.cs (.../StiFileCreator.cs) (revision 3164)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.StiFileCreator/StiFileCreator.cs (.../StiFileCreator.cs) (revision 3170)
@@ -23,6 +23,8 @@
using System;
using System.IO;
using System.Text;
+using Deltares.LayerOnSlopeTool.Data;
+using CharacteristicPointType = Deltares.LayerOnSlopeTool.Io.CharacteristicPointType;
namespace Deltares.LayerOnSlopeTool.StiFileCreator
{
@@ -36,43 +38,87 @@
ValidateInput(stiFileCreatorInput);
// TODO process file
- var mStabDAMInterface = new DGSMStabDAMInterface();
+ var mStabDamInterface = new DGSMStabDAMInterface();
IoMStabDamDoc ioMStabDamDoc = CreateMStabDamDocFromInput(stiFileCreatorInput);
tnsPrefixDamMStabDoc xmlDamMStabDoc = FillXmlDamMStabDocFromIo.FillXmlDamMStabDoc(ioMStabDamDoc);
string xmlString = MStabDamXmlSerializer.SaveDamMStabDocAsXmlString(xmlDamMStabDoc);
- var length = xmlString.Length;
File.WriteAllText(stiFileCreatorInput.OutputFilename + ".xml", xmlString, Encoding.ASCII);
- int result = mStabDAMInterface.CreateProjectFile(xmlString);
+ int result = mStabDamInterface.CreateProjectFile(xmlString);
if (result != 0)
{
- string errorMessage = mStabDAMInterface.ErrorMessage();
+ string errorMessage = mStabDamInterface.ErrorMessage();
throw new Exception(String.Format("Error {0} in DGSMStabDamDll.CreateProjectFile(): '{1}'", result, errorMessage));
}
}
private static IoMStabDamDoc CreateMStabDamDocFromInput(StiFileCreatorInput stiFileCreatorInput)
{
var ioMStabDamDoc = new IoMStabDamDoc();
+
+ // The following options are not set, so a .sti file can be generated.
+ // These are mandatory in the the DGSMStabDam interface, but are not important for the .sti file generation
+ DefineDefaultSettings(ioMStabDamDoc.MStabInput);
+
+ // The following options are the essential for a correct creation of the .sti file
ioMStabDamDoc.MStabInput.MStabFileName = stiFileCreatorInput.OutputFilename;
- ioMStabDamDoc.MStabInput.Model.CalculationModel = ModelType.Bishop;
- ioMStabDamDoc.MStabInput.Model.GridPosition = GridPositionType.Right;
- ioMStabDamDoc.MStabInput.Model.Probabilistic = false;
- ioMStabDamDoc.MStabInput.Model.SearchMethod = SearchMethodType.Grid;
- ioMStabDamDoc.MStabInput.Model.ShearStrength = ShearStrengthType.CPhi;
ioMStabDamDoc.MStabInput.GeometryCreationOptions.SoilGeometryType = SoilGeometryType.SoilGeometry2D;
ioMStabDamDoc.MStabInput.GeometryCreationOptions.MaterialForDike = stiFileCreatorInput.DikeMaterialName;
ioMStabDamDoc.MStabInput.GeometryCreationOptions.XOffsetSoilGeometry2DOrigin = stiFileCreatorInput.XOffset;
ioMStabDamDoc.MStabInput.GeometryCreationOptions.SoilGeometry2DFilename = stiFileCreatorInput.InputFilename;
ioMStabDamDoc.MStabInput.GeometryCreationOptions.PlLineAssignment = PlLineAssignment.NoPlLines;
- ioMStabDamDoc.MStabInput.CalculationOptions.ZonesType = ZonesType.NoZones;
- ioMStabDamDoc.MStabInput.TrafficLoad.DegreeOfConsolidationSpecified = false;
- ioMStabDamDoc.MStabInput.SlipCircleDefinition.BishopTangentLinesDefinition =
- TangentLinesDefinitionType.OnBoundaryLines;
- ioMStabDamDoc.MStabInput.SlipCircleDefinition.BishopTangentLinesDefinition =
- TangentLinesDefinitionType.OnBoundaryLines;
- ioMStabDamDoc.MStabInput.SlipCircleDefinition.GridSizeDetermination = GridSizeDeterminationType.Automatic;
+
+ // the Pl-Lines that are created are not important, but should be present
double leftSide = stiFileCreatorInput.SurfaceLine.SurfaceLinePoints[0].XCoordinate;
double rightSide = stiFileCreatorInput.SurfaceLine.SurfaceLinePoints[stiFileCreatorInput.SurfaceLine.SurfaceLinePoints.Count - 1].XCoordinate;
+ DefineDefaultPlLines(leftSide, rightSide, ioMStabDamDoc);
+
+ TransferSurfaceLine(stiFileCreatorInput.SurfaceLine, ioMStabDamDoc);
+
+ return ioMStabDamDoc;
+ }
+
+ private static void DefineDefaultSettings(IoDamMStabInput mStabInput)
+ {
+ mStabInput.Model.CalculationModel = ModelType.Bishop;
+ mStabInput.Model.GridPosition = GridPositionType.Right;
+ mStabInput.Model.Probabilistic = false;
+ mStabInput.Model.SearchMethod = SearchMethodType.Grid;
+ mStabInput.Model.ShearStrength = ShearStrengthType.CPhi;
+ mStabInput.CalculationOptions.ZonesType = ZonesType.NoZones;
+ mStabInput.TrafficLoad.DegreeOfConsolidationSpecified = false;
+ mStabInput.SlipCircleDefinition.BishopTangentLinesDefinition =
+ TangentLinesDefinitionType.OnBoundaryLines;
+ mStabInput.SlipCircleDefinition.BishopTangentLinesDefinition =
+ TangentLinesDefinitionType.OnBoundaryLines;
+ mStabInput.SlipCircleDefinition.GridSizeDetermination = GridSizeDeterminationType.Automatic;
+ }
+
+ private static void TransferSurfaceLine(SurfaceLine surfaceLine, IoMStabDamDoc ioMStabDamDoc)
+ {
+ for (int i = 0; i < surfaceLine.SurfaceLinePoints.Count; i++)
+ {
+ var surfaceLinePoint = surfaceLine.SurfaceLinePoints[i];
+ ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint()
+ {
+ X = surfaceLinePoint.XCoordinate,
+ Y = surfaceLinePoint.ZCoordinate
+ });
+ CharacteristicPointType ioCharacteristicPointType =
+ ConversionHelper.ConvertDomainToIo(surfaceLinePoint.PointType);
+ if (ioCharacteristicPointType != CharacteristicPointType.Unknown)
+ {
+ ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint()
+ {
+ X = surfaceLinePoint.XCoordinate,
+ Y = surfaceLinePoint.ZCoordinate,
+ CharacteristicPointType = ioCharacteristicPointType
+ });
+ }
+ }
+ }
+
+ private static void DefineDefaultPlLines(double leftSide, double rightSide, IoMStabDamDoc ioMStabDamDoc)
+ {
double yLevel = -10;
var pl1 = new IoPlLine();
pl1.Points.Add(new IoGeometryPoint()
@@ -110,27 +156,6 @@
Y = yLevel
});
ioMStabDamDoc.MStabInput.ExternalPlLines.Add(pl3);
- for (int i = 0; i < stiFileCreatorInput.SurfaceLine.SurfaceLinePoints.Count; i++)
- {
- var surfaceLinePoint = stiFileCreatorInput.SurfaceLine.SurfaceLinePoints[i];
- ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint()
- {
- X = surfaceLinePoint.XCoordinate,
- Y = surfaceLinePoint.ZCoordinate
- });
- CharacteristicPointType ioCharacteristicPointType = ConversionHelper.ConvertDomainToIo(surfaceLinePoint.PointType);
- if (ioCharacteristicPointType != CharacteristicPointType.Unknown)
- {
- ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint()
- {
- X = surfaceLinePoint.XCoordinate,
- Y = surfaceLinePoint.ZCoordinate,
- CharacteristicPointType = ioCharacteristicPointType
- });
- }
- }
-
- return ioMStabDamDoc;
}
private static void ValidateInput(StiFileCreatorInput stiFileCreatorInput)