public void Create(AC_Line line) { if (line.XData == null) { if (askForDistances(line)) { tr.start_Transaction(); RegAppTable rat = (RegAppTable)tr.AC_Tr.GetObject(tr.AC_Db.RegAppTableId, OpenMode.ForRead, false); if (!rat.Has("TRIANGULATE")) { rat.UpgradeOpen(); RegAppTableRecord ratr = new RegAppTableRecord(); ratr.Name = "TRIANGULATE"; rat.Add(ratr); tr.AC_Tr.AddNewlyCreatedDBObject(ratr, true); } tr.AC_Tr.Commit(); tr.AC_Tr.Dispose(); ResultBuffer rb = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataRegAppName, "TRIANGULATE"), new TypedValue((int)DxfCode.ExtendedDataAsciiString, radius[0].ToString()), new TypedValue((int)DxfCode.ExtendedDataAsciiString, radius[1].ToString()), new TypedValue((int)DxfCode.ExtendedDataAsciiString, Guid.NewGuid().ToString())); line.XData = rb; Triangulations triang = new Triangulations(); triang.Show(line); } } else { tr.AC_Doc.Editor.WriteMessage("This line is alredy triangulated \n"); } }
public void HideTriangulate() { Triangulations triangulation = new Triangulations(); AC_Transactions tr = new AC_Transactions(); PromptEntityOptions options = new PromptEntityOptions("Pick a Line to Hide Triangulations"); options.SetRejectMessage("not valid Object \n"); options.AddAllowedClass(typeof(Line), true); PromptEntityResult sel = tr.AC_Doc.Editor.GetEntity(options); if (sel.Status == PromptStatus.OK) { triangulation.Hide((AC_Line)tr.openObjectErased(sel.ObjectId)); } }
public void ModifyTriangulate() { Triangulations triangulation = new Triangulations(); AC_Transactions tr = new AC_Transactions(); PromptEntityOptions options = new PromptEntityOptions("Pick a Line to modify Triangulations"); options.SetRejectMessage("not valid Object \n"); options.AddAllowedClass(typeof(Line), true); PromptEntityResult sel = tr.AC_Doc.Editor.GetEntity(options); if (sel.Status == PromptStatus.OK) { triangulation.Modify((AC_Line)tr.openObjectErased(sel.ObjectId)); } }
public void ShowAllTriangulate() { Triangulations triangulation = new Triangulations(); AC_Transactions tr = new AC_Transactions(); Transaction trans = tr.start_Transaction(); tr.openBlockTables(OpenMode.ForRead, OpenMode.ForRead); foreach (ObjectId id in tr.AC_blockTableRecord) { try { AC_Entity ent = (AC_Entity)tr.openObjectErased(id); if (ent.BaseEntity is Line) { AC_Line line = (AC_Line)ent; ResultBuffer rb = line.XData; if (rb != null) { //FIND XDATA GUID int index = 0; string guid = null; foreach (TypedValue tv in rb) { if (index == 3) { guid = tv.Value.ToString(); } index++; } if (guid != null) { triangulation.Show(line); } } } tr.Dispose(trans); } catch { tr.AC_Doc.Editor.WriteMessage("Skipped a not Entity Object"); } } }
public void HideAllTriangulate() { Triangulations triangulation = new Triangulations(); AC_Transactions tr = new AC_Transactions(); Transaction trans = tr.start_Transaction(); tr.openBlockTables(OpenMode.ForRead, OpenMode.ForRead); foreach (ObjectId id in tr.AC_blockTableRecord) { try{ AC_Entity ent = (AC_Entity)tr.openObjectErased(id); if (ent.BaseEntity is Line) { AC_Line line = (AC_Line)ent; ResultBuffer rb = line.XData; if (rb != null) { //FIND XDATA GUID int index = 0; string guid = null; foreach (TypedValue tv in rb) { if (index == 3) { guid = tv.Value.ToString(); } index++; } if (guid != null) { triangulation.Hide(line); } } } tr.Dispose(trans); } catch { tr.AC_Doc.Editor.WriteMessage("Skipped a not Entity Object"); } } }
public void Create(AC_Line line) { if (line.XData == null) { if (askForDistances(line)) { tr.start_Transaction(); RegAppTable rat = (RegAppTable)tr.AC_Tr.GetObject(tr.AC_Db.RegAppTableId,OpenMode.ForRead,false); if (!rat.Has("TRIANGULATE")) { rat.UpgradeOpen(); RegAppTableRecord ratr = new RegAppTableRecord(); ratr.Name = "TRIANGULATE"; rat.Add(ratr); tr.AC_Tr.AddNewlyCreatedDBObject(ratr, true); } tr.AC_Tr.Commit(); tr.AC_Tr.Dispose(); ResultBuffer rb = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataRegAppName, "TRIANGULATE"), new TypedValue((int)DxfCode.ExtendedDataAsciiString, radius[0].ToString()), new TypedValue((int)DxfCode.ExtendedDataAsciiString, radius[1].ToString()), new TypedValue((int)DxfCode.ExtendedDataAsciiString, Guid.NewGuid().ToString())); line.XData = rb; Triangulations triang = new Triangulations(); triang.Show(line); } } else { tr.AC_Doc.Editor.WriteMessage("This line is alredy triangulated \n"); } }