liminnet 发表于 2009-9-30 15:11:00

雪山飞狐_lzh 发表于 2009-9-30 23:54:00

<p>基点Copy?</p><p>这个和其他的Jig没有什么不同,你先看下例子吧</p>

liminnet 发表于 2009-10-1 21:58:00

雪山飞狐_lzh 发表于 2009-10-1 23:32:00

<p>没做过这样的:)不会是直接拖动XLine的吧?</p>

mccad 发表于 2009-10-2 07:19:00

KO入行时间太短,AutoCAD十字标的长短是可以设置的。

liminnet 发表于 2009-10-2 22:24:00

mccad 发表于 2009-10-2 22:37:00

不好意思,图没看仔细。

雪山飞狐_lzh 发表于 2009-10-2 23:35:00

<p>XLine做应该是没有问题的,不知道有没更好的办法:)</p><p>有时间写个吧</p><p>国庆这两天休息太舒服了</p>

雪山飞狐_lzh 发表于 2009-10-3 09:56:00

using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.ApplicationServices;

namespace TlsCad.Jigs
{
    public class TestJig1 : DrawJig
    {
      private Point3d _position;
      private Xline _xline;
      public TestJig1(Xline xline)
      {
            _xline = xline;
      }
      protected override bool WorldDraw(Autodesk.AutoCAD.GraphicsInterface.WorldDraw wd)
      {
            _xline.BasePoint = _position;
            wd.Geometry.Draw(_xline);
            return true;
      }
      protected override SamplerStatus Sampler(JigPrompts prompts)
      {
            JigPromptPointOptions jigOpts = new JigPromptPointOptions();
            jigOpts.UserInputControls =
                UserInputControls.Accept3dCoordinates |
                UserInputControls.NoZeroResponseAccepted |
                UserInputControls.NoNegativeResponseAccepted;
            jigOpts.Message = "\n请输入终点:";
            jigOpts.Cursor = CursorType.EntitySelect;
            PromptPointResult res = prompts.AcquirePoint(jigOpts);
            if (res.Status == PromptStatus.OK)
            {
                if (_position == res.Value)
                {
                  return SamplerStatus.NoChange;
                }
                else
                {
                  _position = res.Value;
                  return SamplerStatus.OK;
                }
            }
            return SamplerStatus.Cancel;
      }
      
      public static void DoIt()
      {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            Xline xline = new Xline();
            xline.BasePoint = Point3d.Origin;
            xline.SecondPoint = Point3d.Origin + Vector3d.XAxis;
            TestJig1 jig = new TestJig1(xline);
            PromptResult var = ed.Drag(jig);
            if (var.Status != PromptStatus.OK)
            {
                return;
            }
      }
    }
}

liminnet 发表于 2009-10-3 20:05:00

页: [1] 2
查看完整版本: JIG应该怎么写这个功能,狐哥