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); }
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); }
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); }
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(); }
//[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); }
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); } }
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); } }
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); }
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); } } } }