コード例 #1
0
ファイル: Program.cs プロジェクト: imeg/OpenSees.NET
        static void Main(string[] args)
        {
            var wr1        = new Writer("1");
            var opsStream1 = new OpenSees.Handlers.RedirectStreamWrapper(wr1);
            var tclInterp1 = new OpenSees.Tcl.TclWrapper(opsStream1);

            tclInterp1.Init();
            var domain = tclInterp1.GetActiveDomain();

            //var ret = tclInterp1.Execute($"cd {"C:\\Git Projects\\OpenSees.NET - old2\\OpenSees\\Win64\\bin\\".Replace("\\","/")}");
            tclInterp1.AddUniaxialMaterialEventHandler      += TclInterp1_AddUniaxialMaterialEventHandler;
            tclInterp1.ClearAllUniaxialMaterialEventHandler += TclInterp1_ClearAllUniaxialMaterialEventHandler;
            domain.AddNodeEventHandler        += Domain_AddNodeEventHandler1;
            domain.AddElementEventHandler     += Domain_AddElementEventHandler;
            domain.AddLoadPatternEventHandler += Domain_AddLoadPatternEventHandler;
            var ret  = tclInterp1.Execute("source ../m2.txt");
            var disp = domain.GetNode(1).GetCommitDisp();
            var resp = domain.GetElement(1).GetDoubleResponse(40);

            //var recorders = domain.GetRecorders();
            //foreach (var recorder in recorders)
            //{
            //    var retClose = recorder.CloseOutputStreamHandler();
            //    var header = recorder.GetStreamHeader();
            //    var filename = recorder.GetFilename();
            //}

            tclInterp1.Execute("wipe");
            return;

            #region MyRegion
            //var domain = tclInterp1.GetActiveDomain();
            //domain.AddNodeEventHandler += Domain_AddNodeEventHandler;
            //TclExecutionResult result = new TclExecutionResult()
            //{
            //    ExecutionStatus = (int)OpenSees.Tcl.TclExecutionStatus.Init,
            //};
            //while (true)
            //{
            //    if (result.ExecutionStatus != (int)OpenSees.Tcl.TclExecutionStatus.Partial)
            //        Console.Write("opensees > ");
            //    var cmd = Console.ReadLine();
            //    if (cmd == "exit") break;
            //    result = tclInterp1.Execute(cmd);
            //    var node1 = domain.GetNode(1);
            //    var ele1 = domain.GetElement(1);
            //    if (result.ExecutionStatus == (int)OpenSees.Tcl.TclExecutionStatus.Success)
            //    {
            //        wr1.WriteLine(result.Result);
            //    }
            //    else if (result.ExecutionStatus == (int)OpenSees.Tcl.TclExecutionStatus.Failed)
            //    {

            //        wr1.WriteLine(result.ErrorMessage);
            //    }
            //}
            Console.ReadKey();
            #endregion
        }
コード例 #2
0
ファイル: TclCL.cs プロジェクト: civil-soft-science/OpenSees
 public TclCommandLine(OpenSees.Tcl.TclWrapper tcl, TextWriter textWriter)
 {
     _tcl = tcl;
     _tw  = textWriter;
 }