Cell[CellGroupData[{Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"minimalNumberOfCogs", "[", RowBox[{"a_", ",", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"nombreDentsLimite", "[", RowBox[{"a", ",", "deport"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"animationMachiningGear", "[", RowBox[{ RowBox[{"z_:", "19"}], ",", RowBox[{"a_:", "20", "\[Degree]"}], ",", RowBox[{"m_:", "1"}], ",", RowBox[{"deport_:", "0"}], ",", RowBox[{"nbImages_:", "8"}]}], "]"}], " ", ":=", " ", "\n", "\t", RowBox[{"animationTailleDent", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport", ",", "nbImages"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"pictureMachiningGear", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", "deport_", ",", RowBox[{"nbImages_:", "30"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"dessinTailleDent", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport", ",", "nbImages"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"pictureMachiningCog", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", "deport_", ",", RowBox[{"nbImages_:", "10"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"dessinTailleDentDetail", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport", ",", "nbImages"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"pictureInvoluteFamily", "[", RowBox[{ RowBox[{"z_:", "17"}], ",", " ", RowBox[{"a_:", "20", "\[Degree]"}], ",", " ", RowBox[{"m_:", "1"}], ",", " ", RowBox[{"deport_:", "0"}], ",", " ", RowBox[{"n_:", "10"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"dessinFamilleDeveloppantes", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport", ",", " ", "n"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"shapeCog", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"profilDent", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"shapeFullCog", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", "\n", " \t", RowBox[{"profilDentComplete", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], " ", ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"shapeCogCenter", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", "\n", " \t", RowBox[{"profilDentCentree", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"shapeGear", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " \t", RowBox[{"profilRoueComplete", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], " ", ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"animationRackGear", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}], ",", RowBox[{"n_:", "3"}]}], "]"}], " ", ":=", "\n", " \t", RowBox[{"animeEngrenement", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport", ",", " ", "n"}], "]"}]}], ";"}]}], "Input", CellGroupingRules->{"GroupTogetherGrouping", 10000.}, InitializationCell->True, CellChangeTimes->{ 3.35696210375764*^9, {3.3694877395254*^9, 3.36948775038519*^9}, { 3.4389558049352503`*^9, 3.4389558049665003`*^9}, 3.76106342064332*^9}, CellID->300774880], Cell[BoxData[ RowBox[{ RowBox[{"(*", RowBox[{ RowBox[{"**", "**"}], "*", " ", "P", " ", "A", " ", "R", " ", "A", " ", "M", " ", "E", " ", "T", " ", "R", " ", "E", " ", "S", " ", "G", " ", "E", " ", "N", " ", "E", " ", "R", " ", "A", " ", "U", " ", "X"}], " ", "*********************************)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"epaisseurTraitCremailleres", " \t", "=", " ", "0.35"}], " ", ";"}], "\n", RowBox[{ RowBox[{"epaisseurTraitGrosseCremaillere", " ", "=", " ", "0.9"}], " ", ";"}], "\n", RowBox[{ RowBox[{"epaisseurTraitDeveloppantes", " \t", "=", " ", "0.5"}], " ", ";"}], "\n", RowBox[{ RowBox[{"epaisseurTraitConstruction", " \t", "=", " ", "0.35"}], " ", ";"}], "\n", RowBox[{ RowBox[{"epaisseurTraitProfil", " \t\t", "=", " ", "0.7"}], " ", ";"}], "\n", "\n", "\n", RowBox[{"(*", RowBox[{ RowBox[{"**", "**"}], "*", " ", "FO", " ", "N", " ", "C", " ", "T", " ", "I", " ", "O", " ", "N", " ", "S", " ", "G", " ", "E", " ", "N", " ", "E", " ", "R", " ", "A", " ", "L", " ", "E", " ", "S"}], " ", "*********************************)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"norme", "[", "v_", "]"}], ":=", " ", RowBox[{"Sqrt", "[", RowBox[{"Plus", " ", "@@", " ", RowBox[{"(", RowBox[{"v", "^", "2"}], ")"}]}], "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"matriceR", "[", "a_", "]"}], ":=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "a", "]"}], ",", " ", RowBox[{"-", RowBox[{"Sin", "[", "a", "]"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"Sin", "[", "a", "]"}], ",", RowBox[{"Cos", "[", "a", "]"}]}], "}"}]}], "}"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"decalage", "[", RowBox[{"traj_", ",", " ", "vecteur_"}], "]"}], ":=", " ", RowBox[{ RowBox[{ RowBox[{"Plus", "[", RowBox[{"vecteur", ",", "#"}], "]"}], "&"}], " ", "/@", " ", "traj"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"faireListeXY", "[", "bof_", "]"}], " ", ":=", " ", RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "[", "bof", "]"}], ",", "2"}], "]"}]}], ";"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{"Renvoie", " ", "le", " ", "point", " ", RowBox[{"d", "'"}], "intersection", " ", RowBox[{"(", RowBox[{"NON", " ", "INTERPOLE"}], ")"}], " ", "et", " ", "False", " ", "sinon"}], " ", "*)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"interSegments", "[", RowBox[{ RowBox[{"{", RowBox[{"ax_", ",", " ", "ay_"}], "}"}], ",", " ", RowBox[{"{", RowBox[{"bx_", ",", " ", "by_"}], "}"}], ",", " ", RowBox[{"{", RowBox[{"cx_", ",", " ", "cy_"}], "}"}], ",", " ", RowBox[{"{", RowBox[{"dx_", ",", " ", "dy_"}], "}"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"lambda", ",", " ", "mu"}], "}"}], ",", " ", "\n", "\t", RowBox[{ RowBox[{"lambda", " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "cy"}], "*", "dx"}], "+", RowBox[{"ay", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "cx"}], "+", "dx"}], ")"}]}], "+", RowBox[{"ax", "*", RowBox[{"(", RowBox[{"cy", "-", "dy"}], ")"}]}], "+", RowBox[{"cx", "*", "dy"}]}], ")"}], "/", RowBox[{"(", RowBox[{ RowBox[{"by", "*", RowBox[{"(", RowBox[{"cx", "-", "dx"}], ")"}]}], " ", "+", " ", RowBox[{"ay", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "cx"}], "+", "dx"}], ")"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"ax", "-", "bx"}], ")"}], "*", RowBox[{"(", RowBox[{"cy", "-", "dy"}], ")"}]}]}], ")"}]}]}], ";", " ", "\n", " \t", RowBox[{"mu", " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"ay", "*", RowBox[{"(", RowBox[{"bx", " ", "-", " ", "cx"}], ")"}]}], " ", "+", " ", RowBox[{"by", "*", "cx"}], " ", "-", " ", RowBox[{"bx", "*", "cy"}], " ", "+", " ", RowBox[{"ax", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "by"}], " ", "+", " ", "cy"}], ")"}]}]}], ")"}], "/", " ", RowBox[{"(", RowBox[{ RowBox[{"by", "*", RowBox[{"(", RowBox[{"cx", " ", "-", " ", "dx"}], ")"}]}], " ", "+", " ", RowBox[{"ay", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "cx"}], " ", "+", " ", "dx"}], ")"}]}], " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"ax", " ", "-", " ", "bx"}], ")"}], "*", RowBox[{"(", RowBox[{"cy", " ", "-", " ", "dy"}], ")"}]}]}], ")"}]}]}], ";", " ", "\n", " \t", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ "0", " ", "<=", " ", "lambda", " ", "<=", " ", "1"}], " ", "&&", " ", RowBox[{"0", " ", "<=", " ", "mu", " ", "<=", " ", "1"}]}], ",", " ", RowBox[{ RowBox[{"{", RowBox[{"ax", ",", " ", "ay"}], "}"}], " ", "+", " ", RowBox[{"lambda", " ", "*", " ", RowBox[{"{", RowBox[{ RowBox[{"bx", "-", "ax"}], ",", " ", RowBox[{"by", "-", "ay"}]}], "}"}]}]}], ",", " ", "False"}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{ RowBox[{ "intersection", " ", "entre", " ", "la", " ", "fonction", " ", "y"}], "=", RowBox[{ RowBox[{"f", RowBox[{"(", "x", ")"}], " ", "et", " ", "la", " ", "droite", " ", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "=", RowBox[{"a", " ", "+", " ", RowBox[{"m", " ", "d"}]}]}]}], " ", "*)"}], "\n", RowBox[{ RowBox[{ RowBox[{"interDroiteFonction", "[", RowBox[{"f_", ",", "x_", ",", "a_", ",", "d_"}], "]"}], ":=", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"eq", ",", "sol", ",", "l"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{"eq", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"f", "==", RowBox[{ RowBox[{"a", "[", RowBox[{"[", "2", "]"}], "]"}], "+", RowBox[{"l", " ", RowBox[{"d", "[", RowBox[{"[", "2", "]"}], "]"}]}]}]}], ",", RowBox[{ RowBox[{ RowBox[{"a", "[", RowBox[{"[", "1", "]"}], "]"}], "+", RowBox[{"l", " ", RowBox[{"d", "[", RowBox[{"[", "1", "]"}], "]"}]}]}], "==", "x"}]}], "}"}]}], ";", "\n", " \t", RowBox[{"sol", " ", "=", " ", RowBox[{"Quiet", "[", RowBox[{"FindRoot", "[", RowBox[{"eq", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "0.01"}], "}"}], ",", RowBox[{"{", RowBox[{"l", ",", RowBox[{"-", ".02"}]}], "}"}]}], "}"}]}], "]"}], "]"}]}], ";", "\n", "\t", RowBox[{"Return", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", RowBox[{"a", "+", " ", RowBox[{"l", " ", "d"}]}]}], "}"}], " ", "/.", " ", "sol"}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", "\n", RowBox[{"(*", RowBox[{ RowBox[{"**", "**"}], "*", " ", "FO", " ", "N", " ", "C", " ", "T", " ", "I", " ", "O", " ", "N", " ", "S", " ", "G", " ", "E", " ", "N", " ", "E", " ", "R", " ", "A", " ", "L", " ", "E", " ", "S"}], " ", "*********************************)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"nombreDentsLimite", "[", RowBox[{"a_", ",", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", RowBox[{"Ceiling", "[", RowBox[{"2.", "/", RowBox[{ RowBox[{"Sin", "[", "a", "]"}], "^", "2"}]}], "]"}]}], ";"}], "\n", RowBox[{"(*", " ", RowBox[{ RowBox[{"deportExtremal", "[", RowBox[{"z_", ",", "a_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"1", "/", RowBox[{ RowBox[{"Sin", "[", "a", "]"}], "^", "2"}]}], " ", "-", " ", RowBox[{"z", "/", "2"}]}]}], " ", "*)"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{ "Dimensions", " ", "g\[CapitalEGrave]n\[CapitalEGrave]rales"}], " ", "*)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"dimGenerales", "[", RowBox[{ RowBox[{"z_:", "19"}], ",", " ", RowBox[{"a_:", " ", "20", " ", "Degree"}], ",", " ", RowBox[{"m_:", "1"}]}], "]"}], ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{"p", " ", "=", " ", RowBox[{"Pi", " ", "m"}]}], ";", "\n", "\t", RowBox[{"dp", " ", "=", " ", RowBox[{"m", " ", "z"}]}], ";", "\t\t", RowBox[{"(*", " ", RowBox[{"diam\[CapitalEDoubleDot]tre", " ", "primitif"}], " ", "*)"}], "\n", "\t", RowBox[{"db", " ", "=", " ", RowBox[{"m", " ", "z", " ", RowBox[{"Cos", "[", "a", "]"}]}]}], ";", " \t", RowBox[{"(*", " ", RowBox[{ "diam\[CapitalEDoubleDot]tre", " ", "de", " ", "base"}], " ", "*)"}], "\n", "\t", RowBox[{"df", " ", "=", " ", RowBox[{"dp", " ", "-", " ", RowBox[{"2.5", " ", "m"}]}]}], ";", " \t", RowBox[{"(*", " ", RowBox[{ "diam\[CapitalEDoubleDot]tre", " ", "de", " ", "pied"}], " ", "*)"}], "\n", "\t", RowBox[{"dk", " ", "=", " ", RowBox[{"dp", " ", "+", " ", RowBox[{"2", " ", "m"}]}]}], ";", "\t\t", RowBox[{"(*", " ", RowBox[{ "diam\[CapitalEDoubleDot]tre", " ", "de", " ", "t\[CapitalIAcute]te"}], " ", "*)"}], "\n", "\t", RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z_", ",", "a_", ",", RowBox[{"m_:", "1"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], " ", "=", " ", RowBox[{"dimGenerales", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m"}], "]"}]}], ";", "\n", " \t", "\n", " \t ", RowBox[{"Graphics", "[", "\n", " \t\t", RowBox[{"{", RowBox[{ RowBox[{"AbsoluteThickness", "[", RowBox[{ RowBox[{ "epaisseurTraitConstruction", " ", "/", " ", "25.4"}], " ", "72"}], " ", "]"}], ",", "\n", " \t\t ", RowBox[{"Opacity", "[", ".5", "]"}], ",", "Black", ",", " ", "Dashed", ",", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"dp", "/", "2"}]}], "]"}], ",", " ", "\n", " \t\t ", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"db", "/", "2"}]}], "]"}], ",", " ", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"dk", "/", "2"}]}], "]"}], ",", " ", RowBox[{"Circle", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"df", "/", "2"}]}], "]"}], ",", " ", "\n", " \t\t ", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{ RowBox[{"-", "1.5"}], " ", RowBox[{"db", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", " ", RowBox[{"1.5", " ", RowBox[{"db", "/", "2"}]}]}], "}"}]}], "}"}], "]"}], ",", "\n", " \t\t ", RowBox[{"Line", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "db"}], "/", "2"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"db", "/", "2"}], ",", "0"}], "}"}]}], "}"}], "1.5"}], "]"}], ",", "\n", " \t\t ", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"dp", "/", "2"}]}], "}"}], "-", RowBox[{ RowBox[{"dp", "/", "2"}], " ", RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "a", "]"}], ",", RowBox[{"-", RowBox[{"Sin", "[", "a", "]"}]}]}], "}"}]}]}], ",", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"dp", "/", "2"}]}], "}"}], "+", RowBox[{ RowBox[{"dp", "/", "2"}], " ", RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "a", "]"}], ",", RowBox[{"-", RowBox[{"Sin", "[", "a", "]"}]}]}], "}"}]}]}]}], "}"}], "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "dp"}], "/", "2"}], ",", RowBox[{"dp", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"dp", "/", "2"}], ",", RowBox[{"dp", "/", "2"}]}], "}"}]}], "}"}], "]"}]}], "\n", "\t\t", "}"}], "\n", " \t", "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", "\n", RowBox[{"(*", RowBox[{ RowBox[{"**", "**"}], "*", " ", "T", " ", "A", " ", "I", " ", "L", " ", "L", " ", "A", " ", "G", " ", "E", " ", "P", " ", "A", " ", "R", " ", "L", " ", "A", " ", "C", " ", "R", " ", "E", " ", "M", " ", "A", " ", "I", " ", "L", " ", "L", " ", "E", " ", "R", " ", "E"}], " ", "****************)"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{ "cr\[CapitalEGrave]ation", " ", "de", " ", "la", " ", "cr\[CapitalEGrave]maill\[CapitalEDoubleDot]re", " ", "par", " ", "copie", " ", "de", " ", "la", " ", "dent"}], " ", "*)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"cremaillere", "[", RowBox[{"z_", ",", "a_", ",", "m_"}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "p", ",", "dp", ",", "db", ",", "df", ",", "dk", ",", "dent"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], " ", "=", " ", RowBox[{"dimGenerales", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m"}], "]"}]}], ";", "\n", "\t", RowBox[{"dent", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", "m"}], "}"}], ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "-", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", "m"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "+", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}], ",", " ", RowBox[{"{", RowBox[{ RowBox[{"p", "-", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}]}], "}"}]}], ";", "\t", "\n", "\t", RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"decalage", "[", RowBox[{"dent", ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"dp", "/", "2"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{ RowBox[{"-", "z"}], " ", "p"}], ",", "0", ",", "p"}], "}"}]}], "]"}], "]"}], ",", "2"}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"cremaillereMin", "[", RowBox[{"z_", ",", "a_", ",", "m_"}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "p", ",", "dp", ",", "db", ",", "df", ",", "dk", ",", "dent"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], " ", "=", " ", RowBox[{"dimGenerales", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m"}], "]"}]}], ";", "\n", "\t", RowBox[{"dent", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "p"}], "/", "2"}], "+", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "m"}], " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", RowBox[{"-", "m"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", "m"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "-", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", "m"}], "}"}], ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "+", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"p", "-", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}]}], "}"}]}], ";", "\n", "\t", RowBox[{"decalage", "[", RowBox[{"dent", ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"dp", "/", "2"}]}], "}"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"cremaillereReelle", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "p", ",", "dp", ",", "db", ",", "df", ",", "dk", ",", "dent"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], " ", "=", " ", RowBox[{"dimGenerales", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m"}], "]"}]}], ";", "\n", "\t", RowBox[{"dent", ":=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"1.25", " ", RowBox[{"{", RowBox[{ RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", "m"}], "}"}]}], ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "-", RowBox[{"1.25", " ", "m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"1.25", "m"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"p", "/", "2"}], "+", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}], ",", " ", RowBox[{"{", RowBox[{ RowBox[{"p", "-", RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{"-", "m"}]}], "}"}]}], "}"}]}], ";", "\n", "\t", RowBox[{"Partition", "[", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"decalage", "[", RowBox[{"dent", ",", RowBox[{"{", RowBox[{ RowBox[{"x", " ", "+", RowBox[{"m", " ", "deport", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", RowBox[{ RowBox[{"dp", "/", "2"}], "+", RowBox[{"m", " ", "deport"}]}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{"z", "+", "2"}], ")"}]}], " ", "p"}], ",", "0", ",", "p"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"p", ",", RowBox[{ RowBox[{"dp", "/", "2"}], "+", RowBox[{"4", "m"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "z"}], " ", "p"}], ",", RowBox[{ RowBox[{"dp", "/", "2"}], "+", RowBox[{"4", "m"}]}]}], "}"}]}], "}"}], "]"}], ",", "2"}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"cremaillereFlanc", "[", RowBox[{"z_", ",", "a_", ",", "m"}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "p", ",", "dp", ",", "db", ",", "df", ",", "dk", ",", "dent"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p", ",", "dp", ",", "db", ",", "df", ",", "dk"}], "}"}], "=", RowBox[{"dimGenerales", "[", RowBox[{"z", ",", " ", "a", ",", " ", "m"}], "]"}]}], ";", "\n", "\t", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"dp", "/", "2"}]}], "}"}], ",", RowBox[{"-", RowBox[{"{", RowBox[{ RowBox[{"m", " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", RowBox[{"m", "-", RowBox[{"dp", "/", "2"}]}]}], "}"}]}]}], "}"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"dessinCremaillere", "[", RowBox[{"crem_", ",", "z_", ",", "a_", ",", "m_", ",", RowBox[{"beta_:", "0"}], ",", RowBox[{"deport_:", "0"}]}], "]"}], ":=", " ", "\n", " \t", RowBox[{"Line", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"matriceR", "[", "beta", "]"}], ".", "#"}], ")"}], "&"}], " ", "/@", " ", RowBox[{"decalage", "[", RowBox[{"crem", ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"m", " ", "z", " ", RowBox[{"beta", "/", "2"}]}], " ", "+", " ", RowBox[{"m", " ", "deport", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ",", " ", RowBox[{"m", " ", "deport"}]}], "}"}]}], "]"}]}], "]"}]}], ";"}], "\n", "\n", "\n", RowBox[{ RowBox[{ RowBox[{"animationTailleDent", "[", RowBox[{ RowBox[{"z_:", "19"}], ",", RowBox[{"a_:", "20", "\[Degree]"}], ",", RowBox[{"m_:", "1"}], ",", RowBox[{"deport_:", "0"}], ",", RowBox[{"nbImages_:", "8"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"gamma", ",", "beta", ",", "crem"}], "}"}], ",", "\n", " \t", RowBox[{ RowBox[{"crem", " ", "=", " ", RowBox[{"cremaillere", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}]}], ";", "\n", " \t", RowBox[{"Table", "[", "\n", " \t ", RowBox[{ RowBox[{"Show", "[", " ", RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t\t", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitCremailleres", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", " \t \t", RowBox[{"Table", "[", RowBox[{ RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "gamma", ",", "deport"}], "]"}], ",", "\n", " \t\t\t", RowBox[{"{", RowBox[{"gamma", ",", "0", ",", RowBox[{"beta", "-", RowBox[{"3", " ", RowBox[{ RowBox[{"Pi", "/", "5"}], "/", "nbImages"}]}]}], ",", RowBox[{"3", " ", RowBox[{ RowBox[{"Pi", "/", "5"}], "/", "nbImages"}]}]}], "}"}]}], "]"}], ",", "\n", "\t\t \t", RowBox[{"GrayLevel", "[", "0", "]"}], ",", " ", "\n", " \t \t", RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitGrosseCremaillere", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", " \t \t", RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "beta", ",", "deport"}], "]"}]}], "\n", "\t\t", "}"}], "]"}], ",", " ", "\n", "\t\t", RowBox[{"PlotRange", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", " ", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}]}], "}"}], " ", "m", " ", "z"}]}]}], "\n", " \t ", "]"}], ",", "\n", " \t", RowBox[{"{", RowBox[{"beta", ",", "0", ",", " ", RowBox[{"Pi", " ", RowBox[{"3", " ", "/", "5"}]}], ",", " ", RowBox[{"Pi", " ", RowBox[{ RowBox[{"3", " ", "/", " ", "5"}], " ", "/", " ", "nbImages"}]}]}], "}"}]}], " ", "]"}]}]}], " ", "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"dessinTailleDent", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", "deport_", ",", RowBox[{"nbImages_:", "30"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"gamma", ",", "crem"}], "}"}], ",", "\n", " \t", RowBox[{ RowBox[{"crem", " ", "=", " ", RowBox[{"cremaillere", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}]}], ";", "\n", " \t", RowBox[{"Show", "[", " \t", RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t\t", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitCremailleres", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", " \t \t", RowBox[{"Table", "[", RowBox[{ RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "gamma", ",", "deport"}], "]"}], ",", "\n", " \t\t\t", RowBox[{"{", RowBox[{"gamma", ",", "0", ",", RowBox[{ RowBox[{"2", "Pi"}], "-", RowBox[{"Pi", "/", "nbImages"}]}], ",", RowBox[{"2", RowBox[{"Pi", "/", "nbImages"}]}]}], "}"}]}], "]"}], ",", "\n", " \t\t", RowBox[{"GrayLevel", "[", "0", "]"}], ",", " ", RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitGrosseCremaillere", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", "\t\t\t", RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "0", ",", "deport"}], "]"}]}], " ", "\n", "\t\t", "}"}], "]"}], ",", " ", "\n", "\t\t\t ", RowBox[{"PlotRange", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", " ", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}]}], "}"}], " ", "m", " ", "z"}]}], ",", "\n", "\t\t", RowBox[{"ImageSize", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], " ", RowBox[{"Round", "[", RowBox[{ RowBox[{"72", " ", "/", "25.4"}], " ", "2", " ", "m", " ", "z"}], "]"}]}]}]}], " ", "]"}]}]}], " ", "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"dessinTailleDentDetail", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", "deport_", ",", RowBox[{"nbImages_:", "10"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"gamma", ",", "crem"}], "}"}], ",", "\n", " \t", RowBox[{ RowBox[{"crem", " ", "=", " ", RowBox[{"cremaillereMin", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}]}], ";", "\n", " \t", RowBox[{"Show", "[", " ", RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t\t", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitCremailleres", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", " \t \t", RowBox[{"Table", "[", RowBox[{ RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "gamma", ",", "deport"}], "]"}], ",", " ", "\n", "\t\t\t\t", RowBox[{"{", RowBox[{"gamma", ",", RowBox[{ RowBox[{"-", "3"}], RowBox[{"Pi", "/", "z"}]}], ",", RowBox[{"2", RowBox[{"Pi", "/", "z"}]}], ",", RowBox[{"2", RowBox[{ RowBox[{"Pi", "/", "z"}], "/", "nbImages"}]}]}], "}"}]}], "]"}], ",", "\n", "\t\t \t", RowBox[{"GrayLevel", "[", "0", "]"}], ",", " ", RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitGrosseCremaillere", " ", RowBox[{"72", "/", "25.4"}]}], " ", "]"}], ",", "\n", " \t \t", RowBox[{"dessinCremaillere", "[", RowBox[{ "crem", ",", "z", ",", "a", ",", "m", ",", "0", ",", "deport"}], "]"}]}], " ", "\n", " \t\t", "}"}], "]"}], ",", " ", "\n", "\t\t", RowBox[{"AspectRatio", "\[Rule]", "Automatic"}], ",", " ", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", ".25"}], " ", "Pi", " ", "m"}], ",", " ", RowBox[{"0.75", " ", "Pi", " ", "m"}]}], "}"}], ",", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"m", " ", RowBox[{"z", " ", "/", " ", "2"}]}], " ", "-", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}], ",", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], "+", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}]}], "}"}], "+", "deport"}]}], "}"}]}], ",", "\n", " \t\t", RowBox[{"ImageSize", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], " ", RowBox[{"Round", "[", RowBox[{ RowBox[{"72", " ", "/", "25.4"}], " ", "Pi", " ", "m"}], "]"}]}]}]}], " ", "]"}]}]}], " ", "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"devCercle", "[", RowBox[{"t_", ",", " ", "a_", ",", " ", "db_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"db", "/", "2"}], " ", RowBox[{"{", " ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", " ", RowBox[{ RowBox[{"Tan", "[", "a", "]"}], "-", "t"}], ")"}]}], " ", RowBox[{"Cos", "[", RowBox[{"a", "-", "t"}], "]"}]}], "+", RowBox[{"Sin", "[", RowBox[{"a", "-", "t"}], "]"}]}], ",", " ", RowBox[{ RowBox[{ RowBox[{"(", " ", RowBox[{ RowBox[{"Tan", "[", "a", "]"}], "-", "t"}], ")"}], " ", RowBox[{"Sin", "[", RowBox[{"a", "-", "t"}], "]"}]}], "+", RowBox[{"Cos", "[", RowBox[{"a", "-", "t"}], "]"}]}]}], " ", "}"}]}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"devCercleGen", "[", RowBox[{ "t_", ",", " ", "a_", ",", " ", "exc_", ",", " ", "db_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"db", "/", "2"}], " ", RowBox[{"{", " ", RowBox[{ RowBox[{ RowBox[{"Sin", "[", "t", "]"}], "-", RowBox[{"t", " ", RowBox[{"Cos", "[", "t", "]"}]}]}], ",", RowBox[{ RowBox[{"Cos", "[", "t", "]"}], "+", RowBox[{"t", " ", RowBox[{"Sin", "[", "t", "]"}]}]}]}], "}"}]}], " ", "+", " ", RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "t"}], "]"}], ".", RowBox[{"{", " ", RowBox[{ RowBox[{"Tan", "[", "a", "]"}], ",", "1"}], "}"}]}], " ", "exc"}]}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"dessinFamilleDeveloppantes", "[", RowBox[{ RowBox[{"z_:", "17"}], ",", " ", RowBox[{"a_:", "20", "\[Degree]"}], ",", " ", RowBox[{"m_:", "1"}], ",", " ", RowBox[{"deport_:", "0"}], ",", " ", RowBox[{"n_:", "10"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"t", ",", "l"}], "}"}], ",", "\n", " ", RowBox[{"Show", "[", " ", RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t", RowBox[{"Table", "[", RowBox[{ RowBox[{"ParametricPlot", "[", RowBox[{ RowBox[{"Evaluate", "[", RowBox[{"devCercleGen", "[", RowBox[{"t", ",", "a", ",", " ", "l", ",", " ", RowBox[{"m", " ", "z"}]}], "]"}], "]"}], ",", "\n", "\t\t", RowBox[{"{", RowBox[{"t", ",", RowBox[{ RowBox[{"-", "2"}], " ", RowBox[{"Pi", "/", "z"}]}], ",", " ", RowBox[{"2", " ", RowBox[{"Pi", "/", "z"}]}]}], " ", "}"}], ",", "\n", " \t", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}], ",", "\n", " \t", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitDeveloppantes", " ", RowBox[{"72", " ", "/", " ", "25.4"}]}], "]"}]}]}], "\n", "\t ", "]"}], ",", " ", RowBox[{"{", RowBox[{"l", ",", " ", RowBox[{ RowBox[{"-", "m"}], "+", RowBox[{"m", " ", RowBox[{"deport", "/", RowBox[{"Cos", "[", "a", "]"}]}]}]}], ",", " ", RowBox[{"m", "+", RowBox[{"m", " ", RowBox[{"deport", "/", RowBox[{"Cos", "[", "a", "]"}]}]}]}], ",", " ", RowBox[{"2", RowBox[{"m", "/", "n"}]}]}], "}"}]}], "]"}], ",", "\n", "\t", RowBox[{"Axes", "\[Rule]", "None"}], ",", " ", RowBox[{"AspectRatio", "\[Rule]", "Automatic"}], ",", " ", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}], ",", "\n", " \t", RowBox[{"PlotRange", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", ".25"}], " ", "Pi", " ", "m"}], ",", " ", RowBox[{"0.75", " ", "Pi", " ", "m"}]}], "}"}], ",", " ", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"m", " ", RowBox[{"z", " ", "/", " ", "2"}]}], " ", "-", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}], ",", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], "+", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}]}], "}"}], "+", "deport"}]}], "}"}]}], ",", "\n", "\t", RowBox[{"ImageSize", "\[Rule]", " ", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], " ", RowBox[{"Round", "[", RowBox[{ RowBox[{"72", " ", "/", "25.4"}], " ", "Pi", " ", "m"}], "]"}]}]}]}], "\n", " ", "]"}]}], " ", "]"}]}], ";"}], "\n", "\n", "\n", RowBox[{"(*", RowBox[{ RowBox[{ "**", "**", "**", "**", "**", "**", "**", "**", "**", " ", "F"}], " ", "O", " ", "R", " ", "M", " ", "E", " ", "D", " ", "E", " ", "S", " ", "D", " ", "E", " ", "N", " ", "T", " ", "S"}], " ", "**************************)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"profilDentDev", "[", RowBox[{"z_", ",", "a_", ",", "m_", ",", "deport_"}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"t", "=", RowBox[{"a", " ", "1."}]}], ",", " ", RowBox[{"prof", "=", RowBox[{"{", "}"}]}], ",", " ", RowBox[{"pas", " ", "=", " ", RowBox[{"Pi", "/", "80"}]}], ",", " ", "pt"}], "}"}], ",", "\n", "\t ", RowBox[{ RowBox[{"While", "[", " ", RowBox[{ RowBox[{ RowBox[{"norme", "[", " ", RowBox[{ RowBox[{"pt", " ", "=", " ", RowBox[{"devCercle", "[", RowBox[{"t", ",", "a", ",", RowBox[{"m", " ", "z", " ", RowBox[{"Cos", "[", "a", "]"}]}]}], "]"}]}], ";", " ", "pt"}], " ", "]"}], " ", "<", " ", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], "+", "m", "+", RowBox[{"m", " ", "deport"}]}]}], ",", " ", "\n", "\t\t", RowBox[{ RowBox[{"AppendTo", "[", RowBox[{"prof", ",", " ", "pt"}], "]"}], ";", " ", RowBox[{"t", "-=", "pas"}]}]}], "\n", " \t ", "]"}], ";", "\n", "\t", "prof"}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Rallongeons", " ", "le", " ", "profil", " ", "en", " ", "ajoutant", " ", "un", " ", "point", " ", "SUR", " ", "le", " ", "cercle", " ", "de", " ", "t\[CapitalIAcute]te", " ", RowBox[{"(", "dk", ")"}]}], ",", " ", RowBox[{ "en", " ", "\n", " ", "tenant", " ", "compte", " ", "du", " ", "d\[CapitalEGrave]port"}]}], " ", "*)"}], "\n", RowBox[{ RowBox[{ RowBox[{"rallongeProfil", "[", RowBox[{"prof_", ",", "r_"}], "]"}], ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"p1", ",", "p2"}], "}"}], ",", "\n", " \t ", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"p1", ",", "p2"}], "}"}], " ", "=", " ", RowBox[{"Take", "[", RowBox[{"prof", ",", RowBox[{"-", "2"}]}], "]"}]}], ";", "\n", " \t ", RowBox[{"Append", "[", RowBox[{"prof", ",", " ", RowBox[{ RowBox[{"interDroiteFonction", "[", " ", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{ RowBox[{"r", "^", "2"}], "-", RowBox[{"x", "^", "2"}]}], "]"}], ",", "x", ",", "p1", ",", RowBox[{"(", RowBox[{"p2", "-", "p1"}], ")"}]}], "]"}], "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{"(*", " ", RowBox[{"Profil", " ", "du", " ", "flanc"}], " ", "*)"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"profilDent", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "prof1", ",", " ", "zlim", ",", " ", "lp1", ",", " ", "lp4", ",", "i", ",", "j", ",", "prof3", ",", "prof4", ",", "t", ",", "pr", ",", "pti", ",", "eqd"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{"zlim", " ", "=", " ", RowBox[{"nombreDentsLimite", "[", "a", "]"}]}], " ", ";", "\n", "\t", RowBox[{"prof1", " ", "=", " ", RowBox[{"rallongeProfil", "[", RowBox[{ RowBox[{"profilDentDev", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport"}], "]"}], ",", " ", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], " ", "+", " ", "m", " ", "+", " ", RowBox[{"m", " ", "deport"}]}]}], "]"}]}], " ", ";", "\n", "\t", RowBox[{"If", " ", "[", " ", RowBox[{ RowBox[{ RowBox[{"norme", "[", RowBox[{"prof1", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], " ", "<", " ", RowBox[{ RowBox[{"z", " ", RowBox[{"m", "/", "2"}]}], "-", RowBox[{"1.25", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", "deport"}]}]}], ",", "\n", "\t\t", RowBox[{"(*", " ", RowBox[{"on", " ", "est", " ", "trop", " ", "bas"}], "*)"}], "\n", "\t\t", RowBox[{"prof1", " ", "=", " ", RowBox[{"Select", "[", RowBox[{"prof1", ",", " ", RowBox[{ RowBox[{ RowBox[{"norme", "[", "#", "]"}], ">", RowBox[{ RowBox[{"z", " ", RowBox[{"m", "/", "2"}]}], "-", RowBox[{"1.25", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", "deport"}]}]}], " ", "&"}]}], " ", "]"}]}]}], "\n", "\t", "]"}], ";", "\n", "\t", RowBox[{"(*", " ", RowBox[{"puis", " ", "on", " ", "rallonge"}], " ", "*)"}], "\n", "\t", RowBox[{"prof1", " ", "=", " ", RowBox[{"Reverse", "[", RowBox[{"rallongeProfil", "[", RowBox[{ RowBox[{"Reverse", "[", "prof1", "]"}], ",", " ", RowBox[{ RowBox[{"z", " ", RowBox[{"m", "/", "2"}]}], "-", RowBox[{"1.25", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", "deport"}]}]}], "]"}], "]"}]}], " ", ";", "\n", "\t", RowBox[{"If", "[", " ", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"z", " ", ">", " ", "zlim"}], ")"}], " ", "&&", " ", RowBox[{"(", RowBox[{"deport", " ", "==", " ", "0"}], ")"}]}], ",", " ", "\n", "\t\t", RowBox[{ RowBox[{"Print", "[", "\"\\"", "]"}], ";", " ", "\n", "\t\t", RowBox[{"profComplet", " ", "=", " ", "prof1"}]}], ",", "\n", "\t ", RowBox[{"(*", " ", "else", " ", "*)"}], "\n", "\t\t", RowBox[{ RowBox[{"eqd", " ", "=", " ", RowBox[{"Evaluate", "[", RowBox[{"devCercleGen", "[", RowBox[{"t", ",", "a", ",", RowBox[{"(", RowBox[{ RowBox[{"-", "m"}], "+", RowBox[{"m", " ", RowBox[{"deport", "/", RowBox[{"Cos", "[", "a", "]"}]}]}]}], ")"}], ",", " ", RowBox[{"m", " ", "z"}]}], " ", RowBox[{"(*", RowBox[{"Cos", "[", "a", "]"}], "*)"}], " ", "]"}], "]"}]}], ";", "\n", "\t\t", RowBox[{"pr", " ", "=", " ", RowBox[{"ParametricPlot", "[", RowBox[{ RowBox[{"Evaluate", "[", "eqd", "]"}], ",", " ", RowBox[{"{", RowBox[{"t", ",", RowBox[{ RowBox[{"-", "3"}], " ", RowBox[{"Pi", "/", "z"}]}], " ", ",", RowBox[{ RowBox[{"-", ".2"}], "/", "z"}]}], "}"}], ",", " ", "\n", "\t\t\t", RowBox[{"PlotPoints", "\[Rule]", "20"}], ",", RowBox[{"MaxRecursion", "\[Rule]", RowBox[{"ControlActive", "[", RowBox[{"0", ",", "6"}], "]"}]}]}], "]"}]}], ";", "\n", " \t\t", RowBox[{"prof3", " ", "=", RowBox[{"First", "[", RowBox[{"Cases", "[", RowBox[{"pr", ",", RowBox[{ RowBox[{"Line", "[", "u_", "]"}], "\[Rule]", "u"}], ",", "Infinity"}], "]"}], "]"}]}], ";", "\n", " \t\t", RowBox[{"prof4", " ", "=", " ", RowBox[{"Select", "[", RowBox[{"prof3", ",", " ", RowBox[{ RowBox[{ RowBox[{"ArcTan", " ", "@@", " ", RowBox[{"(", RowBox[{"#", "-", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "m"}], " ", RowBox[{"Tan", "[", "a", "]"}]}], ",", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], "-", "m"}]}], "}"}]}], ")"}]}], "<", RowBox[{"(", RowBox[{ RowBox[{"Pi", "/", "2"}], "-", RowBox[{"a", " ", "0.6"}]}], ")"}]}], "&"}]}], "]"}]}], ";", "\n", "\t\t", RowBox[{"i", "=", "1"}], ";", " ", RowBox[{"lp1", "=", RowBox[{ RowBox[{"Length", "[", "prof1", "]"}], "-", "1"}]}], ";", " ", RowBox[{"(*", " ", RowBox[{ RowBox[{"##", " ", RowBox[{"Print", "[", RowBox[{ RowBox[{"First", "[", "prof4", "]"}], ",", "\"\<:\>\"", ",", RowBox[{"First", "[", "prof1", "]"}]}], "]"}]}], ";"}], " ", "*)"}], "\n", "\t\t", RowBox[{"j", "=", "lp1"}], ";", " ", RowBox[{"lp4", "=", RowBox[{ RowBox[{"Length", "[", "prof4", "]"}], "-", "1"}]}], ";", "\n", "\t\t", RowBox[{"While", "[", " ", RowBox[{ RowBox[{"Not", "[", " ", RowBox[{"pti", " ", "=", " ", RowBox[{"interSegments", "[", " ", RowBox[{ RowBox[{"prof4", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"prof4", "[", RowBox[{"[", RowBox[{"i", "+", "1"}], "]"}], "]"}], ",", RowBox[{"prof1", "[", RowBox[{"[", "j", "]"}], "]"}], ",", RowBox[{"prof1", "[", RowBox[{"[", RowBox[{"j", "+", "1"}], "]"}], "]"}]}], " ", "]"}]}], " ", "]"}], ",", " ", "\n", "\t\t\t", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "<", "lp4"}], ",", " ", "\n", "\t\t\t\t", RowBox[{"i", "++"}], ",", " ", "\n", "\t\t\t\t", RowBox[{"If", "[", RowBox[{ RowBox[{"j", ">", "1"}], ",", "\n", "\t\t\t\t\t", RowBox[{ RowBox[{"j", "--"}], ";", RowBox[{"i", "=", "1"}]}], ",", " ", "\n", "\t\t\t\t\t", RowBox[{ RowBox[{"Return", "[", " ", RowBox[{"profComplet", " ", "=", " ", "prof1"}], " ", "]"}], " ", ";"}]}], "\n", "\t\t\t", "]"}]}], "\t", "]"}]}], "\n", "\t \t", "]"}], ";", "\n", "\t", RowBox[{"profComplet", " ", "=", " ", RowBox[{"Reverse", "[", RowBox[{"faireListeXY", "[", RowBox[{"{", RowBox[{ RowBox[{"Reverse", "[", RowBox[{"Take", "[", RowBox[{"prof1", ",", RowBox[{"-", RowBox[{"(", RowBox[{"lp1", "-", "j", "+", "1"}], ")"}]}]}], "]"}], "]"}], ",", "pti", ",", RowBox[{"Take", "[", RowBox[{"prof4", ",", RowBox[{"-", RowBox[{"(", RowBox[{"lp4", "-", "i", "+", "1"}], ")"}]}]}], "]"}]}], "}"}], "]"}], "]"}]}], ";"}]}], "\n", "\t", "]"}], ";", "\n", "\t", RowBox[{"Return", "[", "profComplet", "]"}]}]}], "\n", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"profilDentComplete", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"gamma", ",", " ", "profComplet", ",", " ", "prof2"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{"profComplet", " ", "=", " ", RowBox[{"profilDent", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";", "\n", "\t", RowBox[{"If", "[", " ", RowBox[{ RowBox[{"deport", "!=", "0"}], ",", "\t", "\n", "\t\t", RowBox[{"gamma", " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}], "+", RowBox[{"2", " ", "m", " ", "deport", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ")"}], " ", RowBox[{ RowBox[{"2", "/", "m"}], "/", "z"}]}]}], ",", " ", RowBox[{"gamma", " ", "=", " ", RowBox[{"Pi", "/", "z"}]}]}], "]"}], ";", "\n", "\t", RowBox[{"(*", RowBox[{ RowBox[{"*", " ", "Lorsque", " ", RowBox[{"l", "'"}], "on", " ", "d\[CapitalEGrave]porte", " ", "positivement"}], ",", " ", RowBox[{ "il", " ", "peut", " ", "arriver", " ", "que", " ", "la", " ", "roue", " ", "aie", " ", "un", " ", RowBox[{ "diam\[CapitalEDoubleDot]tre", "\t ", "**", "\n", " \t ", "**", " ", "inf\[CapitalEGrave]rieur"}], " ", "\[YAcute]", " ", "dk"}], ",", " ", RowBox[{"les", " ", "dents", " ", "sont", " ", "alors", " ", RowBox[{"pointues", ".", " ", "On"}], " ", "doit", " ", "enjoliver", " ", "ces", " ", "cas", " ", "pathologiques"}]}], " ", "**)"}], "\n", "\t", RowBox[{"If", "[", RowBox[{ RowBox[{"deport", ">", "0"}], ",", " ", "\n", "\t\t", RowBox[{"profComplet", " ", "=", " ", RowBox[{"Select", "[", " ", RowBox[{"profComplet", ",", " ", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"ArcTan", " ", "@@", " ", "#"}], ")"}], ">", RowBox[{"(", RowBox[{ RowBox[{"Pi", "/", "2"}], "-", RowBox[{"gamma", "/", "2"}]}], ")"}]}], "&"}]}], "]"}]}]}], "]"}], ";", "\n", "\t", RowBox[{"prof2", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "gamma"}], "]"}], " ", ".", " ", RowBox[{"{", RowBox[{ RowBox[{"-", RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}]}], ",", RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}]}], "}"}]}], "&"}], " ", "/@", " ", "profComplet"}]}], ";", "\n", " \t", RowBox[{"uneDent", " ", "=", " ", RowBox[{"faireListeXY", "[", RowBox[{"{", RowBox[{"profComplet", ",", RowBox[{"Reverse", "[", "prof2", "]"}]}], "}"}], "]"}]}]}]}], "\n", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"profilDentCentree", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"gamma", ",", " ", "profComplet", ",", " ", "prof2"}], "}"}], ",", "\n", "\t", RowBox[{ RowBox[{"profComplet", " ", "=", " ", RowBox[{"profilDent", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";", "\n", "\t", RowBox[{"If", "[", " ", RowBox[{ RowBox[{"deport", "!=", "0"}], ",", "\t", "\n", "\t\t", RowBox[{"gamma", " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}], "+", RowBox[{"2", " ", "m", " ", "deport", " ", RowBox[{"Tan", "[", "a", "]"}]}]}], ")"}], " ", RowBox[{ RowBox[{"2", "/", "m"}], "/", "z"}]}]}], ",", " ", "\n", "\t\t", RowBox[{ RowBox[{"gamma", " ", "=", " ", RowBox[{"Pi", "/", "z"}]}], ";"}]}], "\n", "\t", "]"}], ";", "\n", "\t", RowBox[{"If", "[", RowBox[{ RowBox[{"deport", ">", "0"}], ",", " ", "\n", "\t\t", RowBox[{ RowBox[{"profComplet", " ", "=", " ", RowBox[{"Select", "[", " ", RowBox[{"profComplet", ",", " ", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"ArcTan", " ", "@@", " ", "#"}], ")"}], ">", RowBox[{"(", RowBox[{ RowBox[{"Pi", "/", "2"}], "-", RowBox[{"gamma", "/", "2"}]}], ")"}]}], "&"}]}], "]"}]}], ";"}]}], "\n", "\t", "]"}], ";", "\n", "\t", RowBox[{"prof2", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"gamma", "/", "2"}], "]"}], " ", ".", "#"}], "&"}], " ", "/@", " ", "profComplet"}]}], " ", ";", "\n", "\t", RowBox[{"Return", " ", "[", RowBox[{"faireListeXY", "[", " ", RowBox[{"{", RowBox[{"prof2", ",", " ", RowBox[{"{", RowBox[{"0", ",", RowBox[{ RowBox[{"Last", "[", "prof2", "]"}], "[", RowBox[{"[", "2", "]"}], "]"}]}], "}"}]}], "}"}], "]"}], " ", "]"}]}]}], "\n", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"compareDeports", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport1_:", "0"}], ",", RowBox[{"deport2_:", "0.2"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Show", "[", "\n", "\t", RowBox[{ RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"GrayLevel", "[", "0", "]"}], ",", " ", RowBox[{"AbsoluteThickness", "[", RowBox[{"epaisseurTraitProfil", " ", RowBox[{"72", " ", "/", " ", "25.4"}]}], "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", " ", RowBox[{"profilDentCentree", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport1"}], "]"}], " ", "]"}], ",", "\n", "\t\t ", RowBox[{"GrayLevel", "[", "0.2", "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", " ", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}]}], ",", RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}]}], "}"}], "&"}], " ", "/@", " ", RowBox[{"profilDentCentree", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport2"}], "]"}]}], " ", "]"}]}], "\n", "\t", "}"}], "]"}], ",", "\n", "\t", RowBox[{"PlotRange", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", ".5"}], " ", "Pi", " ", "m"}], ",", " ", RowBox[{"0.5", " ", "Pi", " ", "m"}]}], "}"}], ",", " ", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"m", " ", RowBox[{"z", " ", "/", " ", "2"}]}], " ", "-", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}], ",", RowBox[{ RowBox[{"m", " ", RowBox[{"z", "/", "2"}]}], "+", RowBox[{"Pi", " ", RowBox[{"m", "/", "2"}]}]}]}], "}"}], "+", RowBox[{ RowBox[{"(", RowBox[{"deport1", "+", "deport2"}], ")"}], "/", "2"}]}]}], "}"}]}], ",", "\n", "\t", RowBox[{"ImageSize", "\[Rule]", " ", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], " ", RowBox[{"Round", "[", RowBox[{ RowBox[{"72", " ", "/", "25.4"}], " ", "Pi", " ", "m"}], "]"}]}]}]}], "\n", " ", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"profilRoueComplete", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}]}], "]"}], " ", ":=", " ", "\n", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "k", "}"}], ",", "\n", "\t ", RowBox[{ RowBox[{"uneDent", " ", "=", " ", RowBox[{"profilDentComplete", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport"}], "]"}]}], " ", ";", "\n", "\t", RowBox[{"faireListeXY", "[", RowBox[{"{", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{ RowBox[{"-", "2"}], RowBox[{"Pi", "/", "z"}], " ", "k"}], "]"}], ".", "#"}], "&"}], " ", "/@", " ", "uneDent"}], ",", RowBox[{"{", RowBox[{"k", ",", "0", ",", RowBox[{"z", "-", "1"}]}], "}"}]}], " ", "]"}], ",", RowBox[{"First", "[", "uneDent", "]"}]}], "}"}], " ", "]"}]}]}], "\n", "]"}]}], ";"}], "\n", "\n", RowBox[{ RowBox[{ RowBox[{"animeEngrenement", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}], ",", RowBox[{"n_:", "3"}]}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"crem", ",", " ", "rc"}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"crem", " ", "=", " ", RowBox[{"cremaillereReelle", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport"}], "]"}]}], ";", "\n", " ", RowBox[{"rc", " ", "=", " ", RowBox[{"profilRoueComplete", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";", "\n", " ", RowBox[{"Table", "[", "\n", " ", RowBox[{ RowBox[{"Show", "[", " ", "\n", "\t", RowBox[{ RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"Hue", "[", "0.5", "]"}], ",", RowBox[{"Polygon", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "beta"}], "]"}], ".", "#"}], "&"}], " ", "/@", " ", "rc"}], "]"}], ",", RowBox[{"GrayLevel", "[", "0", "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "beta"}], "]"}], ".", "#"}], "&"}], " ", "/@", " ", "rc"}], "]"}], ",", " ", RowBox[{"Hue", "[", "0.4", "]"}], ",", "\n", "\t\t ", RowBox[{"Polygon", "[", RowBox[{"decalage", "[", RowBox[{"crem", ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "Pi", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", RowBox[{"z", "/", "2"}], " ", "beta"}]}], ",", "0"}], "}"}]}], "]"}], "]"}], ",", "\n", "\t\t ", RowBox[{"GrayLevel", "[", "0", "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", RowBox[{"decalage", "[", RowBox[{"crem", ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "Pi", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", RowBox[{"z", "/", "2"}], " ", "beta"}]}], ",", "0"}], "}"}]}], "]"}], "]"}]}], "}"}], "]"}], ",", "\n", "\t", RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", "\n", "\t", RowBox[{"AspectRatio", "\[Rule]", "Automatic"}], ",", "\n", "\t", RowBox[{"PlotRange", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "m"}], " ", "z"}], " ", "+", " ", RowBox[{"2", " ", "m"}]}], ",", RowBox[{ RowBox[{"m", " ", "z"}], " ", "+", " ", RowBox[{"2", " ", "m"}]}]}], "}"}], "/", "2"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ RowBox[{"m", " ", "z"}], "+", RowBox[{"2", "m"}]}], ")"}]}], "/", "4"}], ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"m", " ", "z"}], "+", RowBox[{"2", "m"}]}], ")"}], "/", "2"}]}], "}"}]}], "}"}], "1.2"}]}]}], "]"}], "\n", " ", ",", RowBox[{"{", RowBox[{"beta", ",", "0", ",", RowBox[{ RowBox[{"2", " ", RowBox[{"Pi", "/", "z"}]}], "-", RowBox[{"2", " ", RowBox[{ RowBox[{"Pi", "/", "n"}], "/", "z"}]}]}], ",", RowBox[{"2", " ", RowBox[{ RowBox[{"Pi", "/", "n"}], "/", "z"}]}]}], "}"}]}], "]"}]}]}], "\n", "]"}]}], ";"}]}]}]], "Input", CellGroupingRules->{"GroupTogetherGrouping", 10000.}, InitializationCell->True, CellChangeTimes->{{3.35752078279003*^9, 3.3575209227128*^9}, { 3.35752098182255*^9, 3.35752098516632*^9}, {3.35752128454324*^9, 3.35752128709013*^9}, {3.35752143451295*^9, 3.35752146684128*^9}, { 3.35752154798242*^9, 3.35752155382621*^9}, 3.35752177084322*^9, { 3.35752185239062*^9, 3.35752187645328*^9}, {3.35752220495538*^9, 3.35752220979916*^9}, {3.35752379693432*^9, 3.35752383188766*^9}, { 3.35752387023166*^9, 3.35752387220042*^9}, {3.35752390634127*^9, 3.3575239072944*^9}, {3.35861043041499*^9, 3.35861043461809*^9}, { 3.3586105768203*^9, 3.35861058989834*^9}, {3.36948768916409*^9, 3.36948776652643*^9}, {3.4389558050758753`*^9, 3.4389558052008753`*^9}, {3.4389559741071253`*^9, 3.4389559829196253`*^9}, {3.4389560579977503`*^9, 3.4389560862633753`*^9}, {3.4389561525133753`*^9, 3.4389561853415003`*^9}, 3.4389562962633753`*^9, { 3.4389563332946253`*^9, 3.4389563366227503`*^9}, 3.761063420643454*^9}, CellID->497908655], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"gearpict", "[", RowBox[{"z_", ",", " ", "a_", ",", " ", "m_", ",", " ", RowBox[{"deport_:", "0"}], ",", "beta_", ",", "cr_"}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"crem", ",", " ", "rc", ",", " ", RowBox[{"xc1", " ", "=", " ", RowBox[{"RGBColor", "[", RowBox[{".6", ",", ".8", ",", "0"}], "]"}]}], ",", " ", RowBox[{"xc2", " ", "=", " ", RowBox[{"RGBColor", "[", RowBox[{ "0.2307774471656367", ",", " ", "0.7663691157396811", ",", " ", "1."}], "]"}]}]}], "}"}], ",", "\n", " ", RowBox[{ RowBox[{"crem", " ", "=", " ", RowBox[{"cremaillereReelle", "[", RowBox[{"z", ",", "a", ",", "m", ",", "deport"}], "]"}]}], ";", "\n", " ", RowBox[{"rc", " ", "=", " ", RowBox[{"profilRoueComplete", "[", RowBox[{ "z", ",", " ", "a", ",", " ", "m", ",", " ", "deport"}], "]"}]}], ";", "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{"xc1", ",", RowBox[{"Polygon", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "beta"}], "]"}], ".", "#"}], "&"}], " ", "/@", " ", "rc"}], "]"}], ",", RowBox[{"GrayLevel", "[", "0", "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"matriceR", "[", RowBox[{"-", "beta"}], "]"}], ".", "#"}], "&"}], " ", "/@", " ", "rc"}], "]"}], ",", " ", "xc2", ",", "\n", "\t\t ", RowBox[{"Polygon", "[", RowBox[{"decalage", "[", RowBox[{"crem", ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "Pi", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", RowBox[{"z", "/", "2"}], " ", "beta"}]}], ",", "0"}], "}"}]}], "]"}], "]"}], ",", "\n", "\t\t ", RowBox[{"GrayLevel", "[", "0", "]"}], ",", "\n", "\t\t ", RowBox[{"Line", "[", RowBox[{"decalage", "[", RowBox[{"crem", ",", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "Pi", " ", "m"}], " ", "+", " ", RowBox[{"m", " ", RowBox[{"z", "/", "2"}], " ", "beta"}]}], ",", "0"}], "}"}]}], "]"}], "]"}]}], "}"}], "]"}], ",", "\n", "\t", RowBox[{"If", "[", RowBox[{"cr", ",", RowBox[{"lignesConstruction", "[", RowBox[{"z", ",", "a", ",", "m"}], "]"}], ",", RowBox[{"Graphics", "[", RowBox[{"{", "}"}], "]"}]}], "]"}], ",", "\n", "\t", RowBox[{"PlotRange", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "m"}], " ", "z"}], " ", "+", " ", RowBox[{"2", " ", "m"}]}], ",", RowBox[{ RowBox[{"m", " ", "z"}], " ", "+", " ", RowBox[{"2", " ", "m"}]}]}], "}"}], "/", "2"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ RowBox[{"m", " ", "z"}], "+", RowBox[{"2", "m"}]}], ")"}]}], "/", "4"}], ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"m", " ", "z"}], "+", RowBox[{"2", "m"}]}], ")"}], "/", "2"}]}], "}"}]}], "}"}], "1.2"}]}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"{", RowBox[{"400", ",", "300"}], "}"}]}], ",", RowBox[{"ImageMargins", "\[Rule]", "10"}]}], "]"}]}]}], "]"}]}], ";"}]], "Input", CellGroupingRules->{"GroupTogetherGrouping", 10000.}, InitializationCell->True, CellChangeTimes->{ 3.35696210375764*^9, {3.35752200596973*^9, 3.35752205831381*^9}, { 3.35752208834526*^9, 3.35752208909526*^9}, {3.35752294697575*^9, 3.3575229814291*^9}, {3.3575239933887*^9, 3.3575239979981*^9}, { 3.35752405702973*^9, 3.35752405977975*^9}, {3.35752417426486*^9, 3.35752418060865*^9}, {3.35861040700889*^9, 3.35861041697757*^9}, 3.3654309670302*^9, {3.36543139209267*^9, 3.36543139249102*^9}, { 3.36543145632425*^9, 3.36543146664249*^9}, 3.36948778899605*^9, 3.7610634206435966`*^9}, CellID->355165875], Cell[BoxData[ RowBox[{"Manipulate", "[", RowBox[{ RowBox[{"Quiet", "[", RowBox[{"Labeled", "[", RowBox[{ RowBox[{"gearpict", "[", RowBox[{ "z", ",", "a", ",", "1", ",", " ", "d", ",", "b", ",", "cr"}], "]"}], ",", RowBox[{"Style", "[", RowBox[{ RowBox[{"Framed", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"z", "<", RowBox[{"minimalNumberOfCogs", "[", "a", "]"}]}], ",", "\"\\"", ",", "\"\\""}], "]"}], ",", RowBox[{"Background", "\[Rule]", RowBox[{"RGBColor", "[", RowBox[{"1", ",", ".875", ",", " ", ".537"}], "]"}]}]}], "]"}], ",", "12", ",", "\"\\""}], "]"}], ",", RowBox[{"{", "Top", "}"}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"b", ",", "0", ",", "\"\\""}], "}"}], ",", "0", ",", "Pi"}], "}"}], ",", "Delimiter", ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"z", ",", "11", ",", "\"\\""}], "}"}], ",", "4", ",", "30", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", " ", RowBox[{"20", "\[Degree]"}], ",", "\"\\""}], "}"}], ",", RowBox[{"2", "\[Degree]"}], ",", RowBox[{"31.5", "\[Degree]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"d", ",", "0.4", ",", "\"\\""}], "}"}], ",", RowBox[{"-", "0.5"}], ",", "3"}], "}"}], ",", "Delimiter", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "cr", ",", "True", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"True", ",", "False"}], "}"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"SaveDefinitions", "\[Rule]", "True"}]}], "]"}]], "Input", CellGroupingRules->{"GroupTogetherGrouping", 10000.}, CellChangeTimes->{ 3.35696210375764*^9, {3.35752210122034*^9, 3.35752214359561*^9}, { 3.35752226531514*^9, 3.35752228926842*^9}, {3.35752235620635*^9, 3.35752242656617*^9}, {3.35752260577044*^9, 3.35752268614596*^9}, 3.35752276733398*^9, {3.35752298692913*^9, 3.35752300630426*^9}, { 3.35752304607014*^9, 3.35752306874216*^9}, {3.35752311525808*^9, 3.35752321199307*^9}, {3.35752325943088*^9, 3.35752344083829*^9}, { 3.35752350551058*^9, 3.3575235091981*^9}, {3.35752354726084*^9, 3.35752354768272*^9}, {3.35752357971418*^9, 3.35752358074543*^9}, { 3.35752400921692*^9, 3.35752401756073*^9}, {3.35752404931093*^9, 3.35752405181095*^9}, {3.35752416151477*^9, 3.3575241620304*^9}, 3.35752419929627*^9, {3.35752423170272*^9, 3.35752424614032*^9}, { 3.35752431365637*^9, 3.35752431453138*^9}, {3.35752457456429*^9, 3.35752457501742*^9}, {3.35752462504899*^9, 3.35752462901777*^9}, { 3.35760041980149*^9, 3.35760042337968*^9}, {3.35818039231576*^9, 3.35818039558049*^9}, {3.35861068100713*^9, 3.35861068166338*^9}, { 3.36543062633482*^9, 3.36543071734404*^9}, {3.36543076724383*^9, 3.36543083475614*^9}, {3.36543088184595*^9, 3.36543088201382*^9}, 3.36543099678723*^9, {3.36543134212308*^9, 3.36543137622711*^9}, { 3.36543156597146*^9, 3.36543156928361*^9}, {3.377308553765625*^9, 3.3773085540625*^9}, {3.3778949408585873`*^9, 3.377894943026537*^9}, {3.3834184652808533`*^9, 3.383418469284449*^9}, 3.383418570871953*^9, {3.386004033259185*^9, 3.386004094227171*^9}, {3.389548223532127*^9, 3.389548228899419*^9}, 3.7610634205991297`*^9}, CellID->1496021318], Cell[BoxData[ TagBox[ StyleBox[ DynamicModuleBox[{$CellContext`a$$ = 20 Degree, $CellContext`b$$ = 0, $CellContext`cr$$ = True, $CellContext`d$$ = 0.4, $CellContext`z$$ = 11, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{{ Hold[$CellContext`b$$], 0, "position"}, 0, Pi}, {{ Hold[$CellContext`z$$], 11, "number of teeth"}, 4, 30, 1}, {{ Hold[$CellContext`a$$], 20 Degree, "tooth contact angle"}, 2 Degree, 0.5497787143782138}, {{ Hold[$CellContext`d$$], 0.4, "tooth deport"}, -0.5, 3}, {{ Hold[$CellContext`cr$$], True, "show construction lines"}, { True, False}}}, Typeset`size$$ = {420., {158., 189.}}, Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = False, $CellContext`b$91286$$ = 0, $CellContext`z$91287$$ = 0, $CellContext`a$91288$$ = 0, $CellContext`d$91289$$ = 0, $CellContext`cr$91290$$ = False}, DynamicBox[Manipulate`ManipulateBoxes[ 1, StandardForm, "Variables" :> {$CellContext`a$$ = 20 Degree, $CellContext`b$$ = 0, $CellContext`cr$$ = True, $CellContext`d$$ = 0.4, $CellContext`z$$ = 11}, "ControllerVariables" :> { Hold[$CellContext`b$$, $CellContext`b$91286$$, 0], Hold[$CellContext`z$$, $CellContext`z$91287$$, 0], Hold[$CellContext`a$$, $CellContext`a$91288$$, 0], Hold[$CellContext`d$$, $CellContext`d$91289$$, 0], Hold[$CellContext`cr$$, $CellContext`cr$91290$$, False]}, "OtherVariables" :> { Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$, Typeset`skipInitDone$$}, "Body" :> Quiet[ Labeled[ $CellContext`gearpict[$CellContext`z$$, $CellContext`a$$, 1, $CellContext`d$$, $CellContext`b$$, $CellContext`cr$$], Style[ Framed[ If[$CellContext`z$$ < \ $CellContext`minimalNumberOfCogs[$CellContext`a$$], "cog interference", "no cog interference"], Background -> RGBColor[1, 0.875, 0.537]], 12, "Label"], {Top}]], "Specifications" :> {{{$CellContext`b$$, 0, "position"}, 0, Pi}, Delimiter, {{$CellContext`z$$, 11, "number of teeth"}, 4, 30, 1}, {{$CellContext`a$$, 20 Degree, "tooth contact angle"}, 2 Degree, 0.5497787143782138}, {{$CellContext`d$$, 0.4, "tooth deport"}, -0.5, 3}, Delimiter, {{$CellContext`cr$$, True, "show construction lines"}, {True, False}}}, "Options" :> {}, "DefaultOptions" :> {ControllerLinking -> True}], ImageSizeCache->{465., {284., 290.}}, SingleEvaluation->True], Deinitialization:>None, DynamicModuleValues:>{}, Initialization:>({$CellContext`gearpict[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0], Pattern[$CellContext`beta, Blank[]], Pattern[$CellContext`cr, Blank[]]] := Module[{$CellContext`crem, $CellContext`rc, $CellContext`xc1 = RGBColor[0.6, 0.8, 0], $CellContext`xc2 = RGBColor[ 0.2307774471656367, 0.7663691157396811, 1.]}, $CellContext`crem = \ $CellContext`cremaillereReelle[$CellContext`z, $CellContext`a, \ $CellContext`m, $CellContext`deport]; $CellContext`rc = \ $CellContext`profilRoueComplete[$CellContext`z, $CellContext`a, \ $CellContext`m, $CellContext`deport]; Show[ Graphics[{$CellContext`xc1, Polygon[ Map[Dot[ $CellContext`matriceR[-$CellContext`beta], #]& , \ $CellContext`rc]], GrayLevel[0], Line[ Map[Dot[ $CellContext`matriceR[-$CellContext`beta], #]& , \ $CellContext`rc]], $CellContext`xc2, Polygon[ $CellContext`decalage[$CellContext`crem, {(3 Pi) $CellContext`m + ($CellContext`m \ ($CellContext`z/2)) $CellContext`beta, 0}]], GrayLevel[0], Line[ $CellContext`decalage[$CellContext`crem, {(3 Pi) $CellContext`m + ($CellContext`m \ ($CellContext`z/2)) $CellContext`beta, 0}]]}], If[$CellContext`cr, $CellContext`lignesConstruction[$CellContext`z, \ $CellContext`a, $CellContext`m], Graphics[{}]], PlotRange -> {{(-$CellContext`m) $CellContext`z + 2 $CellContext`m, $CellContext`m $CellContext`z + 2 $CellContext`m}/ 2, {-(($CellContext`m $CellContext`z + 2 $CellContext`m)/4), ($CellContext`m $CellContext`z + 2 $CellContext`m)/2}} 1.2, ImageSize -> {400, 300}, ImageMargins -> 10]], $CellContext`cremaillereReelle[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := Module[{$CellContext`p, $CellContext`dp, $CellContext`db, \ $CellContext`df, $CellContext`dk, $CellContext`dent}, \ {$CellContext`p, $CellContext`dp, $CellContext`db, $CellContext`df, \ $CellContext`dk} = $CellContext`dimGenerales[$CellContext`z, \ $CellContext`a, $CellContext`m]; $CellContext`dent := {{0, 0}, 1.25 {$CellContext`m Tan[$CellContext`a], $CellContext`m}, {$CellContext`p/ 2 - (1.25 $CellContext`m) Tan[$CellContext`a], 1.25 $CellContext`m}, {$CellContext`p/2 + $CellContext`m Tan[$CellContext`a], -$CellContext`m}, {$CellContext`p - \ $CellContext`m Tan[$CellContext`a], -$CellContext`m}}; Partition[ Flatten[{ Table[ $CellContext`decalage[$CellContext`dent, \ {$CellContext`x + ($CellContext`m $CellContext`deport) Tan[$CellContext`a], $CellContext`dp/ 2 + $CellContext`m $CellContext`deport}], \ {$CellContext`x, (-($CellContext`z + 2)) $CellContext`p, 0, $CellContext`p}], {$CellContext`p, $CellContext`dp/ 2 + 4 $CellContext`m}, {(-$CellContext`z) \ $CellContext`p, $CellContext`dp/2 + 4 $CellContext`m}}], 2]], $CellContext`dimGenerales[ Optional[ Pattern[$CellContext`z, Blank[]], 19], Optional[ Pattern[$CellContext`a, Blank[]], 20 Degree], Optional[ Pattern[$CellContext`m, Blank[]], 1]] := Module[{$CellContext`p, $CellContext`dp, $CellContext`db, \ $CellContext`df, $CellContext`dk}, $CellContext`p = Pi $CellContext`m; $CellContext`dp = $CellContext`m \ $CellContext`z; $CellContext`db = ($CellContext`m $CellContext`z) Cos[$CellContext`a]; $CellContext`df = $CellContext`dp - 2.5 $CellContext`m; $CellContext`dk = $CellContext`dp + 2 $CellContext`m; {$CellContext`p, $CellContext`dp, \ $CellContext`db, $CellContext`df, $CellContext`dk}], \ $CellContext`decalage[ Pattern[$CellContext`traj, Blank[]], Pattern[$CellContext`vecteur, Blank[]]] := Map[$CellContext`vecteur + #& , $CellContext`traj], \ $CellContext`profilRoueComplete[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := Module[{$CellContext`k}, $CellContext`uneDent = \ $CellContext`profilDentComplete[$CellContext`z, $CellContext`a, \ $CellContext`m, $CellContext`deport]; $CellContext`faireListeXY[{ Table[ Map[Dot[ $CellContext`matriceR[((-2) ( Pi/$CellContext`z)) $CellContext`k], #]& , \ $CellContext`uneDent], {$CellContext`k, 0, $CellContext`z - 1}], First[$CellContext`uneDent]}]], $CellContext`uneDent = \ CompressedData[" 1:eJwBMQPO/CFib1JlAgAAADIAAAACAAAAseCvQhHTtr9QuQqDuZgSQKYlhcpE uLO/A3+YTVmsFEBu6NNXiq2zv5U1NliGsxRAT14mqQpys78TK+Lc1cIUQKHI tKrs3LK/3kUpKDjaFEAkwkIBm8Wxv4vi0OqT+RRA8tdoK+QDsL+SNi1KxiAV QOLwptA04Kq/KqDC9qJPFUCyMxaiZsajv/5zJUn0hRVApWQIRpzblL+XZAhl e8MVQC4yFSUaRmc/yDJmYvAHFkBPNw5v9iigPybzr3wCUxZA3OXnvUH7sD+n 3eVHWKQWQH4gULuTkLs/y1F964/7FkDShWT9lPrDP9B+82I/WBdAWfMCoCUk yz9V9OjD9LkXQJ23/mnsqdE/ZkefiTYgGECMgWI93EvWP7/yruWDihhA57B7 dnd+2z/gqcgVVfgYQBNkAcnuo+A/EX1SvhtpGUD0rSVc2dbjP35srklD3BlA l/opMY1a5z8gYfVLMVEaQKfaBiZZMes/efbu6kXHGkBbD4bbRl3vP3gQDErc PRtAtMLq7NX47z8hMxJqIk8bQHnPqo4wM/U/p+NXuxoWG0CbkCZhm2X1P/AQ a2Va/xpACl16H7q/9j/jWDSyKWMaQMpO1dte8vc/tg/bH/zKGUCwqTabWv/4 P2+vyodXNxlAxAeoYpjo+T/dyQkquqgYQAgyr4kbsPo/VLOPYJofGEAFER7/ /Vf7PzX1DVhmnBdANktOgW7i+z+9T1POgx8XQKaP3MquUfw/Fe1q1k+pFkBM Yv20Eaj8Pw8xl6IeOhZAmX+KUPnn/D9aSkRUO9IVQK+V7PbUE/0/mVYL0udx FUBjHwlUHy79PyyK26NcGRVAz55falw5/T9VYlvVyMgUQORIhJIXOP0/DHWQ 3lGAFEDQZyh34Sz9PyL42JITQBRAhU3iDk4a/T+5mT4WIAgUQAqj55TyAv0/ J8Im2X/YE0A6Mu2BY+n8P87SYJoxsRNArfdehjLQ/D/zcY9vKpITQN1YIofs ufw/r3Hm01V7E0BnyBKeF6n8P+xhM72VbBNACPBmHzGg/D8GZSO3wmUTQHve dprQDPo/c1tz0i9sEUCH/n1u "], $CellContext`profilDentComplete[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := Module[{$CellContext`gamma, $CellContext`profComplet, \ $CellContext`prof2}, $CellContext`profComplet = \ $CellContext`profilDent[$CellContext`z, $CellContext`a, \ $CellContext`m, $CellContext`deport]; If[$CellContext`deport != 0, $CellContext`gamma = ( Pi ($CellContext`m/ 2) + ((2 $CellContext`m) $CellContext`deport) Tan[$CellContext`a]) ( 2/($CellContext`m $CellContext`z)), $CellContext`gamma = Pi/$CellContext`z]; If[$CellContext`deport > 0, $CellContext`profComplet = Select[$CellContext`profComplet, Apply[ArcTan, #] > Pi/2 - $CellContext`gamma/2& ]]; $CellContext`prof2 = Map[Dot[ $CellContext`matriceR[-$CellContext`gamma], {-Part[#, 1], Part[#, 2]}]& , $CellContext`profComplet]; \ $CellContext`uneDent = \ $CellContext`faireListeXY[{$CellContext`profComplet, Reverse[$CellContext`prof2]}]], $CellContext`profComplet = \ CompressedData[" 1:eJwBoQFe/iFib1JlAgAAABkAAAACAAAAseCvQhHTtr9QuQqDuZgSQKYlhcpE uLO/A3+YTVmsFEBu6NNXiq2zv5U1NliGsxRAT14mqQpys78TK+Lc1cIUQKHI tKrs3LK/3kUpKDjaFEAkwkIBm8Wxv4vi0OqT+RRA8tdoK+QDsL+SNi1KxiAV QOLwptA04Kq/KqDC9qJPFUCyMxaiZsajv/5zJUn0hRVApWQIRpzblL+XZAhl e8MVQC4yFSUaRmc/yDJmYvAHFkBPNw5v9iigPybzr3wCUxZA3OXnvUH7sD+n 3eVHWKQWQH4gULuTkLs/y1F964/7FkDShWT9lPrDP9B+82I/WBdAWfMCoCUk yz9V9OjD9LkXQJ23/mnsqdE/ZkefiTYgGECMgWI93EvWP7/yruWDihhA57B7 dnd+2z/gqcgVVfgYQBNkAcnuo+A/EX1SvhtpGUD0rSVc2dbjP35srklD3BlA l/opMY1a5z8gYfVLMVEaQKfaBiZZMes/efbu6kXHGkBbD4bbRl3vP3gQDErc PRtAtMLq7NX47z8hMxJqIk8bQBxew7c= "], $CellContext`profilDent[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := Module[{$CellContext`prof1, $CellContext`zlim, \ $CellContext`lp1, $CellContext`lp4, $CellContext`i, $CellContext`j, \ $CellContext`prof3, $CellContext`prof4, $CellContext`t, \ $CellContext`pr, $CellContext`pti, $CellContext`eqd}, \ $CellContext`zlim = $CellContext`nombreDentsLimite[$CellContext`a]; \ $CellContext`prof1 = $CellContext`rallongeProfil[ $CellContext`profilDentDev[$CellContext`z, \ $CellContext`a, $CellContext`m, $CellContext`deport], $CellContext`m \ ($CellContext`z/ 2) + $CellContext`m + $CellContext`m \ $CellContext`deport]; If[$CellContext`norme[ Part[$CellContext`prof1, 1]] < $CellContext`z ($CellContext`m/2) - 1.25 $CellContext`m + $CellContext`m $CellContext`deport, \ $CellContext`prof1 = Select[$CellContext`prof1, $CellContext`norme[#] > \ $CellContext`z ($CellContext`m/2) - 1.25 $CellContext`m + $CellContext`m \ $CellContext`deport& ]]; $CellContext`prof1 = Reverse[ $CellContext`rallongeProfil[ Reverse[$CellContext`prof1], $CellContext`z \ ($CellContext`m/2) - 1.25 $CellContext`m + $CellContext`m \ $CellContext`deport]]; If[ And[$CellContext`z > $CellContext`zlim, \ $CellContext`deport == 0], Print["no interfernce"]; $CellContext`profComplet = \ $CellContext`prof1, $CellContext`eqd = Evaluate[ $CellContext`devCercleGen[$CellContext`t, \ $CellContext`a, -$CellContext`m + $CellContext`m ($CellContext`deport/ Cos[$CellContext`a]), $CellContext`m \ $CellContext`z]]; $CellContext`pr = ParametricPlot[ Evaluate[$CellContext`eqd], {$CellContext`t, (-3) ( Pi/$CellContext`z), (-0.2)/$CellContext`z}, PlotPoints -> 20, MaxRecursion -> ControlActive[0, 6]]; $CellContext`prof3 = First[ Cases[$CellContext`pr, Line[ Pattern[$CellContext`u, Blank[]]] -> $CellContext`u, Infinity]]; $CellContext`prof4 = Select[$CellContext`prof3, Apply[ArcTan, # - {(-$CellContext`m) Tan[$CellContext`a], $CellContext`m ($CellContext`z/ 2) - $CellContext`m}] < Pi/2 - $CellContext`a 0.6& ]; $CellContext`i = 1; $CellContext`lp1 = Length[$CellContext`prof1] - 1; $CellContext`j = $CellContext`lp1; $CellContext`lp4 = Length[$CellContext`prof4] - 1; While[ Not[$CellContext`pti = $CellContext`interSegments[ Part[$CellContext`prof4, $CellContext`i], Part[$CellContext`prof4, $CellContext`i + 1], Part[$CellContext`prof1, $CellContext`j], Part[$CellContext`prof1, $CellContext`j + 1]]], If[$CellContext`i < $CellContext`lp4, Increment[$CellContext`i], If[$CellContext`j > 1, Decrement[$CellContext`j]; $CellContext`i = 1, Return[$CellContext`profComplet = $CellContext`prof1]; Null]]]; $CellContext`profComplet = Reverse[ $CellContext`faireListeXY[{ Reverse[ Take[$CellContext`prof1, -($CellContext`lp1 - \ $CellContext`j + 1)]], $CellContext`pti, Take[$CellContext`prof4, -($CellContext`lp4 - \ $CellContext`i + 1)]}]]; Null]; Return[$CellContext`profComplet]], \ $CellContext`nombreDentsLimite[ Pattern[$CellContext`a, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := Ceiling[2./Sin[$CellContext`a]^2], $CellContext`rallongeProfil[ Pattern[$CellContext`prof, Blank[]], Pattern[$CellContext`r, Blank[]]] := Module[{$CellContext`p1, $CellContext`p2}, {$CellContext`p1, \ $CellContext`p2} = Take[$CellContext`prof, -2]; Append[$CellContext`prof, Part[ $CellContext`interDroiteFonction[ Sqrt[$CellContext`r^2 - $CellContext`x^2], \ $CellContext`x, $CellContext`p1, $CellContext`p2 - $CellContext`p1], 2]]], $CellContext`interDroiteFonction[ Pattern[$CellContext`f, Blank[]], Pattern[$CellContext`x, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`d, Blank[]]] := Module[{$CellContext`eq, $CellContext`sol, $CellContext`l}, \ $CellContext`eq = {$CellContext`f == Part[$CellContext`a, 2] + $CellContext`l Part[$CellContext`d, 2], Part[$CellContext`a, 1] + $CellContext`l Part[$CellContext`d, 1] == $CellContext`x}; $CellContext`sol = Quiet[ FindRoot[$CellContext`eq, {{$CellContext`x, 0.01}, {$CellContext`l, -0.02}}]]; Return[ ReplaceAll[{$CellContext`x, $CellContext`a + \ $CellContext`l $CellContext`d}, $CellContext`sol]]], $CellContext`eq = \ {Sqrt[21.622500000000002` - $CellContext`x^2] == 5.175317171391176 - 0.00700775706867951 $CellContext`l, -0.07686676639778664 - 0.0001637010584446541 $CellContext`l == $CellContext`x}, \ $CellContext`sol = {$CellContext`x -> -0.089158133297931, \ $CellContext`l -> 75.0842237486202}, $CellContext`profilDentDev[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`m, Blank[]], Pattern[$CellContext`deport, Blank[]]] := Module[{$CellContext`t = $CellContext`a 1., $CellContext`prof = {}, $CellContext`pas = Pi/80, $CellContext`pt}, While[$CellContext`norme[$CellContext`pt = \ $CellContext`devCercle[$CellContext`t, $CellContext`a, \ ($CellContext`m $CellContext`z) Cos[$CellContext`a]]; $CellContext`pt] < \ $CellContext`m ($CellContext`z/ 2) + $CellContext`m + $CellContext`m \ $CellContext`deport, AppendTo[$CellContext`prof, $CellContext`pt]; SubtractFrom[$CellContext`t, $CellContext`pas]]; \ $CellContext`prof], $CellContext`norme[ Pattern[$CellContext`v, Blank[]]] := Sqrt[ Apply[Plus, $CellContext`v^2]], $CellContext`devCercle[ Pattern[$CellContext`t, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`db, Blank[]]] := ($CellContext`db/ 2) {(-(Tan[$CellContext`a] - $CellContext`t)) Cos[$CellContext`a - $CellContext`t] + Sin[$CellContext`a - $CellContext`t], ( Tan[$CellContext`a] - $CellContext`t) Sin[$CellContext`a - $CellContext`t] + Cos[$CellContext`a - $CellContext`t]}, \ $CellContext`devCercleGen[ Pattern[$CellContext`t, Blank[]], Pattern[$CellContext`a, Blank[]], Pattern[$CellContext`exc, Blank[]], Pattern[$CellContext`db, Blank[]]] := ($CellContext`db/2) { Sin[$CellContext`t] - $CellContext`t Cos[$CellContext`t], Cos[$CellContext`t] + $CellContext`t Sin[$CellContext`t]} + Dot[ $CellContext`matriceR[-$CellContext`t], { Tan[$CellContext`a], 1}] $CellContext`exc, $CellContext`matriceR[ Pattern[$CellContext`a, Blank[]]] := {{ Cos[$CellContext`a], -Sin[$CellContext`a]}, { Sin[$CellContext`a], Cos[$CellContext`a]}}, Attributes[ControlActive] = { HoldAll, ReadProtected}, $CellContext`interSegments[{ Pattern[$CellContext`ax, Blank[]], Pattern[$CellContext`ay, Blank[]]}, { Pattern[$CellContext`bx, Blank[]], Pattern[$CellContext`by, Blank[]]}, { Pattern[$CellContext`cx, Blank[]], Pattern[$CellContext`cy, Blank[]]}, { Pattern[$CellContext`dx, Blank[]], Pattern[$CellContext`dy, Blank[]]}] := Module[{$CellContext`lambda, $CellContext`mu}, \ $CellContext`lambda = ((-$CellContext`cy) $CellContext`dx + \ $CellContext`ay (-$CellContext`cx + $CellContext`dx) + \ $CellContext`ax ($CellContext`cy - $CellContext`dy) + $CellContext`cx \ $CellContext`dy)/($CellContext`by ($CellContext`cx - $CellContext`dx) + \ $CellContext`ay (-$CellContext`cx + $CellContext`dx) + \ ($CellContext`ax - $CellContext`bx) ($CellContext`cy - \ $CellContext`dy)); $CellContext`mu = ($CellContext`ay \ ($CellContext`bx - $CellContext`cx) + $CellContext`by $CellContext`cx - \ $CellContext`bx $CellContext`cy + $CellContext`ax (-$CellContext`by + \ $CellContext`cy))/($CellContext`by ($CellContext`cx - \ $CellContext`dx) + $CellContext`ay (-$CellContext`cx + \ $CellContext`dx) + ($CellContext`ax - $CellContext`bx) \ ($CellContext`cy - $CellContext`dy)); If[ And[ 0 <= $CellContext`lambda <= 1, 0 <= $CellContext`mu <= 1], {$CellContext`ax, $CellContext`ay} + \ $CellContext`lambda {$CellContext`bx - $CellContext`ax, \ $CellContext`by - $CellContext`ay}, False]], $CellContext`faireListeXY[ Pattern[$CellContext`bof, Blank[]]] := Partition[ Flatten[$CellContext`bof], 2], $CellContext`lignesConstruction[ Pattern[$CellContext`z, Blank[]], Pattern[$CellContext`a, Blank[]], Optional[ Pattern[$CellContext`m, Blank[]], 1]] := Module[{$CellContext`p, $CellContext`dp, $CellContext`db, \ $CellContext`df, $CellContext`dk}, {$CellContext`p, $CellContext`dp, \ $CellContext`db, $CellContext`df, $CellContext`dk} = \ $CellContext`dimGenerales[$CellContext`z, $CellContext`a, \ $CellContext`m]; Graphics[{ AbsoluteThickness[($CellContext`\ epaisseurTraitConstruction/25.4) 72], Opacity[0.5], Black, Dashed, Circle[{0, 0}, $CellContext`dp/2], Circle[{0, 0}, $CellContext`db/2], Circle[{0, 0}, $CellContext`dk/2], Circle[{0, 0}, $CellContext`df/2], Line[{{0, (-1.5) ($CellContext`db/2)}, { 0, 1.5 ($CellContext`db/2)}}], Line[{{-($CellContext`db/2), 0}, {$CellContext`db/2, 0}} 1.5], Line[{{0, $CellContext`dp/2} - ($CellContext`dp/2) { Cos[$CellContext`a], -Sin[$CellContext`a]}, { 0, $CellContext`dp/2} + ($CellContext`dp/2) { Cos[$CellContext`a], -Sin[$CellContext`a]}}], Line[{{-($CellContext`dp/2), $CellContext`dp/ 2}, {$CellContext`dp/2, $CellContext`dp/ 2}}]}]], $CellContext`epaisseurTraitConstruction = 0.35, Attributes[PlotRange] = { ReadProtected}, $CellContext`minimalNumberOfCogs[ Pattern[$CellContext`a, Blank[]], Optional[ Pattern[$CellContext`deport, Blank[]], 0]] := $CellContext`nombreDentsLimite[$CellContext`a, \ $CellContext`deport]}; Typeset`initDone$$ = True), SynchronousInitialization->True, UnsavedVariables:>{Typeset`initDone$$}, UntrackedVariables:>{Typeset`size$$}], "Manipulate", Deployed->True, StripOnInput->False], Manipulate`InterpretManipulate[1]]], "Output", CellGroupingRules->{"GroupTogetherGrouping", 10000.}, CellChangeTimes->{3.761063420599579*^9}, CellID->210630478] }, {5}]]