MCPcopy
hub / github.com/CadQuery/cadquery / test_constrain

Function test_constrain

tests/test_assembly.py:1869–1950  ·  view source on GitHub ↗
(simple_assy, nested_assy)

Source from the content-addressed store, hash-verified

1867
1868
1869def test_constrain(simple_assy, nested_assy):
1870
1871 subassy1 = simple_assy.children[0]
1872 subassy2 = simple_assy.children[1]
1873
1874 b1 = simple_assy.obj
1875 b2 = subassy1.obj
1876 b3 = subassy2.obj
1877
1878 simple_assy.constrain(
1879 simple_assy.name, b1.Faces()[0], subassy1.name, b2.faces("<Z").val(), "Plane"
1880 )
1881 simple_assy.constrain(
1882 simple_assy.name, b1.Faces()[0], subassy2.name, b3.faces("<Z").val(), "Axis"
1883 )
1884 simple_assy.constrain(
1885 subassy1.name,
1886 b2.faces(">Z").val(),
1887 subassy2.name,
1888 b3.faces("<Z").val(),
1889 "Point",
1890 )
1891
1892 assert len(simple_assy.constraints) == 3
1893
1894 nested_assy.constrain("TOP@faces@>Z", "SECOND/BOTTOM@faces@<Z", "Plane")
1895 nested_assy.constrain("TOP@faces@>X", "SECOND/BOTTOM@faces@<X", "Axis")
1896
1897 assert len(nested_assy.constraints) == 2
1898
1899 constraint = nested_assy.constraints[0]
1900
1901 assert constraint.objects == ("TOP", "SECOND")
1902 assert (
1903 constraint.sublocs[0]
1904 .wrapped.Transformation()
1905 .TranslationPart()
1906 .IsEqual(gp_XYZ(), 1e-9)
1907 )
1908 assert constraint.sublocs[1].wrapped.IsEqual(
1909 nested_assy.objects["SECOND/BOTTOM"].loc.wrapped
1910 )
1911
1912 simple_assy.solve()
1913
1914 assert solve_result_check(simple_assy._solve_result)
1915
1916 assert (
1917 simple_assy.loc.wrapped.Transformation()
1918 .TranslationPart()
1919 .IsEqual(gp_XYZ(2, -5, 0), 1e-9)
1920 )
1921
1922 assert (
1923 simple_assy.children[0]
1924 .loc.wrapped.Transformation()
1925 .TranslationPart()
1926 .IsEqual(gp_XYZ(-1, 0.5, 0.5), 1e-6)

Callers

nothing calls this directly

Calls 6

solve_result_checkFunction · 0.85
constrainMethod · 0.45
FacesMethod · 0.45
valMethod · 0.45
facesMethod · 0.45
solveMethod · 0.45

Tested by

no test coverage detected