public bool askForDistances(AC_Line acline) { circleCenter = acline.StartPoint; previewCircle = new AC_Circle(); previewCircle.addToDrawing(); removeSnap noSnap = new removeSnap(previewCircle.ObjectId); ObjectOverrule.AddOverrule(RXObject.GetClass(typeof(Entity)), noSnap, true); drawPreviewCircle = true; PromptDistanceOptions DistOption = new PromptDistanceOptions("Triangulation Distance"); DistOption.BasePoint = circleCenter; DistOption.UseBasePoint = true; PromptDoubleResult triang1 = tr.AC_Doc.Editor.GetDistance(DistOption); if (triang1.Status == PromptStatus.OK) { if (triang1.Value != 0) { tr.AC_Doc.Editor.WriteMessage(triang1.Value.ToString() + "\n"); circleCenter = acline.EndPoint; DistOption.BasePoint = circleCenter; radius.Add(triang1.Value); PromptDoubleResult triang2 = tr.AC_Doc.Editor.GetDistance(DistOption); if (triang2.Status == PromptStatus.OK) { tr.AC_Doc.Editor.WriteMessage(triang2.Value.ToString() + "\n"); radius.Add(triang2.Value); previewCircle.Visible = false; drawPreviewCircle = false; return(true); } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Erase(true); return(false); } } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; tr.AC_Doc.Editor.WriteMessage("Cannot Calculate Triangulation \n"); ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Erase(true); return(false); } } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Visible = false; drawPreviewCircle = false; return(false); } }
public bool askForDistances(AC_Line acline) { circleCenter = acline.StartPoint; previewCircle = new AC_Circle(); previewCircle.addToDrawing(); removeSnap noSnap = new removeSnap(previewCircle.ObjectId); ObjectOverrule.AddOverrule(RXObject.GetClass(typeof(Entity)), noSnap, true); drawPreviewCircle = true; PromptDistanceOptions DistOption = new PromptDistanceOptions("Triangulation Distance"); DistOption.BasePoint = circleCenter; DistOption.UseBasePoint = true; PromptDoubleResult triang1 = tr.AC_Doc.Editor.GetDistance(DistOption); if (triang1.Status == PromptStatus.OK) { if (triang1.Value != 0) { tr.AC_Doc.Editor.WriteMessage(triang1.Value.ToString() + "\n"); circleCenter = acline.EndPoint; DistOption.BasePoint = circleCenter; radius.Add(triang1.Value); PromptDoubleResult triang2 = tr.AC_Doc.Editor.GetDistance(DistOption); if (triang2.Status == PromptStatus.OK) { tr.AC_Doc.Editor.WriteMessage(triang2.Value.ToString() + "\n"); radius.Add(triang2.Value); previewCircle.Visible = false; drawPreviewCircle = false; return true; } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Erase(true); return false; } } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; tr.AC_Doc.Editor.WriteMessage("Cannot Calculate Triangulation \n"); ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Erase(true); return false; } } else { tr.AC_Doc.Editor.PointMonitor -= Editor_PointMonitor; ObjectOverrule.RemoveOverrule(RXObject.GetClass(typeof(Entity)), noSnap); previewCircle.Visible = false; drawPreviewCircle = false; return false; } }