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)); }
[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()); }
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(); } }