diff --git a/__test__/ALG/__snapshots__/region.test.ts.snap b/__test__/ALG/__snapshots__/region.test.ts.snap index a36adab28..9f6a1861f 100644 --- a/__test__/ALG/__snapshots__/region.test.ts.snap +++ b/__test__/ALG/__snapshots__/region.test.ts.snap @@ -1,8 +1,28 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`面域分析测试 1`] = `23`; +exports[`因为顶点精度问题导致的角度精度问题 1`] = `1`; -exports[`面域分析测试 2`] = `142`; +exports[`因为顶点精度问题导致的角度精度问题 2`] = `7`; + +exports[`因为顶点精度问题导致的角度精度问题 3`] = `"2180.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 4`] = `"1146.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 5`] = `"894.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 6`] = `"1146.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 7`] = `"1896.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 8`] = `"894.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 9`] = `"176.00000"`; + +exports[`因为顶点精度问题导致的角度精度问题 10`] = `"156.00000"`; + +exports[`面域分析测试 1`] = `22`; + +exports[`面域分析测试 2`] = `144`; exports[`面域分析测试 3`] = `"13179.30542"`; @@ -48,109 +68,109 @@ exports[`面域分析测试 23`] = `"12510.62589"`; exports[`面域分析测试 24`] = `"210.78347"`; -exports[`面域分析测试 25`] = `"364.25276"`; +exports[`面域分析测试 25`] = `"5.02745"`; -exports[`面域分析测试 26`] = `"5.02745"`; +exports[`面域分析测试 26`] = `"7.40909"`; -exports[`面域分析测试 27`] = `"7.40909"`; +exports[`面域分析测试 27`] = `"5.64163"`; -exports[`面域分析测试 28`] = `"5.64163"`; +exports[`面域分析测试 28`] = `"22.56687"`; exports[`面域分析测试 29`] = `"22.56687"`; -exports[`面域分析测试 30`] = `"22.56687"`; +exports[`面域分析测试 30`] = `"6.29260"`; -exports[`面域分析测试 31`] = `"6.29260"`; +exports[`面域分析测试 31`] = `"4.84802"`; -exports[`面域分析测试 32`] = `"4.84802"`; +exports[`面域分析测试 32`] = `"12.85409"`; exports[`面域分析测试 33`] = `"12.85409"`; -exports[`面域分析测试 34`] = `"12.85409"`; +exports[`面域分析测试 34`] = `"5.41894"`; -exports[`面域分析测试 35`] = `"5.41894"`; +exports[`面域分析测试 35`] = `"4.76118"`; -exports[`面域分析测试 36`] = `"4.76118"`; +exports[`面域分析测试 36`] = `"6.89609"`; -exports[`面域分析测试 37`] = `"6.89609"`; +exports[`面域分析测试 37`] = `"17.07107"`; exports[`面域分析测试 38`] = `"17.07107"`; exports[`面域分析测试 39`] = `"17.07107"`; -exports[`面域分析测试 40`] = `"17.07107"`; +exports[`面域分析测试 40`] = `"15.40312"`; -exports[`面域分析测试 41`] = `"15.40312"`; +exports[`面域分析测试 41`] = `"14.47419"`; -exports[`面域分析测试 42`] = `"14.47419"`; +exports[`面域分析测试 42`] = `"1188.92413"`; -exports[`面域分析测试 43`] = `"1188.92413"`; +exports[`面域分析测试 43`] = `"773.24901"`; -exports[`面域分析测试 44`] = `"773.24901"`; +exports[`面域分析测试 44`] = `"452.62475"`; -exports[`面域分析测试 45`] = `"452.62475"`; +exports[`面域分析测试 45`] = `"820.47616"`; -exports[`面域分析测试 46`] = `"820.47616"`; +exports[`面域分析测试 46`] = `"1188.92413"`; -exports[`面域分析测试 47`] = `"1188.92413"`; +exports[`面域分析测试 47`] = `"773.24901"`; -exports[`面域分析测试 48`] = `"773.24901"`; +exports[`面域分析测试 48`] = `"452.62475"`; -exports[`面域分析测试 49`] = `"452.62475"`; +exports[`面域分析测试 49`] = `"820.47616"`; -exports[`面域分析测试 50`] = `"820.47616"`; +exports[`面域分析测试 50`] = `"492.41588"`; -exports[`面域分析测试 51`] = `"492.41588"`; +exports[`面域分析测试 51`] = `"448.10890"`; -exports[`面域分析测试 52`] = `"448.10890"`; +exports[`面域分析测试 52`] = `"64.35392"`; -exports[`面域分析测试 53`] = `"64.35392"`; +exports[`面域分析测试 53`] = `"106.96167"`; -exports[`面域分析测试 54`] = `"106.96167"`; +exports[`面域分析测试 54`] = `"24.65353"`; -exports[`面域分析测试 55`] = `"24.65353"`; +exports[`面域分析测试 55`] = `"73.52590"`; -exports[`面域分析测试 56`] = `"73.52590"`; +exports[`面域分析测试 56`] = `"15.10137"`; -exports[`面域分析测试 57`] = `"15.10137"`; +exports[`面域分析测试 57`] = `"49.93390"`; -exports[`面域分析测试 58`] = `"49.93390"`; +exports[`面域分析测试 58`] = `"45.78225"`; -exports[`面域分析测试 59`] = `"45.78225"`; +exports[`面域分析测试 59`] = `"72.00000"`; -exports[`面域分析测试 60`] = `"72.00000"`; +exports[`面域分析测试 60`] = `"764.50552"`; exports[`面域分析测试 61`] = `"764.50552"`; -exports[`面域分析测试 62`] = `"764.50552"`; +exports[`面域分析测试 62`] = `"1457.01103"`; -exports[`面域分析测试 63`] = `"1493.01103"`; +exports[`面域分析测试 63`] = `"492.41588"`; -exports[`面域分析测试 64`] = `"492.41588"`; +exports[`面域分析测试 64`] = `"448.10890"`; -exports[`面域分析测试 65`] = `"448.10890"`; +exports[`面域分析测试 65`] = `"72.00000"`; exports[`面域分析测试 66`] = `"72.00000"`; -exports[`面域分析测试 67`] = `"72.00000"`; +exports[`面域分析测试 67`] = `"764.50552"`; -exports[`面域分析测试 68`] = `"257.58412"`; +exports[`面域分析测试 68`] = `"501.70674"`; exports[`面域分析测试 69`] = `"501.70674"`; -exports[`面域分析测试 70`] = `"501.70674"`; +exports[`面域分析测试 70`] = `"764.50552"`; -exports[`面域分析测试 71`] = `"764.50552"`; +exports[`面域分析测试 71`] = `"492.41588"`; -exports[`面域分析测试 72`] = `"492.41588"`; +exports[`面域分析测试 72`] = `"1194.21226"`; -exports[`面域分析测试 73`] = `"1194.21226"`; +exports[`面域分析测试 73`] = `"728.50552"`; exports[`面域分析测试 74`] = `"1194.21226"`; exports[`面域分析测试 75`] = `"448.10890"`; -exports[`面域分析测试 76`] = `"658.42139"`; +exports[`面域分析测试 76`] = `"294.16864"`; exports[`面域分析测试 77`] = `"470.92139"`; @@ -250,86 +270,88 @@ exports[`面域分析测试 124`] = `"406.14356"`; exports[`面域分析测试 125`] = `"501.70674"`; -exports[`面域分析测试 126`] = `"406.14356"`; +exports[`面域分析测试 126`] = `"370.14356"`; -exports[`面域分析测试 127`] = `"501.70674"`; +exports[`面域分析测试 127`] = `"406.14356"`; -exports[`面域分析测试 128`] = `"477.81595"`; +exports[`面域分析测试 128`] = `"501.70674"`; exports[`面域分析测试 129`] = `"477.81595"`; -exports[`面域分析测试 130`] = `"835.85030"`; +exports[`面域分析测试 130`] = `"477.81595"`; -exports[`面域分析测试 131`] = `"465.70674"`; +exports[`面域分析测试 131`] = `"835.85030"`; -exports[`面域分析测试 132`] = `"835.85030"`; +exports[`面域分析测试 132`] = `"465.70674"`; -exports[`面域分析测试 133`] = `"883.63189"`; +exports[`面域分析测试 133`] = `"835.85030"`; -exports[`面域分析测试 134`] = `"72.00000"`; +exports[`面域分析测试 134`] = `"883.63189"`; exports[`面域分析测试 135`] = `"72.00000"`; -exports[`面域分析测试 136`] = `"501.70674"`; +exports[`面域分析测试 136`] = `"72.00000"`; -exports[`面域分析测试 137`] = `"393.41236"`; +exports[`面域分析测试 137`] = `"501.70674"`; -exports[`面域分析测试 138`] = `"501.70674"`; +exports[`面域分析测试 138`] = `"393.41236"`; -exports[`面域分析测试 139`] = `"437.71933"`; +exports[`面域分析测试 139`] = `"501.70674"`; -exports[`面域分析测试 140`] = `"72.00000"`; +exports[`面域分析测试 140`] = `"437.71933"`; exports[`面域分析测试 141`] = `"72.00000"`; -exports[`面域分析测试 142`] = `"477.81595"`; +exports[`面域分析测试 142`] = `"72.00000"`; -exports[`面域分析测试 143`] = `"406.14356"`; +exports[`面域分析测试 143`] = `"477.81595"`; exports[`面域分析测试 144`] = `"406.14356"`; -exports[`面域分析测试 145`] = `"477.81595"`; +exports[`面域分析测试 145`] = `"406.14356"`; -exports[`面域分析测试 146`] = `"811.95950"`; +exports[`面域分析测试 146`] = `"477.81595"`; exports[`面域分析测试 147`] = `"811.95950"`; -exports[`面域分析测试 148`] = `"72.00000"`; +exports[`面域分析测试 148`] = `"811.95950"`; exports[`面域分析测试 149`] = `"72.00000"`; -exports[`面域分析测试 150`] = `"477.81595"`; +exports[`面域分析测试 150`] = `"72.00000"`; -exports[`面域分析测试 151`] = `"393.41236"`; +exports[`面域分析测试 151`] = `"477.81595"`; -exports[`面域分析测试 152`] = `"437.71933"`; +exports[`面域分析测试 152`] = `"393.41236"`; -exports[`面域分析测试 153`] = `"477.81595"`; +exports[`面域分析测试 153`] = `"437.71933"`; -exports[`面域分析测试 154`] = `"72.00000"`; +exports[`面域分析测试 154`] = `"477.81595"`; -exports[`面域分析测试 155`] = `"406.14356"`; +exports[`面域分析测试 155`] = `"72.00000"`; exports[`面域分析测试 156`] = `"406.14356"`; -exports[`面域分析测试 157`] = `"740.28711"`; +exports[`面域分析测试 157`] = `"406.14356"`; -exports[`面域分析测试 158`] = `"370.14356"`; +exports[`面域分析测试 158`] = `"740.28711"`; -exports[`面域分析测试 159`] = `"72.00000"`; +exports[`面域分析测试 159`] = `"370.14356"`; exports[`面域分析测试 160`] = `"72.00000"`; -exports[`面域分析测试 161`] = `"393.41236"`; +exports[`面域分析测试 161`] = `"72.00000"`; -exports[`面域分析测试 162`] = `"406.14356"`; +exports[`面域分析测试 162`] = `"393.41236"`; exports[`面域分析测试 163`] = `"406.14356"`; -exports[`面域分析测试 164`] = `"437.71933"`; +exports[`面域分析测试 164`] = `"406.14356"`; + +exports[`面域分析测试 165`] = `"437.71933"`; -exports[`面域分析测试 165`] = `"72.00000"`; +exports[`面域分析测试 166`] = `"72.00000"`; -exports[`面域分析测试 166`] = `"393.41236"`; +exports[`面域分析测试 167`] = `"393.41236"`; -exports[`面域分析测试 167`] = `"437.71933"`; +exports[`面域分析测试 168`] = `"437.71933"`; diff --git a/__test__/ALG/curves2.json b/__test__/ALG/curves2.json new file mode 100644 index 000000000..8bda0d73e --- /dev/null +++ b/__test__/ALG/curves2.json @@ -0,0 +1 @@ +{"file":[23,"Line",8,2,100,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56741.82975158134,0,39767.41154335105],[56741.82975158134,0,39697.41154335105],"Line",8,2,101,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56741.82975158134,0,39697.41154335105],[56741.82975158133,0,39142.4115433511],"Line",8,2,102,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39767.41154335105],[56741.82975158134,0,39767.41154335105],"Line",8,2,103,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39767.41154335105],[56723.82975158134,0,39715.41154335105],"Line",8,2,104,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39715.41154335105],[56723.82975158134,0,39697.41154335105],"Line",8,2,105,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39697.41154335105],[56723.82975158134,0,39679.41154335105],"Line",8,2,106,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39679.41154335105],[56723.82975158134,0,39160.4115433511],"Line",8,2,107,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39160.4115433511],[56723.82975158134,0,39142.4115433511],"Line",8,2,108,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56276.82975158123,0,39697.41154335105],[56294.82975158132,0,39697.41154335105],"Line",8,2,109,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39697.41154335105],[56663.82975158123,0,39697.41154335105],"Line",8,2,110,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56663.82975158123,0,39697.41154335105],[56723.82975158134,0,39697.41154335105],"Line",8,2,111,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39697.41154335105],[56741.82975158134,0,39697.41154335105],"Line",8,2,112,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56663.82975158123,0,39715.41154335105],[56663.82975158123,0,39697.41154335105],"Line",8,2,113,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39697.41154335105],[56294.82975158132,0,39679.41154335107],"Line",8,2,114,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39679.41154335107],[56294.82975158132,0,39160.41154335104],"Line",8,2,115,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39160.41154335104],[56294.82975158132,0,39142.4115433511],"Line",8,2,116,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56276.82975158134,0,39697.41154335105],[56276.8297515814,0,39142.4115433511],"Line",8,2,117,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56276.8297515814,0,39142.411543351074],[56294.82975158132,0,39142.411543351074],"Line",8,2,118,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39142.411543351074],[56723.82975158134,0,39142.4115433511],"Line",8,2,119,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56723.82975158134,0,39142.4115433511],[56741.82975158134,0,39142.4115433511],"Line",8,2,120,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158135,0,39679.41154335107],[56723.82975158134,0,39679.41154335105],"Line",8,2,121,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56294.82975158132,0,39160.41154335104],[56723.82975158134,0,39160.4115433511],"Line",8,2,122,false,1,7,0,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,0,true,[-1,0,0,0,0,0,1,0,0,1,0,0,56741.82975158133,-39142.4115433511,0,1],0,1,[56663.82975158135,0,39715.41154335105],[56723.82975158122,0,39715.41154335105]],"basePt":{"x":-7.275957614183426e-12,"y":-2.9103830456733704e-11,"z":0}} \ No newline at end of file diff --git a/__test__/ALG/region.test.ts b/__test__/ALG/region.test.ts index 2a174d781..6119a9bc9 100644 --- a/__test__/ALG/region.test.ts +++ b/__test__/ALG/region.test.ts @@ -18,3 +18,17 @@ test('面域分析测试', () => expect(pl.Length).toMatchNumberSnapshot(); } }); + +test('因为顶点精度问题导致的角度精度问题', () => +{ + let cus = LoadCurvesFromFileData(require("./curves2.json")); + let reg = new RegionParse(cus); + expect(reg.RegionsOutline.length).toMatchSnapshot(); + expect(reg.RegionsInternal.length).toMatchSnapshot(); + + for (let routes of [...reg.RegionsOutline, ...reg.RegionsInternal]) + { + let pl = Polyline.Combine(routes.map(r => r.curve), 1e-3); + expect(pl.Length).toMatchNumberSnapshot(); + } +}); diff --git a/src/Add-on/twoD2threeD/Command_Curve2Polyline.ts b/src/Add-on/twoD2threeD/Command_Curve2Polyline.ts index bb41f59b4..72a86c0ce 100644 --- a/src/Add-on/twoD2threeD/Command_Curve2Polyline.ts +++ b/src/Add-on/twoD2threeD/Command_Curve2Polyline.ts @@ -154,7 +154,7 @@ export class Command_Curve2Polyline implements Command let parse = new RegionParse(curves2); for (let rs of parse.RegionsInternal) - this.Draw(rs, group.ocs, true); + this.Draw(rs, group.ocs, this.IsOnlySaveSmall); if (this.IsSaveMax) for (let rs of parse.RegionsOutline) @@ -251,7 +251,7 @@ export function CurveInOCS(curve: Curve, Ocs: Matrix4, OcsInv: Matrix4): boolean let cus = curve.Explode(); return cus.every(c => { - return this.CurveInOCS(c, Ocs, OcsInv); + return CurveInOCS(c, Ocs, OcsInv); }); } } diff --git a/src/Geometry/CurveMap.ts b/src/Geometry/CurveMap.ts index 95156e41f..8deaa4a9f 100644 --- a/src/Geometry/CurveMap.ts +++ b/src/Geometry/CurveMap.ts @@ -61,7 +61,7 @@ export class CurveMap * @param [removeDuplicate=false] * @returns 加入成功? */ - AddCurveToMap(curve: Curve, isArc: boolean = curve instanceof Arc, removeDuplicate: boolean = false): boolean + AddCurveToMap(curve: Curve, isArc: boolean = curve instanceof Arc, removeDuplicate: boolean = false, parseAngle = false): boolean { let sp = curve.StartPoint; let ep = curve.EndPoint; @@ -92,9 +92,9 @@ export class CurveMap let routeS2E: Route = { curve, isReverse: false, length, from: startS, to: endS, s: sp, e: ep }; let routeE2S: Route = { curve, isReverse: true, length, from: endS, to: startS, e: sp, s: ep }; - if (!isArc) + if (!isArc && parseAngle) { - let an = angle(ep.clone().sub(sp)); + let an = angle(endS.position.clone().sub(startS.position)); routeS2E.an = an; routeE2S.an = clampRad(an + Math.PI); } diff --git a/src/Geometry/RegionParse.ts b/src/Geometry/RegionParse.ts index 06d0b04fa..6c741b3f9 100644 --- a/src/Geometry/RegionParse.ts +++ b/src/Geometry/RegionParse.ts @@ -189,15 +189,15 @@ export class RegionParse let arcs = this.BreakArc(cu); if (arcs.length > 1) { - arcs.forEach(a => curveMap.AddCurveToMap(a, true, this.removeDuplicate)); + arcs.forEach(a => curveMap.AddCurveToMap(a, true, this.removeDuplicate, true)); this.ExpLineMap.set(cu, arcs); continue; } else - curveMap.AddCurveToMap(cu, true, this.removeDuplicate); + curveMap.AddCurveToMap(cu, true, this.removeDuplicate, true); } else - curveMap.AddCurveToMap(cu, false, this.removeDuplicate); + curveMap.AddCurveToMap(cu, false, this.removeDuplicate, true); } //排序,根据角度逆时针排序.