Beispiel #1
0
 /// <summary>简便快捷执行Jig拖动</summary>
 /// <param name="options">选项</param>
 /// <param name="callFun">回调函数</param>
 public static PromptResult StartDrag(JigPromptOptions options, Action <Result> callFun)
 {
     if (options is JigPromptPointOptions)
     {
         _PointOptions = options as JigPromptPointOptions;
         _acquireMod   = GetPoint;
     }
     else if (options is JigPromptDistanceOptions)
     {
         _DistanceOptions = options as JigPromptDistanceOptions;
         _acquireMod      = GetDistance;
     }
     else if (options is JigPromptAngleOptions)
     {
         _AngleOptions = options as JigPromptAngleOptions;
         _acquireMod   = GetAngle;
     }
     else if (options is JigPromptStringOptions)
     {
         _StringOptions = options as JigPromptStringOptions;
         _acquireMod    = GetString;
     }
     _callBack = callFun;
     Autodesk.AutoCAD.ApplicationServices.Application.
     DocumentManager.MdiActiveDocument.Editor.Drag(new JigDrag());
     _callBack(new Result(_rst, null));
     return(_rst);
 }
Beispiel #2
0
        Stream(ArrayList data, JigPromptOptions jigPromptOpts)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(JigPromptOptions)));

            data.Add(new Snoop.Data.String("Cursor", jigPromptOpts.Cursor.ToString()));
            data.Add(new Snoop.Data.String("User input controls", jigPromptOpts.UserInputControls.ToString()));

            JigPromptGeometryOptions jigPromptGeoOpts = jigPromptOpts as JigPromptGeometryOptions;

            if (jigPromptGeoOpts != null)
            {
                Stream(data, jigPromptGeoOpts);
                return;
            }

            JigPromptStringOptions jigPromptStringOpts = jigPromptOpts as JigPromptStringOptions;

            if (jigPromptStringOpts != null)
            {
                Stream(data, jigPromptStringOpts);
                return;
            }
        }
Beispiel #3
0
        Stream(ArrayList data, JigPromptStringOptions jigPromptStringOpts)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(JigPromptStringOptions)));

            data.Add(new Snoop.Data.String("Default value", jigPromptStringOpts.DefaultValue));
        }
Beispiel #4
0
        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
            switch (mCurJigFactorIndex)
            {
            case 1:
                var prOptions1 = new JigPromptPointOptions("\nArrow Location:");
                // Set properties such as UseBasePoint and BasePoint of the prompt options object if necessary here.
                prOptions1.UserInputControls = UserInputControls.Accept3dCoordinates |
                                               UserInputControls.GovernedByOrthoMode |
                                               UserInputControls.GovernedByUCSDetect |
                                               UserInputControls.UseBasePointElevation;
                var prResult1 = prompts.AcquirePoint(prOptions1);
                if (prResult1.Status == PromptStatus.Cancel && prResult1.Status == PromptStatus.Error)
                {
                    return(SamplerStatus.Cancel);
                }

                if (prResult1.Value.Equals(mArrowLocation))     //Use better comparison method if necessary.
                {
                    return(SamplerStatus.NoChange);
                }
                else
                {
                    mArrowLocation = prResult1.Value;
                    return(SamplerStatus.OK);
                }

            case 2:

                var xDiff = mTextLocation.X - mArrowLocation.X;
                var yDiff = mTextLocation.Y - mArrowLocation.Y;
                var angle = Math.Atan2(yDiff, xDiff) * 180.0 / Math.PI;

                if (angle > 45 && angle < 135 || angle < -45 && angle > -135)
                {
                    Entity.TextAttachmentDirection = TextAttachmentDirection.AttachmentVertical;
                }
                else
                {
                    Entity.TextAttachmentDirection = TextAttachmentDirection.AttachmentHorizontal;
                }

                Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\n" + angle);
                var prOptions2 = new JigPromptPointOptions("\nLanding Location:");
                // Set properties such as UseBasePoint and BasePoint of the prompt options object if necessary here.
                prOptions2.UseBasePoint      = true;
                prOptions2.BasePoint         = mArrowLocation;
                prOptions2.UserInputControls = UserInputControls.Accept3dCoordinates |
                                               UserInputControls.GovernedByOrthoMode |
                                               UserInputControls.GovernedByUCSDetect |
                                               UserInputControls.UseBasePointElevation;
                var prResult2 = prompts.AcquirePoint(prOptions2);
                if (prResult2.Status == PromptStatus.Cancel && prResult2.Status == PromptStatus.Error)
                {
                    return(SamplerStatus.Cancel);
                }

                if (prResult2.Value.Equals(mTextLocation))     //Use better comparison method if necessary.
                {
                    return(SamplerStatus.NoChange);
                }
                else
                {
                    mTextLocation = prResult2.Value;
                    return(SamplerStatus.OK);
                }

            case 3:
                var prOptions3 = new JigPromptStringOptions("\nText Content:");
                // Set properties such as UseBasePoint and BasePoint of the prompt options object if necessary here.
                prOptions3.UserInputControls = UserInputControls.AcceptOtherInputString;
                var prResult3 = prompts.AcquireString(prOptions3);
                if (prResult3.Status == PromptStatus.Cancel && prResult3.Status == PromptStatus.Error)
                {
                    return(SamplerStatus.Cancel);
                }

                if (prResult3.StringResult.Equals(mMText))     //Use better comparison method if necessary.
                {
                    return(SamplerStatus.NoChange);
                }
                else
                {
                    mMText = prResult3.StringResult;
                    return(SamplerStatus.OK);
                }
            }

            return(SamplerStatus.OK);
        }