JIG应该怎么写这个功能,狐哥
基点Copy?这个和其他的Jig没有什么不同,你先看下例子吧
没做过这样的:)不会是直接拖动XLine的吧?
KO入行时间太短,AutoCAD十字标的长短是可以设置的。 不好意思,图没看仔细。 XLine做应该是没有问题的,不知道有没更好的办法:)
有时间写个吧
国庆这两天休息太舒服了
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;
}
}
}
}
页:
[1]