internal class _testJigClass : DrawJig
{
    internal Point3d Point;
 
    private string message;
    private Point3d SnapedPoint;
    private Editor ed;
 
    internal _testJigClass(string _mess)
    {
        message = _mess;
 
        ed = Application.DocumentManager.MdiActiveDocument.Editor;
        ed.PointMonitor += new PointMonitorEventHandler(ed_PointMonitor);
    }
 
    protected override SamplerStatus Sampler(JigPrompts prompts)
    {
        JigPromptPointOptions opt_point = new JigPromptPointOptions(message)
        {
            UserInputControls = UserInputControls.Accept3dCoordinates
        };
 
        PromptPointResult res_point = prompts.AcquirePoint(opt_point);
 
        if (res_point.Status == PromptStatus.OK)
            Point = SnapedPoint;
 
        return SamplerStatus.OK;
    }
 
    protected override bool WorldDraw(WorldDraw draw)
    {
        if (draw.Geometry != null)
            ed.WriteMessage("\n" + Point.X.ToString("0.000"));
 
        return true;
    }
 
    private void ed_PointMonitor(object sender, PointMonitorEventArgs e)
    {
        SnapedPoint = e.Context.ComputedPoint;
    }
}