public void SplitPoint() { var ctx = Context.Current; var sketch = TestSketchGenerator.CreateSketch(TestSketchGenerator.SketchType.Rectangle); var body = TestGeomGenerator.CreateBody(sketch); ctx.ViewportController.ZoomFitAll(); var tool = new SketchEditorTool(sketch); ctx.WorkspaceController.StartTool(tool); Assert.Multiple(() => { // Select Segment ctx.ClickAt(140, 90); // Start split tool var splitTool = new SplitElementSketchTool(); tool.StartTool(splitTool); ctx.MoveTo(88, 88); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SplitPoint01"), 1.0); ctx.ClickAt(88, 88); // Cleanup tool.StopTool(); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SplitPoint02"), 1.0); // Move ctx.ClickAt(88, 88); ctx.MoveTo(95, 80); ctx.ViewportController.MouseDown(); ctx.MoveTo(150, 40); ctx.ViewportController.MouseUp(false); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SplitPoint03"), 1.0); }); tool.Stop(); }
public void SelectSections() { var ctx = Context.Current; var body1 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; var body2 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; body2.Position = body2.Position.Translated(new Vec(0, 0, 10.0)); body2.Rotation = new Quaternion(20.0.ToRad(), 20.0.ToRad(), 0.0); var body3 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; body3.Position = body3.Position.Translated(new Vec(0, 5.0, 20.0)); body3.Rotation = new Quaternion(40.0.ToRad(), 40.0.ToRad(), 0.0); Assert.Multiple(() => { ctx.ViewportController.ZoomFitAll(); // Select First ctx.SelectAt(176, 405); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectSections00")); // Select Second ctx.WorkspaceController.StartTool(new CreateLoftTool()); ctx.SelectAt(161, 300); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectSections01")); // Select Third ctx.SelectAt(349, 164); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectSections02")); // Finish ctx.WorkspaceController.CancelTool(ctx.WorkspaceController.CurrentTool, false); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectSections03")); Assert.IsNull(ctx.WorkspaceController.CurrentTool); }); }
public void CappingModeNoneWithCircle() { // For OCCT_30055, the join type must be Intersect. var body1 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; var body2 = TestSketchGenerator.CreateCircleWithArcs(3.0, 4).Body; body2.Position = body2.Position.Translated(new Vec(0, 0, 10.0)); body2.Rotation = new Quaternion(20.0.ToRad(), 20.0.ToRad(), 0.0); var body3 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; body3.Position = body3.Position.Translated(new Vec(0, 5.0, 20.0)); body3.Rotation = new Quaternion(40.0.ToRad(), 40.0.ToRad(), 0.0); var loft = Loft.Create(body1, new[] { new BodyShapeOperand(body2), new BodyShapeOperand(body3) }); loft.StartCapping = Loft.CappingMode.None; loft.EndCapping = Loft.CappingMode.None; Assert.IsTrue(loft.Make(Shape.MakeFlags.None)); AssertHelper.IsSameModel(loft, Path.Combine(_BasePath, "CappingModeNoneWithCircle")); }
public void SelectionFilter() { var ctx = Context.Current; var body1 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; var body2 = TestSketchGenerator.CreateRectangle(5.0, 5.0).Body; body2.Position = body2.Position.Translated(new Vec(0, 0, 10.0)); body2.Rotation = new Quaternion(20.0.ToRad(), 20.0.ToRad(), 0.0); var body3 = TestGeomGenerator.CreateBox().Body; body3.Position = body3.Position.Translated(new Vec(0, 20, 0.0)); Assert.Multiple(() => { ctx.ViewportController.ZoomFitAll(); // Select First ctx.SelectAt(114, 261); ctx.WorkspaceController.StartTool(new CreateLoftTool()); // Move to sketch, it should highlight ctx.MoveTo(216, 160); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectionFilter00")); // Move to solid, it should not highlight ctx.MoveTo(350, 300); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectionFilter01")); // Move to self, it should not highlight ctx.MoveTo(114, 261); AssertHelper.IsSameViewport(Path.Combine(_BasePath, "SelectionFilter01")); }); }
public void CutToAndPasteFromClipboard() { var ctx = Context.Current; var clipboard = TestClipboard.Init(); var sketch = TestSketchGenerator.CreateSketch(TestSketchGenerator.SketchType.Rectangle); var body = TestGeomGenerator.CreateBody(sketch); ctx.ViewportController.ZoomFitAll(); var tool = new SketchEditorTool(sketch); ctx.WorkspaceController.StartTool(tool); Assert.IsFalse(ctx.WorkspaceController.CanCopyToClipboard()); Assert.IsFalse(ctx.WorkspaceController.CanDelete()); // Select ctx.SelectAt(254, 88); ctx.SelectAt(411, 236, true); ctx.SelectAt(387, 115, true); Assume.That(tool.SelectedSegments.Count, Is.EqualTo(2)); // Do it Assert.IsTrue(ctx.WorkspaceController.CanCopyToClipboard()); Assert.IsTrue(ctx.WorkspaceController.CanDelete()); ctx.WorkspaceController.CopyToClipboard(); ctx.WorkspaceController.Delete(); Assert.That(clipboard.ContainsData("Macad.SketchContent.1")); ctx.WorkspaceController.PasteFromClipboard(); Assert.AreEqual(6, sketch.Points.Count); Assert.AreEqual(4, sketch.Segments.Count); Assert.AreEqual(2, sketch.Constraints.Count); Assert.AreEqual(3, tool.SelectedPoints.Count); Assert.AreEqual(2, tool.SelectedSegments.Count); }
public void ExtrudeFromNotSelectable() { var ctx = Context.Current; var sketch = TestSketchGenerator.CreateSketch(); var body = TestGeomGenerator.CreateBody(sketch, new Pnt(10, 10, 0)); ctx.WorkspaceController.Selection.SelectEntity(body); ctx.ViewportController.ZoomFitAll(); ctx.WorkspaceController.Invalidate(false, true); // Create Extrude from sketch var tool = new CreateExtrudeTool(body); Assert.That(ctx.WorkspaceController.StartTool(tool)); Assert.That(ctx.WorkspaceController.CurrentTool, Is.Null); ctx.WorkspaceController.Invalidate(false, true); // Make sure that the whole shape is selectable ctx.WorkspaceController.Selection.SelectEntity(null); ctx.WorkspaceController.Invalidate(false, true); ctx.SelectAt(250, 250); Assert.AreEqual(1, ctx.WorkspaceController.Selection.SelectedEntities.Count); }
public void OpenWiresRect() { // For OCCT_30054, the join type must be Intersect. // Remove first segment to create open wires var sketch1 = TestSketchGenerator.CreateRectangle(5.0, 5.0); sketch1.DeleteSegment(sketch1.Segments[0]); var body1 = sketch1.Body; var sketch2 = TestSketchGenerator.CreateRectangle(4.0, 4.0); sketch2.DeleteSegment(sketch2.Segments[0]); var body2 = sketch2.Body; body2.Position = body2.Position.Translated(new Vec(0, 0, 10.0)); body2.Rotation = new Quaternion(20.0.ToRad(), 20.0.ToRad(), 0.0); var sketch3 = TestSketchGenerator.CreateRectangle(5.0, 5.0); sketch3.DeleteSegment(sketch3.Segments[0]); var body3 = sketch3.Body; body3.Position = body3.Position.Translated(new Vec(0, 5.0, 20.0)); body3.Rotation = new Quaternion(40.0.ToRad(), 40.0.ToRad(), 0.0); var loft = Loft.Create(body1, new[] { new BodyShapeOperand(body2), new BodyShapeOperand(body3) }); loft.ThickenDirection = Loft.Direction.Outwards; Assert.IsTrue(loft.Make(Shape.MakeFlags.None)); AssertHelper.IsSameModel(loft, Path.Combine(_BasePath, "OpenWiresRect_Out")); loft.ThickenDirection = Loft.Direction.Inwards; Assert.IsTrue(loft.Make(Shape.MakeFlags.None)); AssertHelper.IsSameModel(loft, Path.Combine(_BasePath, "OpenWiresRect_In")); }