コード例 #1
0
        }//unitSettings

        //This method creates a concentrated load in a determined position of a beam
        private void createConcentratedLoad(IRobotSimpleCase simpleCase, double position, double value, Bar bar)
        {
            IRobotLoadRecord2 irl = (IRobotLoadRecord2)simpleCase.Records.Create(IRobotLoadRecordType.I_LRT_BAR_FORCE_CONCENTRATED);

            irl.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_REL, 1.0);
            irl.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, position);
            irl.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FZ, value);

            irl.Objects.AddOne(bar.id);
        }
コード例 #2
0
ファイル: RobotStart.cs プロジェクト: ITI-CEI36/Handazteel
        public static bool SetOwnWeight()
        {
            robotApp.Interactive = 0;
            IRobotSimpleCase  OwnWeight       = caseServer.CreateSimple(caseServer.FreeNumber, "OwnWeight", IRobotCaseNature.I_CN_PERMANENT, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            IRobotLoadRecord2 OwnWeightRecord = OwnWeight.Records.Create(IRobotLoadRecordType.I_LRT_DEAD) as IRobotLoadRecord2;

            OwnWeightRecord.SetValue((short)IRobotDeadRecordValues.I_DRV_ENTIRE_STRUCTURE, 1);
            OwnWeightRecord.SetValue((short)IRobotDeadRecordValues.I_DRV_COEFF, 1);
            OwnWeightRecord.SetValue((short)IRobotDeadRecordValues.I_DRV_Z, -1);
            robotApp.Interactive = 1;
            return(true);
        }
コード例 #3
0
ファイル: Robot.cs プロジェクト: 15831944/DotNetStudy
        // helper method that creates a new load record in given load case
        //根据工况设置荷载
        private void create_concentrated_load(IRobotSimpleCase isc, double pos, double val)
        {
            // create a new force concentrated load record
            //添加一个集中荷载记录,类型为集中荷载
            IRobotLoadRecord2 ilr = (IRobotLoadRecord2)isc.Records.Create(IRobotLoadRecordType.I_LRT_BAR_FORCE_CONCENTRATED);


            // define the values of load record
            //给荷载记录赋值
            ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_REL, 1.0);
            ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, pos);
            ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FZ, val);

            // apply load record to both beams of the structure
            ilr.Objects.AddOne(beam1); //将ilr荷载作用到编号为beam1的单元上
            ilr.Objects.AddOne(beam2); //将ilr荷载作用到编号为beam2的单元上
        }
コード例 #4
0
        //This method generates all structure loads in the system
        public void generateStructureLoads(double concentratedLoad, double c, double e)
        {
            //check if the loads have already been created. In case they were created delete all cases
            if (loadsGenerated)
            {
                RobotSelection iAllCases = iRobotApp.Project.Structure.Selections.CreateFull(IRobotObjectType.I_OT_CASE);
                iRobotApp.Project.Structure.Cases.DeleteMany(iAllCases);
            }

            //Get reference to load cases server
            IRobotCaseServer iCases = (IRobotCaseServer)iRobotApp.Project.Structure.Cases;

            //Get first available (free) user number for load
            int caseNumber = iCases.FreeNumber;

            //Create DeadLoad case
            IRobotSimpleCase deadLoadCase = (IRobotSimpleCase)iCases.CreateSimple(caseNumber, "Peso Proprio", IRobotCaseNature.I_CN_PERMANENT, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);

            IRobotLoadRecord2 deadLoadRecord = (IRobotLoadRecord2)deadLoadCase.Records.Create(IRobotLoadRecordType.I_LRT_DEAD);

            deadLoadRecord.SetValue((short)IRobotDeadRecordValues.I_DRV_ENTIRE_STRUCTURE, (double)1);

            //Create First lifiting load case
            IRobotSimpleCase lifitingCase1 = (IRobotSimpleCase)iCases.CreateSimple(caseNumber + 1, "Talha 1", IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            //Calculate the relative position of the load
            double relativePosition1 = ((c - e) / 2) / c;

            createConcentratedLoad(lifitingCase1, relativePosition1, concentratedLoad, bars[5]);

            //Create second lifting load case
            IRobotSimpleCase liftingCase2 = (IRobotSimpleCase)iCases.CreateSimple(caseNumber + 2, "Talha 2", IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);

            createConcentratedLoad(liftingCase2, 0.5, concentratedLoad, bars[5]);

            //Create load combinations
            IRobotCaseCombination uls1 = (IRobotCaseCombination)iCases.CreateCombination(caseNumber + 3, "ULS-1", IRobotCombinationType.I_CBT_ULS, IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_COMB);

            uls1.CaseFactors.New(caseNumber, (double)1.0);
            uls1.CaseFactors.New(caseNumber + 1, (double)1.0);

            IRobotCaseCombination uls2 = (IRobotCaseCombination)iCases.CreateCombination(caseNumber + 4, "ULS-2", IRobotCombinationType.I_CBT_ULS, IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_COMB);

            uls2.CaseFactors.New(caseNumber, (double)1.0);
            uls2.CaseFactors.New(caseNumber + 2, 1.0);

            IRobotCaseCombination sls1 = (IRobotCaseCombination)iCases.CreateCombination(caseNumber + 5, "SLS-1", IRobotCombinationType.I_CBT_SLS, IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_COMB);

            sls1.CaseFactors.New(caseNumber, 1.0);
            sls1.CaseFactors.New(caseNumber + 1, 1.0);

            IRobotCaseCombination sls2 = (IRobotCaseCombination)iCases.CreateCombination(caseNumber + 6, "SLS-2", IRobotCombinationType.I_CBT_SLS, IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_COMB);

            sls2.CaseFactors.New(caseNumber, 1.0);
            sls2.CaseFactors.New(caseNumber + 2, 1.0);

            loadsGenerated = true;
        }//createConcentratedLoad
コード例 #5
0
ファイル: RobotStart.cs プロジェクト: ITI-CEI36/Handazteel
        public static bool SetCoverLoad(Structure Structure)
        {
            robotApp.Interactive = 0;
            IRobotSimpleCase  CoverLoad       = caseServer.CreateSimple(caseServer.FreeNumber, "CoverLoad", IRobotCaseNature.I_CN_PERMANENT, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            IRobotLoadRecord2 CoverLoadRecord = CoverLoad.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            CoverLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, -1000 * 10);
            CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[0].Id);
            CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[1].Id);

            #region A9ba 7aga 3amltha fi 7yaty

            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, Structure.Purlins[i].PurlinStart.X / Math.Cos(Structure.Frames[0].Angle));


            //for (int i = 0; i < Structure.Purlins.Count; i++)
            //{
            //    IRobotLoadRecord2 CoverLoadRecord = CoverLoad.Records.Create(IRobotLoadRecordType.I_LRT_BAR_FORCE_CONCENTRATED) as IRobotLoadRecord2;
            //    CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_REL, 0);
            //    CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FX, 0);
            //    CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FY, 0);
            //    CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FZ, -1000 * 10);
            //    CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_CY, 0);

            //    if (Structure.Purlins[0].PurlinStart.X <= Structure.Frames[0].Beams[0].Beamline.Length)
            //    {
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_LOC, 1);
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, Structure.Purlins[i].PurlinStart.X / Math.Cos(Structure.Frames[0].Angle));
            //        CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[0].BeamId);
            //    }
            //    else if (Structure.Purlins[0].PurlinStart.X == Structure.Frames[0].Beams[0].Beamline.Length)
            //    {
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_LOC, 0);
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X,Structure.Purlins[i].PurlinStart.X / Math.Cos(Structure.Frames[0].Angle));
            //        CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[0].BeamId);
            //    }
            //    else
            //    {
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_LOC, 1);
            //        CoverLoadRecord.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, Structure.Purlins[i].PurlinStart.X / Math.Cos(Structure.Frames[0].Angle));
            //        CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[1].BeamId);
            //    }

            //}

            //for (int i = 0; i < Structure.Frames[0].Beams.Count; i++)
            //{
            //    CoverLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[i].BeamId);
            //}
            #endregion
            robotApp.Interactive = 1;
            return(true);
        }
コード例 #6
0
ファイル: BeamTools.cs プロジェクト: 15831944/DotNetStudy
        //施加集中荷载
        public static void create_concentrated_load(IRobotSimpleCase isc, int elementNO, double pos, double val)
        {
            // create a new force concentrated load record
            //添加一个集中荷载记录,类型为集中荷载I_LRT_BAR_UNIFORM
            //IRobotLoadRecord2 ilr = (IRobotLoadRecord2)isc.Records.Create(IRobotLoadRecordType.I_LRT_BAR_FORCE_CONCENTRATED);
            IRobotLoadRecord2 ilr = (IRobotLoadRecord2)isc.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM);

            // define the values of load record
            //给荷载记录赋值
            //ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_REL, 1.0);
            //ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_X, pos);
            //ilr.SetValue((short)IRobotBarForceConcentrateRecordValues.I_BFCRV_FZ, val);
            ilr.SetValue(System.Convert.ToInt16(IRobotUniformRecordValues.I_URV_PZ), val);

            // apply load record to both beams of the structure
            ilr.Objects.AddOne(elementNO);//将ilr荷载作用到编号为beam1的单元上
            //ilr.Objects.AddOne(elementNO);//将ilr荷载作用到编号为beam2的单元上
        }
コード例 #7
0
ファイル: RobotStart.cs プロジェクト: ITI-CEI36/Handazteel
        public static bool SetLiveLoad(Structure Structure)
        {
            robotApp.Interactive = 0;
            IRobotSimpleCase  liveLoad       = caseServer.CreateSimple(caseServer.FreeNumber, "Live", IRobotCaseNature.I_CN_EXPLOATATION, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            IRobotLoadRecord2 liveLoadRecord = liveLoad.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            liveLoadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, -1000 * 10);
            liveLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[0].Id);
            liveLoadRecord.Objects.AddOne(Structure.Frames[0].Beams[1].Id);
            robotApp.Interactive = 1;
            return(true);
        }
コード例 #8
0
ファイル: RobotStart.cs プロジェクト: ITI-CEI36/Handazteel
        public static bool SetWindloadLeft(Structure Structure)
        {
            //there is a known issue with setting the windload to left or right due to the local axis of frame drawing
            //if you draw from bottom to top it will be fine
            // if you draw from top to bottom , voila , error
            ////===============
            //For beams
            robotApp.Interactive = 0;
            IRobotSimpleCase windLoadLeft = caseServer.CreateSimple(caseServer.FreeNumber, "Wind_left", IRobotCaseNature.I_CN_WIND, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            //================= For Compression
            IRobotLoadRecord2 windLoadLeftRecordLeft = windLoadLeft.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            windLoadLeftRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, -1000 * 10);
            //================= For Suction
            IRobotLoadRecord2 windLoadLeftRecordRight = windLoadLeft.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            windLoadLeftRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, 1000 * 10);
            //=================
            //left
            windLoadLeftRecordLeft.Objects.AddOne(Structure.Frames[0].Columns[0].Id);
            windLoadLeftRecordLeft.Objects.AddOne(Structure.Frames[0].Beams[0].Id);
            windLoadLeftRecordLeft.Objects.AddOne(Structure.Frames[0].Columns[1].Id);

            //=============== Suction
            //right
            windLoadLeftRecordRight.Objects.AddOne(Structure.Frames[0].Beams[1].Id);

            robotApp.Interactive = 1;
            return(true);
        }
コード例 #9
0
ファイル: RobotStart.cs プロジェクト: ITI-CEI36/Handazteel
        public static bool SetWindLoadRight(Structure Structure)
        {
            robotApp.Interactive = 0;
            IRobotSimpleCase windLoadRight = caseServer.CreateSimple(caseServer.FreeNumber, "Wind_Right", IRobotCaseNature.I_CN_WIND, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            //================= For Compression
            IRobotLoadRecord2 windLoadRightRecordLeft = windLoadRight.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            windLoadRightRecordLeft.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, -1000 * 10);
            //================= For Suction
            IRobotLoadRecord2 windLoadRightRecordRight = windLoadRight.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM) as IRobotLoadRecord2;

            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_RELATIVE, 1);
            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1);
            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1);
            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PX, 0);
            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PY, 0);
            windLoadRightRecordRight.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, 1000 * 10);
            //=================
            //left

            windLoadRightRecordLeft.Objects.AddOne(Structure.Frames[0].Beams[1].Id);

            //=============== Compression
            //=============== Suction
            //right
            windLoadRightRecordRight.Objects.AddOne(Structure.Frames[0].Beams[0].Id);
            windLoadRightRecordRight.Objects.AddOne(Structure.Frames[0].Columns[0].Id);
            windLoadRightRecordRight.Objects.AddOne(Structure.Frames[0].Columns[1].Id);



            robotApp.Interactive = 1;
            return(true);
        }
コード例 #10
0
ファイル: Robot.cs プロジェクト: 15831944/DotNetStudy
        // generate loads
        private void generateLoads(object sender, EventArgs e)
        {
            if (!geometryCreated)//如果没有创建几何
            {
                // geometry must be created first
                //创建几何
                createGeometry(sender, e);
            }

            // switch Interactive flag off to avoid any questions that need user interaction in Robot
            //关闭robot的交互
            iapp.Interactive = 0;

            if (loadsGenerated)//如果几何已经创建好
            {
                // remove all existing load cases
                //将现有工况全部清除
                RobotSelection iallCases = iapp.Project.Structure.Selections.CreateFull(IRobotObjectType.I_OT_CASE);
                iapp.Project.Structure.Cases.DeleteMany(iallCases);
            }

            // get reference to load cases server
            //获取本项目的工况集合
            IRobotCaseServer icases = (IRobotCaseServer)iapp.Project.Structure.Cases;

            // get first available (free) user number for load case
            //获取可用工况编号
            int c1 = icases.FreeNumber;

            if (checkDeadLoad.Checked)//如果选中了自重荷载
            {
                // create dead load case
                //创建自重工况
                IRobotSimpleCase isc1 = (IRobotSimpleCase)icases.CreateSimple(c1, "Dead load", IRobotCaseNature.I_CN_PERMANENT, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);

                // define dead load record for the entire structure
                //定义自重荷载,添加到自重工况里面取
                IRobotLoadRecord2 ilr1 = (IRobotLoadRecord2)isc1.Records.Create(IRobotLoadRecordType.I_LRT_DEAD);
                ilr1.SetValue((short)IRobotDeadRecordValues.I_DRV_ENTIRE_STRUCTURE, (double)1);
                ++c1;
            }

            // create live load case
            //创建活荷载工况
            IRobotSimpleCase isc = (IRobotSimpleCase)icases.CreateSimple(c1, "Live load", IRobotCaseNature.I_CN_ACCIDENTAL, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            // convert force value from kN to N and change the direction
            //荷载格式转换
            double val = -1000 * System.Convert.ToDouble(editIntensity1.Text);

            // add force concentrated load records in 5 points on the beams
            //给活荷载工况添加荷载
            create_concentrated_load(isc, 0.0, 0.5 * val);
            create_concentrated_load(isc, 0.25, val);
            create_concentrated_load(isc, 0.5, val);
            create_concentrated_load(isc, 0.75, val);
            create_concentrated_load(isc, 1.0, 0.5 * val);

            // create live load case
            //创建另外一个荷载工况
            isc = (IRobotSimpleCase)icases.CreateSimple(c1 + 1, "Exploitation load", IRobotCaseNature.I_CN_EXPLOATATION, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            // convert force value from kN to N and change the direction
            //把荷载值从KN转换成N
            val = -1000 * System.Convert.ToDouble(editIntensity2.Text);
            // add force concentrated load records in 5 points on the beams
            //将荷载作用到梁上面
            create_concentrated_load(isc, 0.0, 0.5 * val);
            create_concentrated_load(isc, 0.25, val);
            create_concentrated_load(isc, 0.5, val);
            create_concentrated_load(isc, 0.75, val);
            create_concentrated_load(isc, 1.0, 0.5 * val);

            // create wind load applied to columns
            //添加荷载工况,风荷载
            isc = (IRobotSimpleCase)icases.CreateSimple(c1 + 2, "Wind load", IRobotCaseNature.I_CN_WIND, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
            IRobotLoadRecord2 ilr = (IRobotLoadRecord2)isc.Records.Create(IRobotLoadRecordType.I_LRT_BAR_UNIFORM);

            ilr.SetValue((short)IRobotBarUniformRecordValues.I_BURV_PZ, 1000 * System.Convert.ToDouble(editIntensity3.Text));
            ilr.SetValue((short)IRobotBarUniformRecordValues.I_BURV_LOCAL, 1.0);
            ilr.Objects.AddOne(beam1 - 1);
            ilr.Objects.AddOne(beam2 + 1);

            // create combinations
            //添加荷载组合
            IRobotCaseCombination icc = (IRobotCaseCombination)icases.CreateCombination(c1 + 3, "Comb ULS", IRobotCombinationType.I_CBT_ULS, IRobotCaseNature.I_CN_EXPLOATATION, IRobotCaseAnalizeType.I_CAT_COMB);

            icc.CaseFactors.New(c1, System.Convert.ToDouble(editUls1.Text));
            icc.CaseFactors.New(c1 + 1, System.Convert.ToDouble(editUls2.Text));
            icc.CaseFactors.New(c1 + 2, System.Convert.ToDouble(editUls3.Text));

            icc = (IRobotCaseCombination)icases.CreateCombination(c1 + 4, "Comb SLS", IRobotCombinationType.I_CBT_SLS, IRobotCaseNature.I_CN_EXPLOATATION, IRobotCaseAnalizeType.I_CAT_COMB);
            icc.CaseFactors.New(c1, System.Convert.ToDouble(editSls1.Text));
            icc.CaseFactors.New(c1 + 1, System.Convert.ToDouble(editSls2.Text));
            icc.CaseFactors.New(c1 + 2, System.Convert.ToDouble(editSls3.Text));

            loadsGenerated = true;

            // switch Interactive flag on to allow user to work with Robot GUI
            //允许ROBOT界面交互
            iapp.Interactive = 1;

            // get the focus back
            //获取焦点
            this.Activate();
        }