Ejemplo n.º 1
0
        public ResultBuffer GetAllPointIds(ResultBuffer resbuf)
        {
            var nil = new TypedValue((int)LispDataType.Nil);

            if (resbuf == null)
            {
                CivilDocument      currentDocument = CivilApplication.ActiveDocument;
                ObjectIdCollection allPointIds     = currentDocument.GetAllPointIds();
                ResultBuffer       returnValue     = ListObjectIds(allPointIds);
                return(returnValue);
            }
            return(new ResultBuffer(nil));
        }
Ejemplo n.º 2
0
        [CommandMethod("ep")] //Comanda care exporta punctele din desenul curent in format PSOENZD csv
        public void ExportPoints()
        {
            CivilDocument civDoc = CivilApplication.ActiveDocument;
            Editor        ed     = Application.DocumentManager.MdiActiveDocument.Editor;

            if (civDoc.GetAllPointIds().Count == 0)
            {
                ed.WriteMessage("\nNo Cogo Points found!");
                return;
            }
            if (civDoc.GetAlignmentIds().Count == 0)
            {
                ed.WriteMessage("\nNo Alignments Points found!");
                return;
            }
            Ovidiu.x64.Civil3dUtil.ExportPoints Formular = new ExportPoints();
            Application.ShowModalDialog(Formular);
            ed.WriteMessage(Formular.cmbBoxAlignment.SelectedItem.ToString());
        }
Ejemplo n.º 3
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();
            }
        }