Exemple #1
0
        public FormHipMethod(IHeadsApplication app, CHIPInfo hipinfo)
        {
            InitializeComponent();

            this.m_app = app;
            this.InitGrid();
            List <CHHipData> listHhip = new List <CHHipData>();

            GetDetailsFromExistingData(hipinfo, ref listHhip);
            foreach (CHHipData hdata in listHhip)
            {
                this.AddRow(hdata);
            }

            this.txtModelName_.ReadOnly   = true;
            this.txtStringlabel_.ReadOnly = true;

            //draw the polyline
            ApplyHIP();
            checkBoxDefaultRead_.Checked = false;
            this.UpdateRadiousValue();
            this.UpdateDeltaValue();

            this.m_app.ActiveDocument.RefreshDocument();
            this.m_app.ZoomExtents();
        }
Exemple #2
0
        void GenerateModel()
        {
            if (this.treeViewDesigns_.SelectedNode != null && this.treeViewDesigns_.SelectedNode.Tag != null)
            {
                CHIPInfo    info = (CHIPInfo)this.treeViewDesigns_.SelectedNode.Tag;
                HalMod1type data = new HalMod1type();
                data.ModelName  = info.ModelName;
                data.StringName = info.StringLabel;
                data.inc        = this.tbInterval_.Value;
                data.TotalSpChn = dtSpChainage.Rows.Count;

                string       strPath = Path.Combine(this.app.AppDataPath, "HALMOD1.TMP");
                BinaryWriter bw      = new BinaryWriter(new FileStream(strPath, FileMode.Create), Encoding.Default);
                data.ToStream(bw);

                if (this.dtSpChainage.Rows.Count > 0)
                {
                    StreamWriter sw = new StreamWriter(Path.Combine(this.app.AppDataPath, "SPCHN.TMP"));
                    for (int i = 0; i < this.dtSpChainage.Rows.Count; i++)
                    {
                        double dVal = (double)this.dtSpChainage.Rows[i][ColValus];
                        bw.Write(dVal);
                        sw.WriteLine(data.ModelName + "\t" + data.StringName + "\t" + dVal.ToString());
                    }
                    sw.Close();
                }

                bw.Close();

                FormHalignModelViewer modelviewer = new FormHalignModelViewer(this.app);
                modelviewer.ShowDialog();
            }
        }
Exemple #3
0
 private void GetDetailsFromExistingData(CHIPInfo hipinfo, ref List <CHHipData> listHhip)
 {
     if (hipinfo.DataList.Count > 0)
     {
         this.txtModelName_.Text       = hipinfo.ModelName;
         this.txtStringlabel_.Text     = hipinfo.StringLabel;
         this.txtStartInterval_.Value  = hipinfo.DataList[0].dStartchn;
         this.txtDefaultRadious_.Value = hipinfo.DataList[0].dRadius;
         listHhip = CHalignHipUtil.GenerateHIPData(hipinfo);
     }
 }
Exemple #4
0
        public FormElementMethod(IHeadsApplication app, CHIPInfo info)
        {
            InitializeComponent();

            this.m_app = app;
            this.PopulateElementTypes();

            this.FillFromExistingData(info);

            this.txtModelName_.ReadOnly   = true;
            this.txtStringlabel_.ReadOnly = true;
        }
Exemple #5
0
        public static CHIPInfo[] ReadHaligns(string strHalignFilePath)
        {
            List <CHIPInfo> listhips = new List <CHIPInfo>();

            if (File.Exists(strHalignFilePath))
            {
                StreamReader readerSrc = new StreamReader(strHalignFilePath);

                string   strLastModelName   = "";
                string   strLastStringLabel = "";
                CHIPInfo hipinfo            = null;
                while (readerSrc.EndOfStream == false)
                {
                    string         strline = readerSrc.ReadLine();
                    CHalignFilData fildata = CHalignFilData.Parse(strline);

                    if (fildata != null)
                    {
                        if (strLastModelName != fildata.sMod || strLastStringLabel != fildata.sString)
                        {
                            hipinfo             = new CHIPInfo();
                            hipinfo.ModelName   = fildata.sMod;
                            hipinfo.StringLabel = fildata.sString;
                            listhips.Add(hipinfo);

                            strLastModelName   = fildata.sMod;
                            strLastStringLabel = fildata.sString;
                        }
                        hipinfo.DataList.Add(fildata);
                    }

                    //string[] arrStr = strline.Split(new char[] { '\t' });
                    //if (arrStr.Length == 20)
                    //{
                    //    if (strLastModelName != arrStr[0] || strLastStringLabel != arrStr[1])
                    //    {
                    //        hipinfo = new CHIPInfo();
                    //        hipinfo.ModelName = arrStr[0];
                    //        hipinfo.StringLabel = arrStr[1];
                    //        listhips.Add(hipinfo);

                    //        strLastModelName = arrStr[0];
                    //        strLastStringLabel = arrStr[1];
                    //    }
                    //    hipinfo.DataList.Add(CHalignFilData.Parse(strline));
                    //}
                }

                readerSrc.Close();
            }
            return(listhips.ToArray());
        }
Exemple #6
0
        public static List <CHHipData> GenerateHIPData(CHIPInfo hipinfo)
        {
            List <CHHipData> listHhip   = null;
            int            ln           = 0;
            int            iLine        = 0;
            int            iHipArrIndex = 0;
            double         nSign        = 0;
            CHalignFilData filData      = null;

            CHHipData[] hipArr = new CHHipData[hipinfo.DataList.Count];

            for (int i = 0; i < hipinfo.DataList.Count; i++)
            {
                hipArr[i] = new CHHipData();
            }

            ln++;
            filData = hipinfo.DataList[iLine]; iLine++;
            nSign   = (filData.iTurn == 1) ? -1 : 1;

            hipArr[iHipArrIndex].xvalue     = filData.dStartx;
            hipArr[iHipArrIndex].yvalue     = filData.dStarty;
            hipArr[iHipArrIndex].delta      = filData.dDeviation * nSign;
            hipArr[iHipArrIndex].radius     = 0.0;
            hipArr[iHipArrIndex].leadtrans  = 0.0;
            hipArr[iHipArrIndex].trailtrans = 0.0;

            double dLastHIPx = filData.dHipx;
            double dLastHIPy = filData.dHipy;

            while (ln < (hipinfo.DataList.Count - 1))
            {
                ln++;
                filData = hipinfo.DataList[iLine]; iLine++;

                if (ln == 2)
                {
                    if (filData.iEltype != 1)
                    {
                        iHipArrIndex++;

                        nSign = (filData.iTurn == 1) ? -1 : 1;

                        hipArr[iHipArrIndex].xvalue     = filData.dHipx;
                        hipArr[iHipArrIndex].yvalue     = filData.dHipy;
                        hipArr[iHipArrIndex].delta      = filData.dDeviation * nSign;
                        hipArr[iHipArrIndex].radius     = 0.0;
                        hipArr[iHipArrIndex].leadtrans  = 0.0;
                        hipArr[iHipArrIndex].trailtrans = 0.0;
                    }
                }

                if ((Math.Abs(dLastHIPx - filData.dHipx) < 0.00001) && (Math.Abs(dLastHIPy - filData.dHipy) < 0.00001))
                {
                    // same HIP set
                    if (filData.iEltype == 2) // lead transition
                    {
                        hipArr[iHipArrIndex].leadtrans = filData.dEllength;
                    }
                    else if (filData.iEltype == 3) // circular transition
                    {
                        hipArr[iHipArrIndex].radius = filData.dRadius * nSign;
                    }
                    else if (filData.iEltype == 4) // trail transition
                    {
                        hipArr[iHipArrIndex].trailtrans = filData.dEllength;
                    }
                    else
                    {
                        //Error
                        return(listHhip);
                    }
                }
                else
                {
                    // next HIP set
                    iHipArrIndex++;

                    nSign = (filData.iTurn == 1) ? -1 : 1;

                    hipArr[iHipArrIndex].xvalue     = filData.dHipx;
                    hipArr[iHipArrIndex].yvalue     = filData.dHipy;
                    hipArr[iHipArrIndex].delta      = filData.dDeviation * nSign;
                    hipArr[iHipArrIndex].radius     = 0.0;
                    hipArr[iHipArrIndex].leadtrans  = 0.0;
                    hipArr[iHipArrIndex].trailtrans = 0.0;

                    dLastHIPx = filData.dHipx;
                    dLastHIPy = filData.dHipy;
                }
            }

            iHipArrIndex++;
            filData = hipinfo.DataList[iLine]; iLine++;
            ln++;
            nSign = (filData.iTurn == 1) ? -1 : 1;
            hipArr[iHipArrIndex].xvalue     = filData.dEndx;
            hipArr[iHipArrIndex].yvalue     = filData.dEndy;
            hipArr[iHipArrIndex].delta      = filData.dDeviation * nSign;
            hipArr[iHipArrIndex].radius     = 0.0;
            hipArr[iHipArrIndex].leadtrans  = 0.0;
            hipArr[iHipArrIndex].trailtrans = 0.0;

            listHhip = new List <CHHipData>();
            for (int ii = 0; ii < (iHipArrIndex + 1); ii++)
            {
                listHhip.Add(hipArr[ii]);
            }

            return(listHhip);
        }
Exemple #7
0
        public System.Windows.Forms.Form CreateOpenHIPMethodDialog(IHeadsApplication app, CHIPInfo info)
        {
            FormHipMethod    formhipmethod = null;
            List <CHHipData> listHhip      = CHalignHipUtil.GenerateHIPData(info);

            if (listHhip != null || listHhip.Count > 0)
            {
                formhipmethod = new FormHipMethod(app, info);
            }
            else
            {
                MessageBox.Show("Error in Halign.fil file"
                                , Resources.ST_ERROR_MSGBOX_CAPTION
                                , System.Windows.Forms.MessageBoxButtons.OK
                                , System.Windows.Forms.MessageBoxIcon.Error);
            }
            return(formhipmethod);
        }
Exemple #8
0
        public System.Windows.Forms.Form CreateOpenElementMethodDialog(IHeadsApplication app, CHIPInfo info)
        {
            FormElementMethod formelementmethod = null;

            formelementmethod = new FormElementMethod(app, info);
            return(formelementmethod);
        }
Exemple #9
0
 private void btnOk__Click(object sender, EventArgs e)
 {
     this.selectedItem = (CHIPInfo)this.treeViewModels_.SelectedNode.Tag;
     this.DialogResult = DialogResult.OK;
     this.Close();
 }
Exemple #10
0
        void FillFromExistingData(CHIPInfo info)
        {
            if (info.IsHipData == false)
            {
                ViewerUtils.DeleteFileIfExists(System.IO.Path.Combine(this.m_app.AppDataPath, "halign.tmp"));

                int nidxED = 0;

                this.txtModelName_.Text   = info.ModelName;
                this.txtStringlabel_.Text = info.StringLabel;
                for (int iCnt = 0; iCnt < info.DataList.Count; iCnt++)
                {
                    CHalignFilData fildata = info.DataList[iCnt];
                    if (carED[nidxED] == null)
                    {
                        carED[nidxED] = new CElementData();
                    }
                    carED[nidxED].dBearings      = fildata.dB1;
                    carED[nidxED].dChainInterval = 10;
                    carED[nidxED].dLength        = fildata.dEllength;
                    if (fildata.iTurn == 1)
                    {
                        fildata.dRadius = -1 * fildata.dRadius;
                    }
                    carED[nidxED].dRadius     = fildata.dRadius;
                    carED[nidxED].dStartChain = fildata.dStartchn;
                    carED[nidxED].dXvalue     = fildata.dStartx;
                    carED[nidxED].dYvalue     = fildata.dStarty;
                    carED[nidxED].nElementNo  = nidxED + 1;
                    carED[nidxED].nType       = fildata.iEltype;

                    CHalignElementUtil code = new CHalignElementUtil();

                    code.Funcmain(this.m_app.AppDataPath, 2, 1, info.ModelName, info.StringLabel
                                  , (short)(nidxED + 1), fildata.iEltype, fildata.dStartchn
                                  , 10.0, fildata.dStartx, fildata.dStarty, fildata.dB1
                                  , fildata.dEllength, fildata.dRadius);

                    carED[nidxED].npLineID = DrawingUtil.DrawData(this.m_app, System.IO.Path.Combine(this.m_app.AppDataPath, "HAL2.TMP"), "ELE", true);

                    nidxED++;

                    this.SelectedElementType        = fildata.iEltype;
                    this.txtChainageInterval_.Value = 10.0;
                    this.txtLength_.Value           = fildata.dEllength;
                    this.txtModelName_.Text         = fildata.sMod;
                    this.txtRadius_.Value           = fildata.dRadius;
                    this.txtStartInterval_.Value    = fildata.dEndchn;
                    this.txtStringlabel_.Text       = fildata.sString;
                    this.txtWCBearings_.Value       = fildata.dB2;
                    this.txtXVal_.Value             = fildata.dEndx;
                    this.txtYVal_.Value             = fildata.dEndy;
                    this.StartEleNo = nidxED + 1;
                    ElementNo       = nidxED + 1;
                    nTotED          = ElementNo - 1;
                    TotalEleDrawn   = nidxED;

                    lastED.dStartChain    = this.txtStartInterval_.Value;
                    lastED.dChainInterval = this.txtChainageInterval_.Value;
                    lastED.dXvalue        = this.txtXVal_.Value;
                    lastED.dYvalue        = this.txtYVal_.Value;
                    lastED.nType          = this.SelectedElementType;
                    lastED.dBearings      = this.txtWCBearings_.Value;
                    lastED.dLength        = this.txtLength_.Value;
                    lastED.dRadius        = this.txtRadius_.Value;
                    lastED.nElementNo     = this.StartEleNo;
                }
                this.m_app.ActiveDocument.RefreshDocument();
                this.m_app.ZoomExtents();
                //ViewerUtils.DeleteFileIfExists(this.m_app.AppDataPath + @"\~halign.fil");
            }
        }