public void Angle() { var sketch = Sketch.Create(); var p1 = sketch.AddPoint(new Pnt2d(10, 10)); var p2 = sketch.AddPoint(new Pnt2d(0, -5)); var line1 = new SketchSegmentLine(p1, p2); var s1 = sketch.AddSegment(line1); var p3 = sketch.AddPoint(new Pnt2d(5, 5)); var line2 = new SketchSegmentLine(p2, p3); var s2 = sketch.AddSegment(line2); var c1 = sketch.AddConstraint(new SketchConstraintAngle(s1, s2, 90.0)); Assert.IsTrue(sketch.SolveConstraints(true)); Assert.AreEqual(90, line1.GetLine(sketch.Points).Angle(line2.GetLine(sketch.Points)).ToDeg().Abs(), MaxAngleDelta); }
public void Parallel() { var sketch = Sketch.Create(); var p1 = sketch.AddPoint(new Pnt2d(-10, -5)); var p2 = sketch.AddPoint(new Pnt2d(0, 10)); var line1 = new SketchSegmentLine(p1, p2); var s1 = sketch.AddSegment(line1); var p3 = sketch.AddPoint(new Pnt2d(-5, -5)); var p4 = sketch.AddPoint(new Pnt2d(5, 5)); var line2 = new SketchSegmentLine(p3, p4); var s2 = sketch.AddSegment(line2); var c1 = sketch.AddConstraint(new SketchConstraintParallel(s1, s2)); Assert.IsTrue(sketch.SolveConstraints(true)); Assert.AreEqual(0, line1.GetLine(sketch.Points).Angle(line2.GetLine(sketch.Points)).ToDeg().Abs(), MaxLengthDelta); }
public void TangentLineToCircle() { var sketch = Sketch.Create(); var p1 = sketch.AddPoint(new Pnt2d(-20, 0)); var p2 = sketch.AddPoint(new Pnt2d(20, 30)); var line = new SketchSegmentLine(p1, p2); var s1 = sketch.AddSegment(line); var cp1 = sketch.AddPoint(new Pnt2d(0, 0)); var cp2 = sketch.AddPoint(new Pnt2d(0, 10)); var circ = new SketchSegmentCircle(cp1, cp2); var s2 = sketch.AddSegment(circ); var c1 = sketch.AddConstraint(new SketchConstraintTangent(s1, s2)); Assert.IsTrue(sketch.SolveConstraints(true)); var intersec = new IntAna2d_AnaIntersection(line.GetLine(sketch.Points), circ.GetCircle(sketch.Points)); Assert.IsTrue(intersec.IsDone()); if (intersec.NbPoints() > 1) { Assert.AreEqual(0.0, intersec.Point(1).Value().Distance(intersec.Point(2).Value()), MaxLengthDelta); } }
public void PointOnLineMidpoint() { var sketch = Sketch.Create(); var p1 = sketch.AddPoint(new Pnt2d(3, -10)); var p2 = sketch.AddPoint(new Pnt2d(3, 10)); var line = new SketchSegmentLine(p1, p2); var s1 = sketch.AddSegment(line); var p3 = sketch.AddPoint(new Pnt2d(-5, -5)); var p4 = sketch.AddPoint(new Pnt2d(20, 20)); var s2 = sketch.AddSegment(new SketchSegmentLine(p3, p4)); var c1 = sketch.AddConstraint(new SketchConstraintPointOnMidpoint(p3, s1)); Assert.IsTrue(sketch.SolveConstraints(true)); var pointOnCurve = new Geom2dAPI_ProjectPointOnCurve(sketch.Points[p3], line.MakeCurve(sketch.Points)); Assert.AreEqual(1, pointOnCurve.NbPoints()); Assert.AreEqual(0.0, pointOnCurve.Distance(1), MaxLengthDelta); sketch.Points[p3] = new Pnt2d(18, 18); Assert.IsTrue(sketch.SolveConstraints(true)); pointOnCurve = new Geom2dAPI_ProjectPointOnCurve(sketch.Points[p3], new Geom2d_Line(line.GetLine(sketch.Points))); Assert.AreEqual(1, pointOnCurve.NbPoints()); Assert.AreEqual(0.0, pointOnCurve.Distance(1), MaxLengthDelta); Assert.AreEqual(pointOnCurve.Point(1).Distance(sketch.Points[p1]), pointOnCurve.Point(1).Distance(sketch.Points[p2]), MaxLengthDelta); }