using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using aGi = Autodesk.AutoCAD.GraphicsInterface;
public class PointMonitorTooltips
{
private static DBObjectCollection m_markers
= new DBObjectCollection
(); private static IntegerCollection collectints
= new IntegerCollection
();
[CommandMethod("start")]
public static void StartMonitor()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed
.PointMonitor += new PointMonitorEventHandler
(ed_PointMonitor
); }
[CommandMethod("stop")]
public static void stopmonitor()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.PointMonitor -= ed_PointMonitor;
ClearMarkers();
}
static void ed_PointMonitor(object sender, PointMonitorEventArgs e)
{
showcircle(e.Context.RawPoint);
}
static void showcircle(Point3d pt)
{
ClearMarkers();
Circle circle
= new Circle
(pt, Vector3d
.ZAxis,
5); circle.ColorIndex = 1;
m_markers.Add(circle);
aGi.TransientManager.CurrentTransientManager.AddTransient(circle, aGi.TransientDrawingMode.DirectShortTerm, 128, collectints);
}
static void ClearMarkers()
{
for (int i = 0; i < m_markers.Count; i++)
{
aGi.TransientManager.CurrentTransientManager.EraseTransient(m_markers[i], collectints);
m_markers[i].Dispose();
}
m_markers.Clear();
}
}