MCPcopy Index your code
hub / github.com/CadQuery/cadquery / test_constraint_solver

Function test_constraint_solver

tests/test_sketch.py:576–752  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

574
575
576def test_constraint_solver():
577
578 s1 = (
579 Sketch()
580 .segment((0.0, 0), (0.0, 2.0), "segment1")
581 .segment((0.5, 2.5), (1.0, 1), "segment2")
582 .close("segment3")
583 )
584 s1.constrain("segment1", "Fixed", None)
585 s1.constrain("segment1", "segment2", "Coincident", None)
586 s1.constrain("segment2", "segment3", "Coincident", None)
587 s1.constrain("segment3", "segment1", "Coincident", None)
588 s1.constrain("segment3", "segment1", "Angle", 90)
589 s1.constrain("segment2", "segment3", "Angle", 180 - 45)
590
591 s1.solve()
592
593 assert s1._solve_status["status"] == 4
594
595 s1.assemble()
596
597 assert s1._faces.isValid()
598
599 s2 = (
600 Sketch()
601 .arc((0.0, 0.0), (-0.5, 0.5), (0.0, 1.0), "arc1")
602 .arc((0.0, 1.0), (0.5, 1.5), (1.0, 1.0), "arc2")
603 .segment((1.0, 0.0), "segment1")
604 .close("segment2")
605 )
606
607 s2.constrain("segment2", "Fixed", None)
608 s2.constrain("segment1", "segment2", "Coincident", None)
609 s2.constrain("arc2", "segment1", "Coincident", None)
610 s2.constrain("segment2", "arc1", "Coincident", None)
611 s2.constrain("arc1", "arc2", "Coincident", None)
612 s2.constrain("segment1", "segment2", "Angle", 90)
613 s2.constrain("segment2", "arc1", "Angle", 90)
614 s2.constrain("arc1", "arc2", "Angle", -90)
615 s2.constrain("arc2", "segment1", "Angle", 90)
616 s2.constrain("segment1", "Length", 0.5)
617 s2.constrain("arc1", "Length", 1.0)
618
619 s2.solve()
620
621 assert s2._solve_status["status"] == 4
622
623 s2.assemble()
624
625 assert s2._faces.isValid()
626
627 assert s2._tags["segment1"][0].Length() == approx(0.5)
628 assert s2._tags["arc1"][0].Length() == approx(1.0)
629
630 s3 = (
631 Sketch()
632 .arc((0.0, 0.0), (-0.5, 0.5), (0.0, 1.0), "arc1")
633 .segment((1.0, 0.0), "segment1")

Callers

nothing calls this directly

Calls 15

SketchClass · 0.90
VectorClass · 0.85
segmentMethod · 0.80
assembleMethod · 0.80
isValidMethod · 0.80
arcMethod · 0.80
getAngleMethod · 0.80
endPointMethod · 0.80
startPointMethod · 0.80
closeMethod · 0.45
constrainMethod · 0.45
solveMethod · 0.45

Tested by

no test coverage detected