コード例 #1
0
 private void txtBoxFilter_TextChanged(object sender, EventArgs e)
 {
     if (txtBoxFilter.Text == "")
     {
         return;
     }
     //Citire filtru descriere puncte
     Filtre = txtBoxFilter.Text.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
     //Resetare lista scurta si completare cu punctele care indeplinesc criteriile
     listaScurta.Clear();
     for (int i = 0; i < listaPuncte.Count; i++)
     {
         if (Filtre.Contains(listaPuncte[i].D))
         {
             listaScurta.Add(listaPuncte[i]);
         }
     }
     //Actualizare tabel de previzualizare
     fillTable(listaScurta);
 }
コード例 #2
0
        private void ExportPoints_Load(object sender, EventArgs e)
        {
            Autodesk.AutoCAD.ApplicationServices.Document AcadDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            CivilDocument CivilDoc = CivilApplication.ActiveDocument;
            Database      db       = AcadDoc.Database;
            Editor        ed       = AcadDoc.Editor;

            ObjectIdCollection alignmentIds = CivilDoc.GetAlignmentIds(); //lista ID aliniamente
            ObjectIdCollection pointIds     = CivilDoc.GetAllPointIds();  //lista ID puncte

            using (Transaction trans = AcadDoc.TransactionManager.StartTransaction())
            {
                //Popularea listei de aliniamente
                double length           = 0;
                string LongestAlignName = string.Empty;
                foreach (ObjectId alinId in alignmentIds)
                {
                    Alignment alin = (Alignment)trans.GetObject(alinId, OpenMode.ForRead);
                    this.cmbBoxAlignment.Items.Add(alin.Name);
                    alinIdTable.Add(alin.Name, alinId);
                    if (alin.Length > length)
                    {
                        LongestAlignName = alin.Name;
                        length           = alin.Length;
                    }
                }
                this.cmbBoxAlignment.Text = LongestAlignName;

                //Obtinerea listei cu toate punctele din desen
                foreach (ObjectId pointId in pointIds)
                {
                    CogoPoint point = (CogoPoint)trans.GetObject(pointId, OpenMode.ForRead);
                    Ovidiu.StringUtil.Punct3D punct = new StringUtil.Punct3D();
                    Alignment alin = (Alignment)trans.GetObject((ObjectId)alinIdTable[cmbBoxAlignment.Text], OpenMode.ForRead);

                    punct.Nr = (int)point.PointNumber;
                    punct.X  = point.Location.X;
                    punct.Y  = point.Location.Y;
                    punct.Z  = point.Location.Z;
                    punct.D  = point.RawDescription;
                    double kmPunct     = 0;
                    double offsetPunct = 0;
                    try
                    {
                        alin.StationOffset(punct.X, punct.Y, ref kmPunct, ref offsetPunct);
                    }
                    catch
                    {
                        kmPunct     = -999;
                        offsetPunct = -999;
                    }
                    punct.KM     = kmPunct;
                    punct.Offset = offsetPunct;

                    listaPuncte.Add(punct);
                }
                //listaScurta = listaPuncte;

                //Popularea tabelului de previzualizare
                fillTable(listaPuncte);

                ed.WriteMessage(listaPuncte.Count.ToString());
                trans.Commit();
            }
        }