mirror of
https://github.com/jeremytammik/RevitSdkSamples.git
synced 2026-09-09 21:23:32 +00:00
added Revit 2022 SDK minus except *rvt and *rfa
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
/// <summary>
|
||||
/// Case 1: Cross section characteristics
|
||||
/// </summary>
|
||||
public void Case1()
|
||||
{
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.2);
|
||||
geometry.Add(0.2, 0.2);
|
||||
geometry.Add(0.2, 0.6);
|
||||
geometry.Add(0.5, 0.6);
|
||||
geometry.Add(0.5, 0.3);
|
||||
geometry.Add(0.8, 0.3);
|
||||
geometry.Add(0.8, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
// rebar area A = d*d*pi/4
|
||||
rebars.Add(new Rebar(0.05, 0.05, 0.010 * 0.010 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.75, 0.05, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.75, 0.25, 0.020 * 0.020 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.45, 0.55, 0.050 * 0.050 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.55, 0.020 * 0.020 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.05, 0.15, 0.015 * 0.015 * Math.PI / 4.0));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.ModulusOfElasticity = 30e9;
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
// result for concrete
|
||||
double Ac = solver.GetArea(ResultType.Concrete);
|
||||
Point2D Cc = solver.GetCenterOfInertia(ResultType.Concrete);
|
||||
double Icx = solver.GetMomentOfInertiaX(ResultType.Concrete);
|
||||
double Icy = solver.GetMomentOfInertiaY(ResultType.Concrete);
|
||||
// result for rebars
|
||||
double As = solver.GetArea(ResultType.Rebars);
|
||||
Point2D Cs = solver.GetCenterOfInertia(ResultType.Rebars);
|
||||
double Isx = solver.GetMomentOfInertiaX(ResultType.Rebars);
|
||||
double Isy = solver.GetMomentOfInertiaY(ResultType.Rebars);
|
||||
// result for reduced
|
||||
double Aeff = solver.GetArea(ResultType.Section);
|
||||
Point2D Ceff = solver.GetCenterOfInertia(ResultType.Section);
|
||||
double Ieffx = solver.GetMomentOfInertiaX(ResultType.Section);
|
||||
|
||||
double Ieffy = solver.GetMomentOfInertiaY(ResultType.Section);
|
||||
|
||||
// result presentation
|
||||
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 1: Cross section characteristics");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ac", Ac, 6));
|
||||
sb.AppendLine(FormatOutput("Ccx", Cc.X, 6));
|
||||
sb.AppendLine(FormatOutput("Ccy", Cc.Y, 6));
|
||||
sb.AppendLine(FormatOutput("Icx", Icx, 6));
|
||||
sb.AppendLine(FormatOutput("Icy", Icy, 6));
|
||||
sb.AppendLine(FormatOutput("As", As, 6));
|
||||
sb.AppendLine(FormatOutput("Csx", Cs.X, 6));
|
||||
sb.AppendLine(FormatOutput("Csy", Cs.Y, 6));
|
||||
sb.AppendLine(FormatOutput("Isx", Isx, 6));
|
||||
sb.AppendLine(FormatOutput("Isy", Isy, 6));
|
||||
sb.AppendLine(FormatOutput("Aeff", Aeff, 6));
|
||||
sb.AppendLine(FormatOutput("Ceffx", Ceff.X, 6));
|
||||
sb.AppendLine(FormatOutput("Ceffy", Ceff.Y, 6));
|
||||
sb.AppendLine(FormatOutput("Ieffx", Ieffx, 6));
|
||||
sb.AppendLine(FormatOutput("Ieffy", Ieffy, 6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 2: Calculation of internal forces for given state of strain in the section and rectangular model of concrete
|
||||
/// Case 2a, Case 2b and Case 2c - common geometry, concrete and steel parameters different rebars and calculation
|
||||
/// </summary>
|
||||
public void Case2()
|
||||
{
|
||||
// Case 2a:
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(20e6,0.0035,30e9,0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6,0.075,200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,0.0005);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 2a: Calculation of internal forces for given state of strain in the section and rectangular model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 2b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.022029);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 2b: Calculation of internal forces for given state of strain in the section and rectangular model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
//
|
||||
// Case 2c
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0015, -0.002);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 2c: Calculation of internal forces for given state of strain in the section and rectangular model of concrete");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 3: Calculation of internal forces for given state of strain in the section and linear model of concrete
|
||||
/// Case 3a, Case 3b and Case 3c - common geometry, concrete and steel parameters different rebars and calculation
|
||||
/// </summary>
|
||||
public void Case3()
|
||||
{
|
||||
// Case 3a:
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelLinear(20e6,0.0035,30e9);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6,0.075,200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,0.0005);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 3a: Calculation of internal forces for given state of strain in the section and linear model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx " , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 3b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.01857592);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 3b: Calculation of internal forces for given state of strain in the section and linear model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
//
|
||||
// Case 3c
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0015, -0.002);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 3c: Calculation of internal forces for given state of strain in the section and rectangular model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 4: Calculation of internal forces for given state of strain in the section and bilinear model of concrete
|
||||
/// Case 4a, Case 4b and Case 4c - common geometry, concrete and steel parameters different rebars and calculation
|
||||
/// </summary>
|
||||
public void Case4()
|
||||
{
|
||||
// Case 4a:
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.016 * 0.016 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelBiLinear(30e6, 0.0035, 32e9, 0.002);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(400e6, 0.1, 205e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,0.0005);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 4a: Calculation of internal forces for given state of strain in the section and bilinear model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
output.Text = output.Text+ sb.AppendLine();
|
||||
//
|
||||
// Case 4b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.02936558);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 4b: Calculation of internal forces for given state of strain in the section and bilinear model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
output.Text = output.Text+ sb.AppendLine();
|
||||
//
|
||||
// Case 4c
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0015, -0.002);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 4c: Calculation of internal forces for given state of strain in the section and bilinear model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
output.Text = output.Text+ sb.AppendLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 5: Calculation of internal forces for given state of strain in the section and parabolic-rectangular model of concrete
|
||||
/// Case 5a, Case 5b and Case 5c - common geometry, concrete and steel parameters different rebars and calculation
|
||||
/// </summary>
|
||||
public void Case5()
|
||||
{
|
||||
// Case 5a:
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.016 * 0.016 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelParabolicRectangular(30e6,0.0035,32e9,0.0020);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(400e6, 0.1, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,0.0005);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 5a: Calculation of internal forces for given state of strain in the section and parabolic-rectangular model of concrete");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 5b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.03034666);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 5b: Calculation of internal forces for given state of strain in the section and parabolic-rectangular model of concrete");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 5c
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0015, -0.002);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 5c: Calculation of internal forces for given state of strain in the section and parabolic-rectangular model of concrete");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 6: Calculation of internal forces for given state of strain in the section and power-rectangular model of concrete
|
||||
/// Case 6a, Case 6b and Case 6c - common geometry and steel parameters different rebars, concrete exponent and calculation
|
||||
/// </summary>
|
||||
public void Case6()
|
||||
{
|
||||
// Case 6a:
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelPowerRectangular(30e6, 0.0035, 32e9, 0.002, 1.4);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(400e6, 0.1, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,0.0005);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 6a: Calculation of internal forces for given state of strain in the section and power-rectangular model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 6b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
// concrete parameters
|
||||
concrete.Power = 1.8;
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.03034666);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(" Case 6b: Calculation of internal forces for given state of strain in the section and power-rectangular model of concrete");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
//
|
||||
// Case 6c
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
// concrete parameters
|
||||
concrete.Power = 1.2;
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0015, -0.002);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 6c: Calculation of internal forces for given state of strain in the section and power-rectangular model of concrete ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 7 Calculation of internal forces for given state of strain in the section and inclined branch model of steel
|
||||
/// </summary>
|
||||
public void Case7()
|
||||
{
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
rebars.Add(new Rebar(0.05, 0.05, 0.032 * 0.032 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.15, 0.05, 0.032 * 0.032 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.05, 0.032 * 0.032 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.05, 0.15, 0.020 * 0.020 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.15, 0.020 * 0.020 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.05, 0.55, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.55, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelLinear(20e6, 0.0035, 30e9);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelWithHardening(500e6, 0.075, 200e9, 1.05);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section,0.0035,-0.0070);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 7 Calculation of internal forces for given state of strain in the section and inclined branch model of steel ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 8: Calculation of internal forces in asymmetric section for given state of strain with horizontal neutral axis
|
||||
/// </summary>
|
||||
public void Case8()
|
||||
{
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.3);
|
||||
geometry.Add(0.2, 0.3);
|
||||
geometry.Add(0.2, 0.7);
|
||||
geometry.Add(0.9, 0.7);
|
||||
geometry.Add(0.9, 0.5);
|
||||
geometry.Add(0.5, 0.5);
|
||||
geometry.Add(0.5, 0.0);
|
||||
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
rebars.Add(new Rebar(0.05, 0.05, 0.025 * 0.025 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.45, 0.05, 0.025 * 0.025 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.85, 0.55, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.85, 0.65, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.45, 0.65, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.65, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.05, 0.025 * 0.025 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.05, 0.25, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.45, 0.25, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
rebars.Add(new Rebar(0.25, 0.55, 0.012 * 0.012 * Math.PI / 4.0));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(50e6, 0.0035, 37e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0035, -0.00875);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 8: Calculation of internal forces in asymmetric section for given state of strain with horizontal neutral axis");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 9: Calculation of internal forces in symmetric section for given state of strain with inclined neutral axis
|
||||
/// </summary>
|
||||
public void Case9()
|
||||
{
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelBiLinear(25e6, 0.003, 28e9, 0.002);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(550e6, 0.1, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveForces(ResultType.Section, 0.0025, -0.00383423, 0.34906585);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 9: Calculation of internal forces in symmetric section for given state of strain with inclined neutral axis ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 10: Calculation of capacity state in symmetric section for bending moment Mx
|
||||
/// </summary>
|
||||
public void Case10()
|
||||
{
|
||||
// Case 10a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.020 * 0.020 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(20e6, 0.0035, 30e9, 0.9);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(0, Axis.x, false);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 10a: Calculation of internal forces in symmetric section for given state of strain with inclined neutral axis");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
// Case 10b
|
||||
// rebars definition
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Clear();
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelParabolicRectangular(30e6, 0.0035, 32e9, 0.0020);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
// solver parameterization
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(0, Axis.x, false);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 10b: Calculation of internal forces in symmetric section for given state of strain with inclined neutral axis ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 11: Calculation of capacity state in symmetric section for bending moment My
|
||||
/// </summary>
|
||||
public void Case11()
|
||||
{
|
||||
// Case 11a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.3);
|
||||
geometry.Add(0.6, 0.3);
|
||||
geometry.Add(0.6, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelLinear(20e6, 0.0035, 30e9);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(0, Axis.y,false);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 11a: Calculation of capacity state in symmetric section for bending moment My");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 11b
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelBiLinear(30e6, 0.0035, 32e9, 0.0020);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 205e9;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(0, Axis.y, false);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 11b: Calculation of capacity state in symmetric section for bending moment My ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// Case 11c
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelPowerRectangular(30e6, 0.0035, 32e9, 0.002, 1.8);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(0, Axis.y, false);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 11c: Calculation of capacity state in symmetric section for bending moment My ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 12: Calculation of capacity state in symmetric section for bending moment Mx with axial force
|
||||
/// </summary>
|
||||
public void Case12()
|
||||
{
|
||||
// Case 12a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.3, 0.0);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.0, 0.6);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelLinear(20e6, 0.0035, 30e9);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(43979.98E3, -3465.40E3, 0);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 12a: Calculation of capacity state in symmetric section for bending moment Mx with axial force ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 12b
|
||||
// rebars definition
|
||||
rebars.Clear();
|
||||
rebarArea = 0.016 * 0.016 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.25, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelBiLinear(30e6, 0.0035, 32e9, 0.0020);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 205e9;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
// solver parameterization
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(114.8397E3, -5.634275E3, 0);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 12b:Calculation of capacity state in symmetric section for bending moment Mx with axial force");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// Case 12c
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelPowerRectangular(30e6, 0.0035, 32e9, 0.002, 1.4);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(4.41023E3, -0.1662045455E3, 0);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 12c: Calculation of capacity state in symmetric section for bending moment Mx with axial force ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
///Case 13: Calculation of capacity state in symmetric section for bending moment My with axial force
|
||||
/// </summary>
|
||||
public void Case13()
|
||||
{
|
||||
// Case 13a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.6, 0.0);
|
||||
geometry.Add(0.6, 0.3);
|
||||
geometry.Add(0.0, 0.3);
|
||||
//rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.012 * 0.012 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(20e6, 0.0035, 30e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(500e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(3331.408571E3,0,-82.84952381E3);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine("Case 12a: Calculation of capacity state in symmetric section for bending moment Mx with axial force ");
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 13b
|
||||
rebars.Clear();
|
||||
rebarArea = 0.016 * 0.016 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.25, rebarArea));
|
||||
rebars.Add(new Rebar(0.55, 0.05, rebarArea));
|
||||
// concrete parameters
|
||||
concrete.SetStrainStressModelParabolicRectangular(30e6, 0.0035, 32e9, 0.0020);
|
||||
// steel parameters
|
||||
steel.DesignStrength = 400e6;
|
||||
steel.StrainUltimateLimit = 0.1;
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
steel.HardeningFactor = 1.0;
|
||||
// solver parameterization
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(5095500, 0, -137860);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 13b: Calculation of capacity state in symmetric section for bending moment My with axial force ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 14: Calculation of capacity state in symmetric section for bidirectional bending with axial force
|
||||
/// </summary>
|
||||
public void Case14()
|
||||
{
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.3, 0.0);
|
||||
geometry.Add(0.3, 0.45);
|
||||
geometry.Add(0.0, 0.45);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
rebars.Add(new Rebar(0.15, 0.04, 0.025977 * 0.025977 * Math.PI / 4.0));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(21.36e6, 0.0035, 35e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(310e6, 0.01, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(200E3, -96E3, -24E3);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 14: Calculation of capacity state in symmetric section for bidirectional bending with axial force ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 15: Calculation of capacity state in asymmetric section for bidirectional bending with axial force
|
||||
/// </summary>
|
||||
public void Case15()
|
||||
{
|
||||
// Case 15a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.00, 0.00);
|
||||
geometry.Add(0.00, 0.60);
|
||||
geometry.Add(0.25, 0.60);
|
||||
geometry.Add(0.25, 0.25);
|
||||
geometry.Add(0.70, 0.25);
|
||||
geometry.Add(0.70, 0.00);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.020 * 0.020 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.05, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.20, 0.55, rebarArea));
|
||||
rebars.Add(new Rebar(0.20, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.65, 0.05, rebarArea));
|
||||
rebars.Add(new Rebar(0.65, 0.20, rebarArea));
|
||||
rebars.Add(new Rebar(0.05, 0.20, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(20e6, 0.0035, 35e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(310e6, 0.075, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15a: Calculation of capacity state in asymmetric section for bidirectional bending with axial force ");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
|
||||
// Case 15b
|
||||
// concrete parameters (rectangular)
|
||||
concrete.SetStrainStressModelRectangular(20e6, 0.0035, 35e9, 0.8);
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15b: Calculation of capacity state in asymmetric section for bidirectional bending with axial force (rectangular)");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// concrete parameters(linear)
|
||||
concrete.SetStrainStressModelLinear(25e6, 0.0035, 32e9);
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15b: Calculation of capacity state in asymmetric section for bidirectional bending with axial force (linear)");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// concrete parameters (bilinear)
|
||||
concrete.SetStrainStressModelBiLinear(25e6, 0.0035, 32e9, 0.0020);
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15b: Calculation of capacity state in asymmetric section for bidirectional bending with axial force (bilinear)");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// concrete parameters (parabolic-rectangular)
|
||||
concrete.SetStrainStressModelParabolicRectangular(25e6, 0.0035, 32e9, 0.0020);
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15b: Calculation of capacity state in asymmetric section for bidirectional bending with axial force (parabolic-rectangular)");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
|
||||
// concrete parameters (power-rectangular)
|
||||
concrete.SetStrainStressModelPowerRectangular(25e6, 0.0035, 32e9,0.002, 1.5);
|
||||
// solver parameterization
|
||||
solver.SetConcrete(concrete);
|
||||
//calulation
|
||||
solver.SolveResistance(72.4471E3, -28.9825E3, 2.5743E3);
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 15b: Calculation of capacity state in asymmetric section for bidirectional bending with axial force (parabolic-rectangular)");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 16: Calculation of capacity state in symmetric section for fixed axial force
|
||||
/// </summary>
|
||||
public void Case16()
|
||||
{
|
||||
// Case 16a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.040 * 0.040 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.03, 0.03, rebarArea));
|
||||
rebars.Add(new Rebar(0.03, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.03, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(17.12e6, 0.0035, 32e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(310e6, 0.025, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(678E3, Axis.x, false);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 16a: Calculation of capacity state in symmetric section for fixed axial force");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 16b
|
||||
// geometry definition
|
||||
geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.3);
|
||||
geometry.Add(0.6, 0.3);
|
||||
geometry.Add(0.6, 0.0);
|
||||
// rebars definition
|
||||
rebars.Clear();
|
||||
rebarArea = 0.036 * 0.036 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.09, 0.06, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.12, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.18, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.24, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.06, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.12, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.18, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.24, rebarArea));
|
||||
// steel parameters
|
||||
steel = new Steel();
|
||||
steel.DesignStrength = 420e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
steel.StrainUltimateLimit = 0.025;
|
||||
// solver creation and parameterization
|
||||
solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(1700E3, Axis.y, true);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
angle = solver.GetNeutralAxisAngle();
|
||||
dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 16b: Calculation of capacity state in symmetric section for fixed axial force");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 17: Calculation of capacity state in symmetric section for fixed moment
|
||||
/// </summary>
|
||||
public void Case17()
|
||||
{
|
||||
// Case 17a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.040 * 0.040 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.03, 0.03, rebarArea));
|
||||
rebars.Add(new Rebar(0.03, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.03, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(17.12e6, 0.0035, 32e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(310e6, 0.025, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceF(184.9E3, Axis.x, true);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 17a: Calculation of capacity state in symmetric section for fixed moment");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 17b
|
||||
// rebars definition
|
||||
rebars.Clear();
|
||||
rebarArea = 0.032 * 0.032 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.03, 0.03, rebarArea));
|
||||
rebars.Add(new Rebar(0.03, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.03, rebarArea));
|
||||
solver.SetRebars(rebars);
|
||||
//calulation
|
||||
solver.SolveResistanceF(138.67E3, Axis.y, true);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
angle = solver.GetNeutralAxisAngle();
|
||||
dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 17b: Calculation of capacity state in symmetric section for fixed moment");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autodesk.CodeChecking.Concrete;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Example
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Case 18: Calculation of capacity state in symmetric section for fixed negative (tensioning) axial force
|
||||
/// </summary>
|
||||
public void Case18()
|
||||
{
|
||||
// Case 18a
|
||||
// geometry definition
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.6);
|
||||
geometry.Add(0.3, 0.6);
|
||||
geometry.Add(0.3, 0.0);
|
||||
// rebars definition
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
double rebarArea = 0.040 * 0.040 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.03, 0.03, rebarArea));
|
||||
rebars.Add(new Rebar(0.03, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.57, rebarArea));
|
||||
rebars.Add(new Rebar(0.27, 0.03, rebarArea));
|
||||
// concrete parameters
|
||||
Concrete concrete = new Concrete();
|
||||
concrete.SetStrainStressModelRectangular(17.12e6, 0.0035, 32e9, 0.8);
|
||||
// steel parameters
|
||||
Steel steel = new Steel();
|
||||
steel.SetModelIdealElastoPlastic(310e6, 0.01, 200e9);
|
||||
// solver creation and parameterization
|
||||
RCSolver solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(-493.06E3, Axis.x, false);
|
||||
// result for rebars
|
||||
SetOfForces forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
SetOfForces forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Point2D Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
double Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
SetOfForces forces = solver.GetInternalForces(ResultType.Section);
|
||||
double angle = solver.GetNeutralAxisAngle();
|
||||
double dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 18a: Calculation of capacity state in symmetric section for fixed negative (tensioning) axial force");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
|
||||
// Case 18b
|
||||
// geometry definition
|
||||
geometry = new Geometry();
|
||||
geometry.Add(0.0, 0.0);
|
||||
geometry.Add(0.0, 0.3);
|
||||
geometry.Add(0.6, 0.3);
|
||||
geometry.Add(0.6, 0.0);
|
||||
// rebars definition
|
||||
rebars.Clear();
|
||||
rebarArea = 0.036 * 0.036 * Math.PI / 4.0;
|
||||
rebars.Add(new Rebar(0.09, 0.06, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.12, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.18, rebarArea));
|
||||
rebars.Add(new Rebar(0.09, 0.24, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.06, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.12, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.18, rebarArea));
|
||||
rebars.Add(new Rebar(0.51, 0.24, rebarArea));
|
||||
// steel parameters
|
||||
steel = new Steel();
|
||||
steel.DesignStrength = 420e6;
|
||||
steel.HardeningFactor = 1.0;
|
||||
steel.ModulusOfElasticity = 200e9;
|
||||
steel.StrainUltimateLimit = 0.01;
|
||||
// solver creation and parameterization
|
||||
solver = RCSolver.CreateNewSolver(geometry);
|
||||
solver.SetRebars(rebars);
|
||||
solver.SetConcrete(concrete);
|
||||
solver.SetSteel(steel);
|
||||
//calulation
|
||||
solver.SolveResistanceM(-862.85E3, Axis.x, true);
|
||||
// result for rebars
|
||||
forcesRebar = solver.GetInternalForces(ResultType.Rebars);
|
||||
// result for concrete
|
||||
forcesConcrete = solver.GetInternalForces(ResultType.Concrete);
|
||||
Gcc = solver.GetStressGravityCenter(ResultType.Concrete);
|
||||
Acc = solver.GetConcreteStressArea();
|
||||
// result for RC section
|
||||
forces = solver.GetInternalForces(ResultType.Section);
|
||||
angle = solver.GetNeutralAxisAngle();
|
||||
dist = solver.GetNeutralAxisDistance();
|
||||
// result presentation
|
||||
sb.AppendLine();
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine("Case 18b: Calculation of capacity state in symmetric section for fixed negative (tensioning) axial force");
|
||||
sb.AppendLine(decoration);
|
||||
sb.AppendLine(FormatOutput("Ns",forcesRebar.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxs" , forcesRebar.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Mys",forcesRebar.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("Ac",Acc,6));
|
||||
sb.AppendLine(FormatOutput("Gcx",Gcc.X,6));
|
||||
sb.AppendLine(FormatOutput("Gcy",Gcc.Y,6));
|
||||
sb.AppendLine(FormatOutput("Nc",forcesConcrete.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mxc" , forcesConcrete.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("Myc",forcesConcrete.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("N",forces.AxialForce,6));
|
||||
sb.AppendLine(FormatOutput("Mx" , forces.MomentX,6));
|
||||
sb.AppendLine(FormatOutput("My",forces.MomentY,6));
|
||||
sb.AppendLine(FormatOutput("dist",dist,6));
|
||||
sb.AppendLine(FormatOutput("angle",angle,6));
|
||||
}
|
||||
}
|
||||
}
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{B169FC44-F224-480C-8033-04C1B072975B}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ConcreteCalculationsExample</RootNamespace>
|
||||
<AssemblyName>ConcreteCalculationsExample</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="rcuapiNET">
|
||||
<HintPath>..\..\References\CodeChecking\Engineering\rcuapiNET.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Case01.cs" />
|
||||
<Compile Include="Case02.cs" />
|
||||
<Compile Include="Case03.cs" />
|
||||
<Compile Include="Case04.cs" />
|
||||
<Compile Include="Case05.cs" />
|
||||
<Compile Include="Case06.cs" />
|
||||
<Compile Include="Case07.cs" />
|
||||
<Compile Include="Case08.cs" />
|
||||
<Compile Include="Case09.cs" />
|
||||
<Compile Include="Case10.cs" />
|
||||
<Compile Include="Case11.cs" />
|
||||
<Compile Include="Case12.cs" />
|
||||
<Compile Include="Case13.cs" />
|
||||
<Compile Include="Case14.cs" />
|
||||
<Compile Include="Case15.cs" />
|
||||
<Compile Include="Case16.cs" />
|
||||
<Compile Include="Case17.cs" />
|
||||
<Compile Include="Case18.cs" />
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="app.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>if exist ..\..\..\..\..\..\..\..\Tools\BuildEvents\BuildEvents.exe (
|
||||
..\..\..\..\..\..\..\..\Tools\BuildEvents\BuildEvents.exe prepare_example $(ProjectDir) $(TargetPath) ..\..\..\..\..\..\Bin\SDK\CodeChecking\VisualStudio\Examples\Concrete\$(ProjectName)
|
||||
)</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
Generated
+122
@@ -0,0 +1,122 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.ResultTextBox = new System.Windows.Forms.RichTextBox();
|
||||
this.ExampleText = new System.Windows.Forms.Label();
|
||||
this.ExampleSelection = new System.Windows.Forms.ComboBox();
|
||||
this.RunExample = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ResultTextBox
|
||||
//
|
||||
this.ResultTextBox.Location = new System.Drawing.Point(-2, 37);
|
||||
this.ResultTextBox.Name = "ResultTextBox";
|
||||
this.ResultTextBox.Size = new System.Drawing.Size(808, 317);
|
||||
this.ResultTextBox.TabIndex = 0;
|
||||
this.ResultTextBox.Text = "";
|
||||
//
|
||||
// ExampleText
|
||||
//
|
||||
this.ExampleText.AutoSize = true;
|
||||
this.ExampleText.Location = new System.Drawing.Point(12, 9);
|
||||
this.ExampleText.Name = "ExampleText";
|
||||
this.ExampleText.Size = new System.Drawing.Size(73, 13);
|
||||
this.ExampleText.TabIndex = 6;
|
||||
this.ExampleText.Text = "List of Cases: ";
|
||||
//
|
||||
// ExampleSelection
|
||||
//
|
||||
this.ExampleSelection.FormattingEnabled = true;
|
||||
this.ExampleSelection.Location = new System.Drawing.Point(128, 6);
|
||||
this.ExampleSelection.Name = "ExampleSelection";
|
||||
this.ExampleSelection.Size = new System.Drawing.Size(129, 21);
|
||||
this.ExampleSelection.TabIndex = 5;
|
||||
//
|
||||
// RunExample
|
||||
//
|
||||
this.RunExample.Location = new System.Drawing.Point(691, 361);
|
||||
this.RunExample.Name = "RunExample";
|
||||
this.RunExample.Size = new System.Drawing.Size(103, 35);
|
||||
this.RunExample.TabIndex = 4;
|
||||
this.RunExample.Text = "Run";
|
||||
this.RunExample.UseVisualStyleBackColor = true;
|
||||
this.RunExample.Click += new System.EventHandler(this.RunExample_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(806, 408);
|
||||
this.Controls.Add(this.ExampleText);
|
||||
this.Controls.Add(this.ExampleSelection);
|
||||
this.Controls.Add(this.RunExample);
|
||||
this.Controls.Add(this.ResultTextBox);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "Form1";
|
||||
this.ShowIcon = false;
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.Text = "Concrete Example - Verification Manual";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.RichTextBox ResultTextBox;
|
||||
private System.Windows.Forms.Label ExampleText;
|
||||
private System.Windows.Forms.ComboBox ExampleSelection;
|
||||
private System.Windows.Forms.Button RunExample;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,159 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
|
||||
|
||||
InitializeComponent();
|
||||
ResultTextBox.Text = "Example described in the Concrete validation manual ";
|
||||
ExampleSelection.Items.Add("All Cases");
|
||||
ExampleSelection.Items.Add("Case1");
|
||||
ExampleSelection.Items.Add("Case2");
|
||||
ExampleSelection.Items.Add("Case3");
|
||||
ExampleSelection.Items.Add("Case4");
|
||||
ExampleSelection.Items.Add("Case5");
|
||||
ExampleSelection.Items.Add("Case6");
|
||||
ExampleSelection.Items.Add("Case7");
|
||||
ExampleSelection.Items.Add("Case8");
|
||||
ExampleSelection.Items.Add("Case9");
|
||||
ExampleSelection.Items.Add("Case10");
|
||||
ExampleSelection.Items.Add("Case11");
|
||||
ExampleSelection.Items.Add("Case12");
|
||||
ExampleSelection.Items.Add("Case13");
|
||||
ExampleSelection.Items.Add("Case14");
|
||||
ExampleSelection.Items.Add("Case15");
|
||||
ExampleSelection.Items.Add("Case16");
|
||||
ExampleSelection.Items.Add("Case17");
|
||||
ExampleSelection.Items.Add("Case18");
|
||||
ExampleSelection.SelectedItem = "All Cases";
|
||||
|
||||
}
|
||||
|
||||
private void RunExample_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
ResultTextBox.Text = "Example described in the Concrete validation manual ";
|
||||
Example example = new Example(ResultTextBox);
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[1]))
|
||||
example.Case1();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[2]))
|
||||
example.Case2();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[3]))
|
||||
example.Case3();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[4]))
|
||||
example.Case4();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[5]))
|
||||
example.Case5();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[6]))
|
||||
example.Case6();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[7]))
|
||||
example.Case7();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[8]))
|
||||
example.Case8();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[9]))
|
||||
example.Case9();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[10]))
|
||||
example.Case10();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[11]))
|
||||
example.Case11();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[12]))
|
||||
example.Case12();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[13]))
|
||||
example.Case13();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[14]))
|
||||
example.Case14();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[15]))
|
||||
example.Case15();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[16]))
|
||||
example.Case16();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[17]))
|
||||
example.Case17();
|
||||
if (ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[0]) || ExampleSelection.SelectedItem.Equals(ExampleSelection.Items[18]))
|
||||
example.Case18();
|
||||
|
||||
example.output.Text = example.sb.ToString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
partial class Example
|
||||
{
|
||||
public RichTextBox output;
|
||||
public StringBuilder sb = new StringBuilder();
|
||||
public string decoration = "************************************************************";
|
||||
public Example(RichTextBox ResultTextBox)
|
||||
{
|
||||
this.sb = new StringBuilder();
|
||||
this.output = ResultTextBox;
|
||||
}
|
||||
|
||||
|
||||
public string FormatOutput(String label, double value, int maxDigit)
|
||||
{
|
||||
|
||||
string outString = "";
|
||||
|
||||
switch (maxDigit)
|
||||
{
|
||||
case 1:
|
||||
outString = "\t" + label + " =\t" +String.Format("{0:0.#}", value);
|
||||
break;
|
||||
case 2:
|
||||
outString = "\t" + label + " =\t " + String.Format("{0:0.##}", value);
|
||||
break;
|
||||
case 3:
|
||||
outString = "\t" + label + " =\t " + String.Format("{0:0.###}", value);
|
||||
break;
|
||||
case 4:
|
||||
outString = "\t" + label + " =\t " + String.Format("{0:0.####}", value);
|
||||
break;
|
||||
case 5:
|
||||
outString = "\t" + label + " =\t " + String.Format("{0:0.#####}", value);
|
||||
break;
|
||||
case 6:
|
||||
outString = "\t" + label + " =\t " + String.Format("{0:0.######}", value);
|
||||
break;
|
||||
default:
|
||||
outString = "\t" + label + " =\t " + value;
|
||||
break;
|
||||
}
|
||||
|
||||
return outString;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// (C) Copyright 2003-2013 by Autodesk, Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ConcreteCalculationsExample
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ConcreteCalculationsExample")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk")]
|
||||
[assembly: AssemblyProduct("ConcreteCalculationsExample")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk 2012")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("ef6ec8eb-c80f-4d3f-b766-63c4b14c9872")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2015.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("2015.0.0.2464")]
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.17929
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ConcreteCalculationsExample.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConcreteCalculationsExample.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.17929
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ConcreteCalculationsExample.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
|
||||
Reference in New Issue
Block a user