Esempio n. 1
0
        protected override AcEd.SamplerStatus Sampler(AcEd.JigPrompts jp)
        {
            AcEd.JigPromptPointOptions po = new AcEd.JigPromptPointOptions("\nВкажіть точку вставки:");

            po.UserInputControls =
                (AcEd.UserInputControls.Accept3dCoordinates |
                 AcEd.UserInputControls.NullResponseAccepted |
                 AcEd.UserInputControls.NoNegativeResponseAccepted |
                 AcEd.UserInputControls.GovernedByOrthoMode);

            AcEd.PromptPointResult ppr = jp.AcquirePoint(po);

            if (ppr.Status == AcEd.PromptStatus.Keyword)
            {
                return(AcEd.SamplerStatus.NoChange);
            }
            else if (ppr.Status == AcEd.PromptStatus.OK)
            {
                if (_location.DistanceTo(ppr.Value) < AcGe.Tolerance.Global.EqualPoint)
                {
                    return(AcEd.SamplerStatus.NoChange);
                }
                _location = ppr.Value;
                return(AcEd.SamplerStatus.OK);
            }
            return(AcEd.SamplerStatus.Cancel);
        }
Esempio n. 2
0
        private _Ge.Point3d getPoint()
        {
            _Ed.PromptPointOptions pPtOpts = new _Ed.PromptPointOptions("Select output location: ");
            _Ed.PromptPointResult  pPtRes  = _c.ed.GetPoint(pPtOpts);

            if (pPtRes.Status != _Ed.PromptStatus.OK)
            {
                throw new DMTException("[ERROR] cancelled");
            }

            return(pPtRes.Value);
        }
Esempio n. 3
0
        private G.Point getBendingInsertionPoint()
        {
            _Ed.PromptPointOptions pickedPointOptions = new _Ed.PromptPointOptions("\nSelect Bending insertion point");
            _Ed.PromptPointResult  pickedPoint        = _c.doc.Editor.GetPoint(pickedPointOptions);
            if (pickedPoint.Status != _Ed.PromptStatus.OK)
            {
                throw new DMTException("[ERROR] Bending insertion point - cancelled");
            }

            _Ge.Point3d pt     = pickedPoint.Value;
            G.Point     picked = new G.Point(pt.X, pt.Y);

            return(picked);
        }
Esempio n. 4
0
        public static void CreateBeam()
        {
            _AcGe.Point3d p0, p1, pside;

            //
            // Get some user input:
            //
            _AcEd.Editor ed = _AcAp.Application.DocumentManager.MdiActiveDocument.Editor;

            _AcEd.PromptPointOptions ppo = new _AcEd.PromptPointOptions("\nSelect start point of beam: ");
            ppo.UseBasePoint = false;

            _AcEd.PromptPointResult ppres = ed.GetPoint(ppo);
            if (ppres.Status != _AcEd.PromptStatus.OK)
            {
                return;
            }
            p0 = ppres.Value;

            ppo.UseBasePoint = true;
            ppo.BasePoint    = p0;
            ppo.Message      = "\nSelect end point of beam: ";
            ppres            = ed.GetPoint(ppo);
            if (ppres.Status != _AcEd.PromptStatus.OK)
            {
                return;
            }
            p1 = ppres.Value;

            ppo.BasePoint = p1;
            ppo.Message   = "\nSelect side of beam drawing direction (Press ESC for on centre line): ";
            ppres         = ed.GetPoint(ppo);
            if (ppres.Status == _AcEd.PromptStatus.Cancel)
            {
                pside = new Teigha.Geometry.Point3d(); // send empty point, could do better here with keywords for the propmt.
            }
            else
            {
                pside = ppres.Value;
            }

            //
            // Create the beam:
            //
            BeamData   beamData   = new BeamData(200, 120, 6000, p0, p1, pside);
            BeamDrawer beamDrawer = new BeamDrawer(beamData);

            beamDrawer.DrawBeam();
        }
Esempio n. 5
0
        //[AcTrx.CommandMethod("Land_InsertBlocksAlongLine")]
        public static void InsertBlocksAlongLine()
        {
            AcEd.PromptPointOptions ppo = new AcEd.PromptPointOptions("Вкажіть першу точку:");
            AcEd.PromptPointResult  ppr = CurrentCAD.Editor.GetPoint(ppo);
            if (ppr.Status == AcEd.PromptStatus.OK)
            {
                AcGe.Point3d startPoint = ppr.Value;
                ArraysBlocks arrBlock   = new ArraysBlocks("11", 1, 0, startPoint);

                ppo.Message      = "Вкажіть напрямок:";
                ppo.UseBasePoint = true;
                ppo.BasePoint    = startPoint;
                ppr = CurrentCAD.Editor.GetPoint(ppo);
                AcGe.Point3d dirPoint = ppr.Value;

                arrBlock.DisplayAlongLine(dirPoint, 0, 50, 100);
            }
        }
 protected override AcEd.SamplerStatus Sampler(AcEd.JigPrompts prompts)
 {
     AcEd.JigPromptPointOptions jppo = new AcEd.JigPromptPointOptions("\nВершина ('Enter' закінчити):");
     jppo.UseBasePoint      = false;
     jppo.UserInputControls = AcEd.UserInputControls.NullResponseAccepted |
                              AcEd.UserInputControls.Accept3dCoordinates |
                              AcEd.UserInputControls.GovernedByUCSDetect |
                              AcEd.UserInputControls.GovernedByOrthoMode |
                              AcEd.UserInputControls.AcceptMouseUpAsPoint;
     AcEd.PromptPointResult prResult1 = prompts.AcquirePoint(jppo);
     if (prResult1.Status == AcEd.PromptStatus.Cancel || prResult1.Status == AcEd.PromptStatus.Error)
     {
         return(AcEd.SamplerStatus.Cancel);
     }
     AcGe.Point3d tmpPt = prResult1.Value.TransformBy(UCS.Inverse());
     lastVertex = tmpPt;
     return(AcEd.SamplerStatus.OK);
 }
Esempio n. 7
0
        protected override AcEd.SamplerStatus Sampler(AcEd.JigPrompts prompts)
        {
            System.Windows.Forms.Keys mods = System.Windows.Forms.Control.ModifierKeys;
            if ((mods & System.Windows.Forms.Keys.Control) > 0)
            {
                AcEd.JigPromptAngleOptions jpao = new AcEd.JigPromptAngleOptions("\nВкажіть обертання: ")
                {
                    UseBasePoint      = true,
                    BasePoint         = blockReference.Position,
                    Cursor            = AcEd.CursorType.RubberBand,
                    UserInputControls = (AcEd.UserInputControls.Accept3dCoordinates /*|
                                                                                     * UserInputControls.UseBasePointElevation*/)
                };
                AcEd.PromptDoubleResult pdr = prompts.AcquireAngle(jpao);

                if (rotation == pdr.Value)
                {
                    return(AcEd.SamplerStatus.NoChange);
                }
                else
                {
                    rotation = pdr.Value;
                    return(AcEd.SamplerStatus.OK);
                }
            }
            else
            {
                AcEd.JigPromptPointOptions jppo =
                    new AcEd.JigPromptPointOptions("\nВкажіть точку вставки (або натисніть 'Ctrl' для  обертання): ")
                {
                    UserInputControls = (AcEd.UserInputControls.Accept3dCoordinates | AcEd.UserInputControls.NullResponseAccepted)
                };
                AcEd.PromptPointResult ppr = prompts.AcquirePoint(jppo);
                if (position.DistanceTo(ppr.Value) < AcGe.Tolerance.Global.EqualPoint)
                {
                    return(AcEd.SamplerStatus.NoChange);
                }
                else
                {
                    position = ppr.Value;
                }
                return(AcEd.SamplerStatus.OK);
            }
        }
Esempio n. 8
0
        protected override AcEd.SamplerStatus Sampler(AcEd.JigPrompts prompts)
        {
            System.Windows.Forms.Keys mods = System.Windows.Forms.Control.ModifierKeys;
            if ((mods & System.Windows.Forms.Keys.Control) > 0)
            {
                AcEd.JigPromptAngleOptions jpao =
                    new AcEd.JigPromptAngleOptions("\nSpecify the rotation: ");
                jpao.UseBasePoint      = true;
                jpao.BasePoint         = _br.Position;
                jpao.Cursor            = AcEd.CursorType.RubberBand;
                jpao.UserInputControls = (
                    AcEd.UserInputControls.Accept3dCoordinates /*|
                                                                * AcEd.UserInputControls.UseBasePointElevation*/);
                AcEd.PromptDoubleResult pdr = prompts.AcquireAngle(jpao);

                if (_rot == pdr.Value)
                {
                    return(AcEd.SamplerStatus.NoChange);
                }
                else
                {
                    _rot = pdr.Value;
                    return(AcEd.SamplerStatus.OK);
                }
            }
            else
            {
                AcEd.JigPromptPointOptions jppo =
                    new AcEd.JigPromptPointOptions("\nSpecify insertion point (or press Ctrl for rotation): ");
                jppo.UserInputControls =
                    (AcEd.UserInputControls.Accept3dCoordinates | AcEd.UserInputControls.NullResponseAccepted);
                AcEd.PromptPointResult ppr = prompts.AcquirePoint(jppo);
                if (_pos.DistanceTo(ppr.Value) < AcGe.Tolerance.Global.EqualPoint)
                {
                    return(AcEd.SamplerStatus.NoChange);
                }
                else
                {
                    _pos = ppr.Value;
                }
                return(AcEd.SamplerStatus.OK);
            }
        }
Esempio n. 9
0
        static public void ZoomWindow()
        {
            _AcAp.Document doc =

                _AcAp.Application.DocumentManager.MdiActiveDocument;

            _AcDb.Database db = doc.Database;

            _AcEd.Editor ed = doc.Editor;


            // Get the window coordinates


            _AcEd.PromptPointOptions ppo =

                new _AcEd.PromptPointOptions(

                    "\nSpecify first corner:"

                    );


            _AcEd.PromptPointResult ppr =

                ed.GetPoint(ppo);


            if (ppr.Status != _AcEd.PromptStatus.OK)
            {
                return;
            }


            _AcGe.Point3d min = ppr.Value;


            _AcEd.PromptCornerOptions pco =

                new _AcEd.PromptCornerOptions(

                    "\nSpecify opposite corner: ",

                    ppr.Value

                    );


            ppr = ed.GetCorner(pco);


            if (ppr.Status != _AcEd.PromptStatus.OK)
            {
                return;
            }


            _AcGe.Point3d max = ppr.Value;


            // Call out helper function

            // [Change this to ZoomWin2 or WoomWin3 to

            // use different zoom techniques]


            //ZoomWin(ed, min, max);
            Plan2Ext.Globs.Zoom(new _AcGe.Point3d(min.X, min.Y, 0.0), new _AcGe.Point3d(max.X, max.Y, 0), new _AcGe.Point3d(), 1.0);
        }
Esempio n. 10
0
        public static void DisplayIntersectionGridLines()
        {
            string strMsg = "Побудова перетину ліній координатної сітки > Масштаб креслення (1:1000 - 1.0, 1:500 - 0.5 ...) :";

            AcEd.PromptDoubleOptions pdo =
                new AcEd.PromptDoubleOptions(strMsg)
            {
                AllowNegative = false,
                AllowZero     = false,
                AllowNone     = false
            };


            AcEd.PromptDoubleResult pdr = CurrentCAD.Editor.GetDouble(pdo);

            if (pdr.Status == AcEd.PromptStatus.OK)
            {
                double scaleDrawing = pdr.Value;

                AcEd.PromptPointResult ppr = CurrentCAD.Editor.GetPoint("Побудова перетину ліній координатної сітки > Вкажіть першу точку:");

                if (ppr.Status == AcEd.PromptStatus.OK)
                {
                    AcGe.Point3d basePoint = ppr.Value;

                    AcEd.PromptCornerOptions pco = new AcEd.PromptCornerOptions("Побудова перетину ліній координатної сітки > Вкажіть другу точку:", basePoint);

                    ppr = CurrentCAD.Editor.GetCorner(pco);
                    if (ppr.Status == AcEd.PromptStatus.OK)
                    {
                        AcGe.Point3d сornerPoint = ppr.Value;

                        double stepGrid = scaleDrawing * 100;

                        double newX = (double)((int)(basePoint.X / stepGrid)) * stepGrid;
                        double newY = (double)((int)(basePoint.Y / stepGrid)) * stepGrid;

                        if ((сornerPoint.X - basePoint.X) > 0)
                        {
                            newX += stepGrid;
                        }
                        if ((сornerPoint.Y - basePoint.Y) > 0)
                        {
                            newY += stepGrid;
                        }

                        AcGe.Point3d startPoint = new AcGe.Point3d(newX, newY, 0);

                        int numCol = (int)((сornerPoint.Y - startPoint.Y) / stepGrid);
                        int numRow = (int)((сornerPoint.X - startPoint.X) / stepGrid);

                        double stepCol = stepGrid;
                        double stepRow = stepGrid;

                        if (numCol < 0)
                        {
                            stepCol *= -1;
                        }
                        if (numRow < 0)
                        {
                            stepRow *= -1;
                        }

                        ArraysBlocks arrBlock = new ArraysBlocks("11", scaleDrawing, 0, startPoint);
                        arrBlock.DisplayArrays(Math.Abs(numCol) + 1, Math.Abs(numRow) + 1, stepCol, stepRow);
                    }
                }
            }
        }