ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/SuperFace.vb
(Generate patch)

Comparing magicsld/SuperFace.vb (file contents):
Revision 130 by bournival, Wed Jul 30 21:26:03 2008 UTC vs.
Revision 205 by bournival, Thu Jul 23 20:53:57 2009 UTC

# Line 9 | Line 9 | Public Class SuperFace
9      Private Shared compteur As Long
10      Private Shared no As Long
11  
12 +
13      Friend Flag As Integer = 0 ' = 20 si on a une coupeLong
14  
15  
# Line 750 | Line 751 | Public Class SuperFace
751      ''' <param name="inter"></param>
752      ''' <param name="MettreFI"></param>
753      ''' <returns></returns>
754 <    ''' <remarks></remarks>
755 <    Protected Function DessineSectionPoutre(ByRef Poutre As SlyAretePoutre, ByVal TranslationX As Double, ByVal TranslationY As Double, ByVal numero As Integer, ByRef swSketch As sldworks.Sketch, ByRef inter As InterAreteFace, ByRef MettreFI As Boolean) As Double()
754 >    ''' <remarks>Si Flag = 2 alors on met une faceInterne ET une mini-poutre</remarks>
755 >    Protected Function DessineSectionPoutre(ByRef Poutre As SlyAretePoutre, ByVal TranslationX As Double, ByVal TranslationY As Double, ByVal numero As Integer, ByRef swSketch As sldworks.Sketch, ByRef inter As InterAreteFace, ByRef MettreFI As Boolean, ByRef autreSection As Boolean, ByRef AjouterMiniPoutre As Boolean) As Double()
756          ' le sketch est déjà inséré, il faut juste mettre des swmodel.line ou autre
757          ' doit retourner r() qui est un point situé à l'intérieur de la coupe
758          Dim sketchline As sldworks.SketchSegment
# Line 805 | Line 806 | Public Class SuperFace
806                      r(1) = inter.y + 5000 * Epsilon * IP(1)
807                      r(2) = inter.z + 5000 * Epsilon * IP(2)
808  
809 +                    autreSection = True
810 +                    AjouterMiniPoutre = False
811 +                    MettreFI = True
812 +
813                  Case 2
814                      ReDim Ligne(19)
815  
# Line 838 | Line 843 | Public Class SuperFace
843                      r(1) = inter.y - 5000 * Epsilon * IP(1)
844                      r(2) = inter.z - 5000 * Epsilon * IP(2)
845  
846 +                    autreSection = False
847 +                    AjouterMiniPoutre = False
848 +                    MettreFI = True
849              End Select
850 <            MettreFI = True
850 >
851 >
852          ElseIf Left(Nomsection, 2) = "ST" Or Nomsection = " Tube carré générique" Then ' tube carré troué
853              Dim P(3, 1) As Double
854              Select Case numero
# Line 853 | Line 862 | Public Class SuperFace
862                      P(3, 0) = P(2, 0)
863                      P(3, 1) = P(0, 1)
864  
865 <                    r(0) = P(0, 0) - 1000 * Epsilon
865 >                    r(0) = Poutre.GetD1 / 2 - Poutre.GetD3 / 2
866                      r(1) = 0 : r(2) = 0
867                      Outils_Math.Rotation2D(pt3, r(0), r(1))
868                      r(0) += TranslationX
# Line 875 | Line 884 | Public Class SuperFace
884                      Ligne(8) = P(2, 0) : Ligne(9) = P(2, 1) : Ligne(10) = P(3, 0) : Ligne(11) = P(3, 1)
885                      Ligne(12) = P(3, 0) : Ligne(13) = P(3, 1) : Ligne(14) = P(0, 0) : Ligne(15) = P(0, 1)
886                      MettreFI = False
887 +                    autreSection = True
888 +                    AjouterMiniPoutre = False
889  
890                  Case 2
891                      P(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
# Line 886 | Line 897 | Public Class SuperFace
897                      P(3, 0) = P(2, 0)
898                      P(3, 1) = P(0, 1)
899  
900 <                    r(0) = P(0, 0) + 1000 * Epsilon
900 >                    r(0) = Poutre.GetD1 / 2 - Poutre.GetD3 / 2
901                      r(1) = 0 : r(2) = 0
902                      Outils_Math.Rotation2D(pt3, r(0), r(1))
903                      r(0) += TranslationX
# Line 909 | Line 920 | Public Class SuperFace
920                      Ligne(12) = P(3, 0) : Ligne(13) = P(3, 1) : Ligne(14) = P(0, 0) : Ligne(15) = P(0, 1)
921  
922                      MettreFI = True  ' lorsque l'on sort on met une face interne
923 +                    autreSection = False
924 +                    AjouterMiniPoutre = True
925  
926              End Select
927  
# Line 957 | Line 970 | Public Class SuperFace
970                      r(0) = inter.x + 5000 * Epsilon * IP(0)
971                      r(1) = inter.y + 5000 * Epsilon * IP(1)
972                      r(2) = inter.z + 5000 * Epsilon * IP(2)
973 +                    autreSection = True
974 +                    AjouterMiniPoutre = False
975 +                    MettreFI = True
976                  Case 2
977  
978                      Dim d As Double
# Line 1000 | Line 1016 | Public Class SuperFace
1016                      r(0) = inter.x - 5000 * Epsilon * IP(0)
1017                      r(1) = inter.y - 5000 * Epsilon * IP(1)
1018                      r(2) = inter.z - 5000 * Epsilon * IP(2)
1019 <
1019 >                    autreSection = False
1020 >                    AjouterMiniPoutre = False
1021 >                    MettreFI = True
1022              End Select
1023              MettreFI = True
1024  
# Line 1042 | Line 1060 | Public Class SuperFace
1060                      swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(1, 0), p(1, 1), 0, p(3, 0), p(3, 1), 0, 1)
1061                      swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(0, 0), p(0, 1), 0, p(2, 0), p(2, 1), 0, 1)
1062                      MettreFI = True
1063 <                    'Flag = 2
1063 >                    autreSection = True
1064 >                    AjouterMiniPoutre = False
1065 >
1066                  Case 2
1067  
1068                      r(0) = 0
# Line 1067 | Line 1087 | Public Class SuperFace
1087                      swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(1, 0), p(1, 1), 0, p(3, 0), p(3, 1), 0, -1)
1088                      swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(0, 0), p(0, 1), 0, p(2, 0), p(2, 1), 0, -1)
1089                      'MettreFI = True  ' lorsque l'on sort on met une face interne
1090 <                    MettreFI = False
1091 <                    Me.Flag = 2
1092 <                    'Case 1 ' le cercle extérieur
1093 <                    '    swModel.CreateCircleByRadius2(TranslationX, TranslationY, 0, Poutre.GetD1 / 2)
1074 <                    '    MettreFI = False
1075 <                    '    r(0) = 0 : r(1) = 0 : r(2) = 0
1076 <                    '    r = Commun.TransfertSketchToModel(swSketch, r)
1077 <                    'Case 2
1078 <                    '    swModel.CreateCircleByRadius2(TranslationX, TranslationY, 0, (Poutre.GetD1 / 2) - Poutre.GetD3)
1079 <                    '    r(0) = (Poutre.GetD1 / 2 - (Poutre.GetD3 / 2))
1080 <                    '    r(1) = 0 : r(2) = 0
1081 <                    '    r = Commun.TransfertSketchToModel(swSketch, r)
1082 <                    '    MettreFI = True
1090 >                    MettreFI = true
1091 >                    autreSection = False
1092 >                    AjouterMiniPoutre = True
1093 >
1094              End Select
1095  
1096          ElseIf Left(Poutre.GetNomSection, 2) = "Cy" Or Nomsection = " Cylindrique (Rod) générique" Then ' Pipe,
# Line 1115 | Line 1126 | Public Class SuperFace
1126                      Ligne(0) = P(0, 0) : Ligne(1) = P(0, 1) : Ligne(2) = P(1, 0) : Ligne(3) = P(1, 1)
1127                      Ligne(4) = P(0, 0) : Ligne(5) = P(0, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1128                      swModel.CreateArc2(P(0, 0), P(0, 1), 0, P(1, 0), P(1, 1), 0, P(2, 0), P(2, 1), 0, 1) ' le dernier param est la direction.  1 ou -1
1129 <
1129 >                    autreSection = True
1130 >                    AjouterMiniPoutre = False
1131 >                    MettreFI = True
1132                  Case 2
1133                      r(0) = P(0, 0) - 1000 * Epsilon
1134                      r(1) = 0 : r(2) = 0
# Line 1137 | Line 1150 | Public Class SuperFace
1150                      Ligne(4) = P(0, 0) : Ligne(5) = P(0, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1151  
1152                      swModel.CreateArc2(P(0, 0), P(0, 1), 0, P(1, 0), P(1, 1), 0, P(2, 0), P(2, 1), 0, -1) ' le dernier param est la direction.  1 ou -1
1153 <
1153 >                    autreSection = False
1154 >                    AjouterMiniPoutre = False
1155 >                    MettreFI = True
1156              End Select
1157              MettreFI = True
1158  
# Line 1145 | Line 1160 | Public Class SuperFace
1160          ElseIf Left(Nomsection, 1) = "C" Or Nomsection = " Poutre en C générique" Then ' le channel
1161              Dim P(7, 1) As Double
1162  
1163 <            Select Case numero
1164 <                Case 1 ' le C au complet
1165 <
1166 <                    P(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
1167 <                    P(0, 1) = Poutre.GetD5
1168 <                    P(1, 0) = P(0, 0)
1169 <                    P(1, 1) = Poutre.GetD5 + Poutre.GetD4 - Poutre.GetD2
1170 <                    P(2, 0) = Poutre.GetD1 / 2
1171 <                    P(2, 1) = P(1, 1)
1172 <                    P(3, 0) = P(2, 0)
1173 <                    P(3, 1) = P(1, 1) + Poutre.GetD2
1174 <                    P(4, 0) = -P(3, 0)
1175 <                    P(4, 1) = P(3, 1)
1176 <                    P(5, 0) = P(4, 0)
1177 <                    P(5, 1) = P(1, 1)
1178 <                    P(6, 0) = -P(1, 0)
1179 <                    P(6, 1) = P(5, 1)
1180 <                    P(7, 0) = -P(0, 0)
1181 <                    P(7, 1) = P(0, 1)
1182 <
1183 <                    r(0) = P(0, 0) + 1000 * Epsilon
1184 <                    r(1) = P(0, 1) : r(2) = 0
1185 <                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1186 <                    r(0) += TranslationX
1187 <                    r(1) += TranslationY
1188 <                    r = Commun.TransfertSketchToModel(swSketch, r)
1163 >            P(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
1164 >            P(0, 1) = Poutre.GetD5
1165 >            P(1, 0) = P(0, 0)
1166 >            P(1, 1) = Poutre.GetD5 + Poutre.GetD4 - Poutre.GetD2
1167 >            P(2, 0) = Poutre.GetD1 / 2
1168 >            P(2, 1) = P(1, 1)
1169 >            P(3, 0) = P(2, 0)
1170 >            P(3, 1) = P(1, 1) + Poutre.GetD2
1171 >            P(4, 0) = -P(3, 0)
1172 >            P(4, 1) = P(3, 1)
1173 >            P(5, 0) = P(4, 0)
1174 >            P(5, 1) = P(1, 1)
1175 >            P(6, 0) = -P(1, 0)
1176 >            P(6, 1) = P(5, 1)
1177 >            P(7, 0) = -P(0, 0)
1178 >            P(7, 1) = P(0, 1)
1179 >
1180 >            r(0) = P(0, 0) + 1000 * Epsilon
1181 >            r(1) = P(0, 1) : r(2) = 0
1182 >            Outils_Math.Rotation2D(pt3, r(0), r(1))
1183 >            r(0) += TranslationX
1184 >            r(1) += TranslationY
1185 >            r = Commun.TransfertSketchToModel(swSketch, r)
1186 >
1187 >            pt3(0) -= TranslationX
1188 >            pt3(1) -= TranslationY
1189 >            pt3(0) /= longueur : pt3(1) /= longueur
1190 >            For i = 0 To 7
1191 >                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1192 >                P(i, 0) += TranslationX
1193 >                P(i, 1) += TranslationY
1194 >            Next i
1195  
1196 <                    pt3(0) -= TranslationX
1197 <                    pt3(1) -= TranslationY
1198 <                    pt3(0) /= longueur : pt3(1) /= longueur
1199 <                    For i = 0 To 7
1200 <                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1180 <                        P(i, 0) += TranslationX
1181 <                        P(i, 1) += TranslationY
1182 <                    Next i
1196 >            ReDim Ligne(35)
1197 >            For i = 0 To 6
1198 >                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1199 >            Next i
1200 >            Ligne(28) = P(7, 0) : Ligne(29) = P(7, 1) : Ligne(30) = P(0, 0) : Ligne(31) = P(0, 1)
1201  
1202 <                    ReDim Ligne(35)
1203 <                    For i = 0 To 6
1204 <                        Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1187 <                    Next i
1188 <                    Ligne(28) = P(7, 0) : Ligne(29) = P(7, 1) : Ligne(30) = P(0, 0) : Ligne(31) = P(0, 1)
1202 >            MettreFI = True
1203 >            autreSection = False
1204 >            AjouterMiniPoutre = True
1205  
1190                    MettreFI = False
1191                    Me.Flag = 2
1192                Case 2
1193                    MettreFI = False ' Attention, peut planter à cause de ça.
1194            End Select
1206  
1207          ElseIf Left(Nomsection, 1) = "L" Or Nomsection = " Poutre en L générique" Then ' l'Angle en L
1208              Dim P(5, 1) As Double
1209  
1210 <            Select Case numero
1211 <                Case 1 ' le C au complet
1212 <
1213 <                    P(0, 0) = -Poutre.GetD5 + Poutre.GetD1
1214 <                    P(0, 1) = -Poutre.GetD6 + Poutre.GetD4
1215 <                    P(1, 0) = -Poutre.GetD5 + Poutre.GetD3
1216 <                    P(1, 1) = P(0, 1)
1217 <                    P(2, 0) = P(1, 0)
1218 <                    P(2, 1) = -Poutre.GetD6 + Poutre.GetD2
1219 <                    P(3, 0) = -Poutre.GetD5
1220 <                    P(3, 1) = P(2, 1)
1221 <                    P(4, 0) = P(3, 0)
1222 <                    P(4, 1) = -Poutre.GetD6
1223 <                    P(5, 0) = P(0, 0)
1224 <                    P(5, 1) = P(4, 1)
1225 <
1226 <                    r(0) = P(1, 0) - 1000 * Epsilon
1227 <                    r(1) = 0 : r(2) = 0
1228 <                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1229 <                    r(0) += TranslationX
1230 <                    r(1) += TranslationY
1231 <                    r = Commun.TransfertSketchToModel(swSketch, r)
1232 <
1233 <                    pt3(0) -= TranslationX
1234 <                    pt3(1) -= TranslationY
1235 <                    pt3(0) /= longueur : pt3(1) /= longueur
1236 <                    For i = 0 To 5
1237 <                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1227 <                        P(i, 0) += TranslationX
1228 <                        P(i, 1) += TranslationY
1229 <                    Next i
1230 <
1231 <                    ReDim Ligne(35)
1232 <                    For i = 0 To 4
1233 <                        Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1234 <                    Next i
1235 <                    Ligne(20) = P(5, 0) : Ligne(21) = P(5, 1) : Ligne(22) = P(0, 0) : Ligne(23) = P(0, 1)
1210 >            P(0, 0) = -Poutre.GetD5 + Poutre.GetD1
1211 >            P(0, 1) = -Poutre.GetD6 + Poutre.GetD4
1212 >            P(1, 0) = -Poutre.GetD5 + Poutre.GetD3
1213 >            P(1, 1) = P(0, 1)
1214 >            P(2, 0) = P(1, 0)
1215 >            P(2, 1) = -Poutre.GetD6 + Poutre.GetD2
1216 >            P(3, 0) = -Poutre.GetD5
1217 >            P(3, 1) = P(2, 1)
1218 >            P(4, 0) = P(3, 0)
1219 >            P(4, 1) = -Poutre.GetD6
1220 >            P(5, 0) = P(0, 0)
1221 >            P(5, 1) = P(4, 1)
1222 >
1223 >            r(0) = P(1, 0) - 1000 * Epsilon
1224 >            r(1) = 0 : r(2) = 0
1225 >            Outils_Math.Rotation2D(pt3, r(0), r(1))
1226 >            r(0) += TranslationX
1227 >            r(1) += TranslationY
1228 >            r = Commun.TransfertSketchToModel(swSketch, r)
1229 >
1230 >            pt3(0) -= TranslationX
1231 >            pt3(1) -= TranslationY
1232 >            pt3(0) /= longueur : pt3(1) /= longueur
1233 >            For i = 0 To 5
1234 >                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1235 >                P(i, 0) += TranslationX
1236 >                P(i, 1) += TranslationY
1237 >            Next i
1238  
1239 <                    MettreFI = False  ' lorsque l'on sort on met une face interne
1240 <                    Me.Flag = 2
1241 <                Case 2
1242 <                    MettreFI = False ' Attention, peut planter à cause de ça.
1243 <            End Select
1239 >            ReDim Ligne(35)
1240 >            For i = 0 To 4
1241 >                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1242 >            Next i
1243 >            Ligne(20) = P(5, 0) : Ligne(21) = P(5, 1) : Ligne(22) = P(0, 0) : Ligne(23) = P(0, 1)
1244  
1245 +            autreSection = False
1246 +            AjouterMiniPoutre = True
1247 +            MettreFI = True
1248  
1249          ElseIf Left(Nomsection, 1) = "T" Or Nomsection = " Poutre en T générique" Then ' le T
1250              Select Case numero
# Line 1289 | Line 1294 | Public Class SuperFace
1294                          Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1295                      Next i
1296                      Ligne(32) = P(8, 0) : Ligne(33) = P(8, 1) : Ligne(34) = P(0, 0) : Ligne(35) = P(0, 1)
1297 <
1297 >                    autreSection = True
1298 >                    AjouterMiniPoutre = False
1299 >                    MettreFI = True
1300                  Case 2
1301                      Dim P(4, 1) As Double
1302                      Dim d As Double
# Line 1328 | Line 1335 | Public Class SuperFace
1335                          Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1336                      Next i
1337                      Ligne(16) = P(4, 0) : Ligne(17) = P(4, 1) : Ligne(18) = P(0, 0) : Ligne(19) = P(0, 1)
1338 +                    autreSection = False
1339 +                    AjouterMiniPoutre = False
1340 +                    MettreFI = True
1341 +            End Select
1342 +  
1343 +
1344 +        Else
1345 +            MsgBox("Section de poutre non reconnu!", MsgBoxStyle.Critical, "Commun.DessineSectionPoutre")
1346 +        End If
1347 +
1348 +
1349 +        If Not Ligne Is Nothing Then
1350 +            For i = 0 To UBound(Ligne) Step 4
1351 +                sketchline = swModel.CreateLine2(Ligne(i), Ligne(i + 1), 0, Ligne(i + 2), Ligne(i + 3), 0)
1352 +            Next i
1353 +        End If
1354 +
1355 +        Return r
1356 +
1357 +    End Function
1358 +
1359 +
1360 +
1361 +
1362 +    ''' <summary>
1363 +    ''' Sub qui dessine (insère des lignes) sur le sketch en fonction de la forme de la poutre.
1364 +    ''' </summary>
1365 +    ''' <param name="Poutre"></param>
1366 +    ''' <param name="TranslationX"></param>
1367 +    ''' <param name="TranslationY"></param>
1368 +    ''' <param name="numero">Si on doit découper (pipe et cercle) alors le # nous donne le numéro de l'ittération </param>
1369 +    ''' <param name="swSketch"></param>
1370 +    ''' <param name="inter"></param>
1371 +    ''' <param name="MettreFI"></param>
1372 +    ''' <returns></returns>
1373 +    ''' <remarks>C'est la version simple, donc une seule face nécessaire</remarks>
1374 +    Protected Function DessineSectionPoutreSimple(ByRef Poutre As SlyAretePoutre, ByVal TranslationX As Double, ByVal TranslationY As Double, ByVal numero As Integer, ByRef swSketch As sldworks.Sketch, ByRef inter As InterAreteFace, ByRef MettreFI As Boolean, ByRef AutreSection As Boolean, ByRef AjouterMiniPoutre As Boolean) As Double()
1375 +        ' le sketch est déjà inséré, il faut juste mettre des swmodel.line ou autre
1376 +        ' doit retourner r() qui est un point situé à l'intérieur de la coupe
1377 +        Dim sketchline As sldworks.SketchSegment
1378 +        Dim longueur As Double
1379 +        Dim r(2) As Double
1380 +        Dim sk(1) As Double
1381 +        Dim i As Integer
1382 +        Dim Ligne() As Double = Nothing ' liste des lignes (4 valeurs par ligne)
1383 +        Dim pt3() As Double
1384 +        Dim Nomsection As String
1385 +
1386 +
1387 +        ' on doit activer le sketch avant d'utiliser la fonction getactivesketch
1388 +        pt3 = Poutre.GetPoint3
1389 +        longueur = Math.Sqrt(pt3(0) * pt3(0) + pt3(1) * pt3(1))
1390 +        Dim IP(2) As Double ' IP est le vecteur directionnel
1391 +        IP(0) = pt3(0) - inter.x : IP(1) = pt3(1) - inter.y : IP(2) = pt3(2) - inter.z
1392 +
1393 +
1394 +        pt3 = Commun.TransfertModelSketch(swSketch, pt3)
1395 +        longueur = Math.Sqrt(pt3(0) * pt3(0) + pt3(1) * pt3(1))
1396 +
1397 +        Nomsection = Poutre.GetNomSection
1398 +        If Nomsection = "Rectangle" Or Nomsection = " Rectangle générique" Then ' un rectangle
1399 +            Dim P(3, 1) As Double
1400 +            P(0, 0) = Poutre.GetD1 / 2
1401 +            P(0, 1) = Poutre.GetD2 / 2
1402 +            P(1, 0) = -Poutre.GetD1 / 2
1403 +            P(1, 1) = Poutre.GetD2 / 2
1404 +            P(2, 0) = -Poutre.GetD1 / 2
1405 +            P(2, 1) = -Poutre.GetD2 / 2
1406 +            P(3, 0) = Poutre.GetD1 / 2
1407 +            P(3, 1) = -Poutre.GetD2 / 2
1408 +
1409 +            ReDim Ligne(15)
1410 +            pt3(0) -= TranslationX
1411 +            pt3(1) -= TranslationY
1412 +            For i = 0 To 3
1413 +                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1414 +                P(i, 0) += TranslationX
1415 +                P(i, 1) += TranslationY
1416 +            Next i
1417 +
1418 +            For i = 0 To 2
1419 +                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1420 +            Next i
1421 +            Ligne(12) = P(3, 0) : Ligne(13) = P(3, 1) : Ligne(14) = P(0, 0) : Ligne(15) = P(0, 1)
1422 +
1423 +            r(0) = inter.x + 5000 * Epsilon * IP(0)
1424 +            r(1) = inter.y + 5000 * Epsilon * IP(1)
1425 +            r(2) = inter.z + 5000 * Epsilon * IP(2)
1426 +
1427 +            AutreSection = False
1428 +            AjouterMiniPoutre = True
1429 +            MettreFI = True
1430 +
1431 +
1432 +        ElseIf Left(Nomsection, 2) = "ST" Or Nomsection = " Tube carré générique" Then ' tube carré troué
1433 +            Dim P(3, 1) As Double
1434 +            Select Case numero
1435 +                Case 1
1436 +                    P(0, 0) = Poutre.GetD1 / 2
1437 +                    P(0, 1) = -Poutre.GetD2 / 2
1438 +                    P(1, 0) = P(0, 0)
1439 +                    P(1, 1) = -P(0, 1)
1440 +                    P(2, 0) = -P(0, 0)
1441 +                    P(2, 1) = P(1, 1)
1442 +                    P(3, 0) = P(2, 0)
1443 +                    P(3, 1) = P(0, 1)
1444 +
1445 +                    r(0) = P(0, 0) - 1000 * Epsilon
1446 +                    r(1) = 0 : r(2) = 0
1447 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1448 +                    r(0) += TranslationX
1449 +                    r(1) += TranslationY
1450 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1451 +
1452 +                    pt3(0) -= TranslationX
1453 +                    pt3(1) -= TranslationY
1454 +                    pt3(0) /= longueur : pt3(1) /= longueur
1455 +                    For i = 0 To 3
1456 +                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1457 +                        P(i, 0) += TranslationX
1458 +                        P(i, 1) += TranslationY
1459 +                    Next i
1460 +
1461 +                    ReDim Ligne(15)
1462 +                    Ligne(0) = P(0, 0) : Ligne(1) = P(0, 1) : Ligne(2) = P(1, 0) : Ligne(3) = P(1, 1)
1463 +                    Ligne(4) = P(1, 0) : Ligne(5) = P(1, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1464 +                    Ligne(8) = P(2, 0) : Ligne(9) = P(2, 1) : Ligne(10) = P(3, 0) : Ligne(11) = P(3, 1)
1465 +                    Ligne(12) = P(3, 0) : Ligne(13) = P(3, 1) : Ligne(14) = P(0, 0) : Ligne(15) = P(0, 1)
1466 +                    MettreFI = False
1467 +                    AutreSection = True
1468 +                    AjouterMiniPoutre = False
1469 +
1470 +                Case 2
1471 +                    P(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
1472 +                    P(0, 1) = -Poutre.GetD2 / 2 + Poutre.GetD3
1473 +                    P(1, 0) = P(0, 0)
1474 +                    P(1, 1) = -P(0, 1)
1475 +                    P(2, 0) = -P(1, 0)
1476 +                    P(2, 1) = P(1, 1)
1477 +                    P(3, 0) = P(2, 0)
1478 +                    P(3, 1) = P(0, 1)
1479 +
1480 +                    r(0) = P(0, 0) + 1000 * Epsilon
1481 +                    r(1) = 0 : r(2) = 0
1482 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1483 +                    r(0) += TranslationX
1484 +                    r(1) += TranslationY
1485 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1486 +
1487 +                    pt3(0) -= TranslationX
1488 +                    pt3(1) -= TranslationY
1489 +                    pt3(0) /= longueur : pt3(1) /= longueur
1490 +                    For i = 0 To 3
1491 +                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1492 +                        P(i, 0) += TranslationX
1493 +                        P(i, 1) += TranslationY
1494 +                    Next i
1495 +
1496 +                    ReDim Ligne(15)
1497 +                    Ligne(0) = P(0, 0) : Ligne(1) = P(0, 1) : Ligne(2) = P(1, 0) : Ligne(3) = P(1, 1)
1498 +                    Ligne(4) = P(1, 0) : Ligne(5) = P(1, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1499 +                    Ligne(8) = P(2, 0) : Ligne(9) = P(2, 1) : Ligne(10) = P(3, 0) : Ligne(11) = P(3, 1)
1500 +                    Ligne(12) = P(3, 0) : Ligne(13) = P(3, 1) : Ligne(14) = P(0, 0) : Ligne(15) = P(0, 1)
1501 +
1502 +                    MettreFI = True  ' lorsque l'on sort on met une face interne
1503 +                    AutreSection = False
1504 +                    AjouterMiniPoutre = False
1505 +
1506 +            End Select
1507 +
1508 +        ElseIf Left(Nomsection, 1) = "S" Or Nomsection = " Poutre en I générique" Then ' poutre en I de type S
1509 +            Dim P(11, 1) As Double
1510 +            Dim d As Double
1511 +
1512 +            d = Poutre.GetD4 * 0.8660254038 '  section.D4 / (2 * tan(30))
1513 +
1514 +            P(0, 0) = (Poutre.GetD1 / 2) - Poutre.GetD3
1515 +            P(0, 1) = -Poutre.GetD4 / 2
1516 +            P(1, 0) = P(0, 0)
1517 +            P(1, 1) = -Poutre.GetD2 / 2
1518 +            P(2, 0) = Poutre.GetD1 / 2
1519 +            P(2, 1) = P(1, 1)
1520 +            P(3, 0) = P(2, 0)
1521 +            P(3, 1) = -P(2, 1)
1522 +            P(4, 0) = P(1, 0)
1523 +            P(4, 1) = -P(1, 1)
1524 +            P(5, 0) = P(0, 0)
1525 +            P(5, 1) = -P(0, 1)
1526 +
1527 +            P(6, 0) = -((Poutre.GetD1 / 2) - Poutre.GetD3)
1528 +            P(6, 1) = Poutre.GetD4 / 2.0R
1529 +            P(7, 0) = P(6, 0)
1530 +            P(7, 1) = Poutre.GetD2 / 2
1531 +            P(8, 0) = -Poutre.GetD1 / 2
1532 +            P(8, 1) = P(7, 1)
1533 +            P(9, 0) = P(8, 0)
1534 +            P(9, 1) = -P(8, 1)
1535 +            P(10, 0) = P(7, 0)
1536 +            P(10, 1) = P(9, 1)
1537 +            P(11, 0) = P(6, 0)
1538 +            P(11, 1) = P(0, 1)
1539 +
1540 +
1541 +            pt3(0) -= TranslationX
1542 +            pt3(1) -= TranslationY
1543 +            pt3(0) /= longueur : pt3(1) /= longueur
1544 +            For i = 0 To 11
1545 +                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1546 +                P(i, 0) += TranslationX
1547 +                P(i, 1) += TranslationY
1548 +            Next i
1549 +
1550 +            ReDim Ligne(47)
1551 +
1552 +            For k As Integer = 0 To 10
1553 +                Ligne(4 * k + 0) = P(k, 0) : Ligne(4 * k + 1) = P(k, 1) : Ligne(4 * k + 2) = P(k + 1, 0) : Ligne(4 * k + 3) = P(k + 1, 1)
1554 +            Next k
1555 +            Ligne(44) = P(0, 0) : Ligne(45) = P(0, 1) : Ligne(46) = P(11, 0) : Ligne(47) = P(11, 1)
1556 +
1557 +
1558 +            r(0) = inter.x '+ 5000 * Epsilon * IP(0)
1559 +            r(1) = inter.y '+ 5000 * Epsilon * IP(1)
1560 +            r(2) = inter.z '+ 5000 * Epsilon * IP(2)
1561 +
1562 +            AutreSection = False
1563 +            MettreFI = True
1564 +            AjouterMiniPoutre = True
1565 +
1566 +
1567 +        ElseIf Left(Nomsection, 5) = "Tuyau" OrElse Nomsection = " Tuyau (Pipe) générique" Then ' le tube rond
1568 +            Dim p(4, 1) As Double
1569 +            p(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
1570 +            p(0, 1) = 0
1571 +            p(1, 0) = Poutre.GetD1 / 2
1572 +            p(1, 1) = 0
1573 +            p(2, 0) = -p(0, 0)
1574 +            p(2, 1) = 0
1575 +            p(3, 0) = -p(1, 0)
1576 +            p(3, 1) = 0
1577 +            p(4, 0) = 0
1578 +            p(4, 1) = 0
1579 +
1580 +            Select Case numero
1581 +                Case 1
1582 +
1583 +                    r(0) = 0
1584 +                    r(1) = Poutre.GetD1 / 2 - Poutre.GetD3 / 2 : r(2) = 0
1585 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1586 +                    r(0) += TranslationX
1587 +                    r(1) += TranslationY
1588 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1589 +
1590 +                    pt3(0) -= TranslationX
1591 +                    pt3(1) -= TranslationY
1592 +                    pt3(0) /= longueur : pt3(1) /= longueur
1593 +                    For i = 0 To 4
1594 +                        Outils_Math.Rotation2D(pt3, p(i, 0), p(i, 1))
1595 +                        p(i, 0) += TranslationX
1596 +                        p(i, 1) += TranslationY
1597 +                    Next i
1598 +
1599 +                    ReDim Ligne(7)
1600 +                    Ligne(0) = p(0, 0) : Ligne(1) = p(0, 1) : Ligne(2) = p(1, 0) : Ligne(3) = p(1, 1)
1601 +                    Ligne(4) = p(2, 0) : Ligne(5) = p(2, 1) : Ligne(6) = p(3, 0) : Ligne(7) = p(3, 1)
1602 +                    swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(1, 0), p(1, 1), 0, p(3, 0), p(3, 1), 0, 1)
1603 +                    swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(0, 0), p(0, 1), 0, p(2, 0), p(2, 1), 0, 1)
1604 +                    MettreFI = True
1605 +                    AutreSection = True
1606 +                    AjouterMiniPoutre = False
1607 +
1608 +                Case 2
1609 +
1610 +                    r(0) = 0
1611 +                    r(1) = -Poutre.GetD1 / 2 + Poutre.GetD3 / 2 : r(2) = 0
1612 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1613 +                    r(0) += TranslationX
1614 +                    r(1) += TranslationY
1615 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1616 +
1617 +                    pt3(0) -= TranslationX
1618 +                    pt3(1) -= TranslationY
1619 +                    pt3(0) /= longueur : pt3(1) /= longueur
1620 +                    For i = 0 To 4
1621 +                        Outils_Math.Rotation2D(pt3, p(i, 0), p(i, 1))
1622 +                        p(i, 0) += TranslationX
1623 +                        p(i, 1) += TranslationY
1624 +                    Next i
1625 +
1626 +                    ReDim Ligne(7)
1627 +                    Ligne(0) = p(0, 0) : Ligne(1) = p(0, 1) : Ligne(2) = p(1, 0) : Ligne(3) = p(1, 1)
1628 +                    Ligne(4) = p(2, 0) : Ligne(5) = p(2, 1) : Ligne(6) = p(3, 0) : Ligne(7) = p(3, 1)
1629 +                    swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(1, 0), p(1, 1), 0, p(3, 0), p(3, 1), 0, -1)
1630 +                    swModel.CreateArc2(p(4, 0), p(4, 1), 0, p(0, 0), p(0, 1), 0, p(2, 0), p(2, 1), 0, -1)
1631 +                    'MettreFI = True  ' lorsque l'on sort on met une face interne
1632 +                    MettreFI = True
1633 +                    AutreSection = False
1634 +                    AjouterMiniPoutre = True
1635 +
1636 +            End Select
1637 +
1638 +        ElseIf Left(Poutre.GetNomSection, 2) = "Cy" Or Nomsection = " Cylindrique (Rod) générique" Then ' Pipe,
1639 +            Dim P(2, 1) As Double
1640 +            Dim d As Double, e As Double
1641 +            d = Poutre.GetD1 / 4 ' Math.Sin(30)  ( et on doit diviser le diamètre par 2)
1642 +            e = Poutre.GetD1 * Math.Sqrt(3) / 4 ' cos (30°)
1643 +
1644 +            P(0, 0) = 0
1645 +            P(0, 1) = 0
1646 +            P(1, 0) = d
1647 +            P(1, 1) = -e
1648 +            P(2, 0) = d
1649 +            P(2, 1) = e
1650 +
1651 +            Select Case numero
1652 +                Case 1
1653 +                    r(0) = P(0, 0) + 1000 * Epsilon
1654 +                    r(1) = 0 : r(2) = 0
1655 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1656 +                    r(0) += TranslationX
1657 +                    r(1) += TranslationY
1658 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1659 +                    pt3(0) -= TranslationX
1660 +                    pt3(1) -= TranslationY
1661 +                    pt3(0) /= longueur : pt3(1) /= longueur
1662 +                    For i = 0 To 2
1663 +                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1664 +                        P(i, 0) += TranslationX
1665 +                        P(i, 1) += TranslationY
1666 +                    Next i
1667 +                    ReDim Ligne(7)
1668 +                    Ligne(0) = P(0, 0) : Ligne(1) = P(0, 1) : Ligne(2) = P(1, 0) : Ligne(3) = P(1, 1)
1669 +                    Ligne(4) = P(0, 0) : Ligne(5) = P(0, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1670 +                    swModel.CreateArc2(P(0, 0), P(0, 1), 0, P(1, 0), P(1, 1), 0, P(2, 0), P(2, 1), 0, 1) ' le dernier param est la direction.  1 ou -1
1671 +
1672 +
1673 +                    MettreFI = True
1674 +                    AjouterMiniPoutre = False
1675 +                    AutreSection = True
1676 +
1677 +                Case 2
1678 +                    r(0) = P(0, 0) - 1000 * Epsilon
1679 +                    r(1) = 0 : r(2) = 0
1680 +                    Outils_Math.Rotation2D(pt3, r(0), r(1))
1681 +                    r(0) += TranslationX
1682 +                    r(1) += TranslationY
1683 +                    r = Commun.TransfertSketchToModel(swSketch, r)
1684 +
1685 +                    pt3(0) -= TranslationX
1686 +                    pt3(1) -= TranslationY
1687 +                    pt3(0) /= longueur : pt3(1) /= longueur
1688 +                    For i = 0 To 2
1689 +                        Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1690 +                        P(i, 0) += TranslationX
1691 +                        P(i, 1) += TranslationY
1692 +                    Next i
1693 +                    ReDim Ligne(7)
1694 +                    Ligne(0) = P(0, 0) : Ligne(1) = P(0, 1) : Ligne(2) = P(1, 0) : Ligne(3) = P(1, 1)
1695 +                    Ligne(4) = P(0, 0) : Ligne(5) = P(0, 1) : Ligne(6) = P(2, 0) : Ligne(7) = P(2, 1)
1696 +
1697 +                    swModel.CreateArc2(P(0, 0), P(0, 1), 0, P(1, 0), P(1, 1), 0, P(2, 0), P(2, 1), 0, -1) ' le dernier param est la direction.  1 ou -1
1698 +
1699 +                    MettreFI = True
1700 +                    AjouterMiniPoutre = False
1701 +                    AutreSection = False
1702  
1703              End Select
1704 +
1705 +
1706 +
1707 +        ElseIf Left(Nomsection, 1) = "C" Or Nomsection = " Poutre en C générique" Then ' le channel
1708 +            Dim P(7, 1) As Double
1709 +
1710 +            P(0, 0) = Poutre.GetD1 / 2 - Poutre.GetD3
1711 +            P(0, 1) = Poutre.GetD5
1712 +            P(1, 0) = P(0, 0)
1713 +            P(1, 1) = Poutre.GetD5 + Poutre.GetD4 - Poutre.GetD2
1714 +            P(2, 0) = Poutre.GetD1 / 2
1715 +            P(2, 1) = P(1, 1)
1716 +            P(3, 0) = P(2, 0)
1717 +            P(3, 1) = P(1, 1) + Poutre.GetD2
1718 +            P(4, 0) = -P(3, 0)
1719 +            P(4, 1) = P(3, 1)
1720 +            P(5, 0) = P(4, 0)
1721 +            P(5, 1) = P(1, 1)
1722 +            P(6, 0) = -P(1, 0)
1723 +            P(6, 1) = P(5, 1)
1724 +            P(7, 0) = -P(0, 0)
1725 +            P(7, 1) = P(0, 1)
1726 +
1727 +            r(0) = P(0, 0) + 1000 * Epsilon
1728 +            r(1) = P(0, 1) : r(2) = 0
1729 +            Outils_Math.Rotation2D(pt3, r(0), r(1))
1730 +            r(0) += TranslationX
1731 +            r(1) += TranslationY
1732 +            r = Commun.TransfertSketchToModel(swSketch, r)
1733 +
1734 +            pt3(0) -= TranslationX
1735 +            pt3(1) -= TranslationY
1736 +            pt3(0) /= longueur : pt3(1) /= longueur
1737 +            For i = 0 To 7
1738 +                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1739 +                P(i, 0) += TranslationX
1740 +                P(i, 1) += TranslationY
1741 +            Next i
1742 +
1743 +            ReDim Ligne(35)
1744 +            For i = 0 To 6
1745 +                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1746 +            Next i
1747 +            Ligne(28) = P(7, 0) : Ligne(29) = P(7, 1) : Ligne(30) = P(0, 0) : Ligne(31) = P(0, 1)
1748 +
1749              MettreFI = True
1750 +            AjouterMiniPoutre = True
1751 +            AutreSection = False
1752 +
1753 +
1754 +        ElseIf Left(Nomsection, 1) = "L" Or Nomsection = " Poutre en L générique" Then ' l'Angle en L
1755 +            Dim P(5, 1) As Double
1756 +
1757 +            P(0, 0) = -Poutre.GetD5 + Poutre.GetD1
1758 +            P(0, 1) = -Poutre.GetD6 + Poutre.GetD4
1759 +            P(1, 0) = -Poutre.GetD5 + Poutre.GetD3
1760 +            P(1, 1) = P(0, 1)
1761 +            P(2, 0) = P(1, 0)
1762 +            P(2, 1) = -Poutre.GetD6 + Poutre.GetD2
1763 +            P(3, 0) = -Poutre.GetD5
1764 +            P(3, 1) = P(2, 1)
1765 +            P(4, 0) = P(3, 0)
1766 +            P(4, 1) = -Poutre.GetD6
1767 +            P(5, 0) = P(0, 0)
1768 +            P(5, 1) = P(4, 1)
1769 +
1770 +            r(0) = P(1, 0) - 1000 * Epsilon
1771 +            r(1) = 0 : r(2) = 0
1772 +            Outils_Math.Rotation2D(pt3, r(0), r(1))
1773 +            r(0) += TranslationX
1774 +            r(1) += TranslationY
1775 +            r = Commun.TransfertSketchToModel(swSketch, r)
1776 +
1777 +            pt3(0) -= TranslationX
1778 +            pt3(1) -= TranslationY
1779 +            pt3(0) /= longueur : pt3(1) /= longueur
1780 +            For i = 0 To 5
1781 +                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1782 +                P(i, 0) += TranslationX
1783 +                P(i, 1) += TranslationY
1784 +            Next i
1785 +
1786 +            ReDim Ligne(35)
1787 +            For i = 0 To 4
1788 +                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1789 +            Next i
1790 +            Ligne(20) = P(5, 0) : Ligne(21) = P(5, 1) : Ligne(22) = P(0, 0) : Ligne(23) = P(0, 1)
1791 +
1792 +            MettreFI = True
1793 +            AjouterMiniPoutre = True
1794 +            AutreSection = False
1795 +
1796 +
1797 +        ElseIf Left(Nomsection, 1) = "T" Or Nomsection = " Poutre en T générique" Then ' le T
1798 +
1799 +            Dim P(7, 1) As Double
1800 +            Dim d As Double
1801 +            d = Poutre.GetD4 * 0.8660254038 '  section.D4 / (2 * tan(30))
1802 +
1803 +            P(0, 0) = -Poutre.GetD5
1804 +            P(0, 1) = Poutre.GetD4 / 2
1805 +            P(1, 0) = P(0, 0)
1806 +            P(1, 1) = -P(0, 1)
1807 +            P(2, 0) = Poutre.GetD1 - Poutre.GetD5 - Poutre.GetD3
1808 +            P(2, 1) = -Poutre.GetD4 / 2.0R
1809 +            P(3, 0) = P(2, 0)
1810 +            P(3, 1) = -Poutre.GetD2 / 2
1811 +            P(4, 0) = Poutre.GetD1 - Poutre.GetD5
1812 +            P(4, 1) = P(3, 1)
1813 +            P(5, 0) = P(4, 0)
1814 +            P(5, 1) = -P(4, 1)
1815 +            P(6, 0) = P(3, 0)
1816 +            P(6, 1) = -P(3, 1)
1817 +            P(7, 0) = P(2, 0)
1818 +            P(7, 1) = -P(2, 1)
1819 +
1820 +
1821 +            r(0) = 0
1822 +            r(1) = 0 : r(2) = 0
1823 +            Outils_Math.Rotation2D(pt3, r(0), r(1))
1824 +            r(0) += TranslationX
1825 +            r(1) += TranslationY
1826 +            r = Commun.TransfertSketchToModel(swSketch, r)
1827 +
1828 +            pt3(0) -= TranslationX
1829 +            pt3(1) -= TranslationY
1830 +            pt3(0) /= longueur : pt3(1) /= longueur
1831 +            For i = 0 To 7
1832 +                Outils_Math.Rotation2D(pt3, P(i, 0), P(i, 1))
1833 +                P(i, 0) += TranslationX
1834 +                P(i, 1) += TranslationY
1835 +            Next i
1836 +
1837 +            ReDim Ligne(31)
1838 +            For i = 0 To 6
1839 +                Ligne(i * 4) = P(i, 0) : Ligne(i * 4 + 1) = P(i, 1) : Ligne(i * 4 + 2) = P(i + 1, 0) : Ligne(i * 4 + 3) = P(i + 1, 1)
1840 +            Next i
1841 +            Ligne(28) = P(7, 0) : Ligne(29) = P(7, 1) : Ligne(30) = P(0, 0) : Ligne(31) = P(0, 1)
1842 +
1843 +            MettreFI = True
1844 +            AjouterMiniPoutre = True
1845 +            AutreSection = False
1846  
1847  
1848          Else
# Line 1348 | Line 1860 | Public Class SuperFace
1860  
1861      End Function
1862  
1863 +
1864      Public Function SwFace() As sldworks.Face2 ' retourne la première face de la liste (dans la partie traitement, ce sera la seule...)
1865          Return Me.lst_Faces.Item(0)
1866      End Function
# Line 1434 | Line 1947 | Public Class SuperFace
1947  
1948  
1949      Public Sub AjouterFace(ByRef face As sldworks.Face2)
1950 <        Dim testface As sldworks.Face2
1438 <        Dim faultentity As sldworks.FaultEntity
1439 <        Dim swent As sldworks.Entity
1440 <
1441 <        If Not Me.lst_Faces.Contains(face) Then Me.lst_Faces.Add(face)
1442 <
1443 <        ' vérifier que les anciennes faces sont toujours ok...
1444 <        'For Each testface In Me.lst_Faces
1445 <        '    faultentity = testface.Check
1446 <        '    If Not faultentity.Count = 0 Then ' on a un problème avec la face....
1447 <        '        If lst_Faces.Contains(testface) Then
1448 <        '            Try
1449 <        '                lst_Faces.Remove(testface)
1450 <        '            Catch ex As Exception
1451 <
1452 <        '            End Try
1453 <        '        End If
1454 <
1455 <        'Dim i As Integer
1456 <        'For i = 0 To faultentity.Count - 1
1457 <        '    swent = faultentity.Entity(i)
1458 <        '    If Not swent Is Nothing Then
1459 <        '        swent.Select4(True, Nothing)
1460 <        '    End If
1461 <        '    Debug.Print("   Fault[" & i & "] = " & swent.errorCode(i))
1462 <        'Next i
1463 <        'End If
1464 <        'Next testface
1465 <
1466 <
1950 >        Me.lst_Faces.Add(face)
1951      End Sub
1952  
1953  
# Line 1633 | Line 2117 | Public Class SuperFace
2117              ' là on a 2 options,
2118              ' a) on utilise le rayon hydraulique: 4* Surface / Périmètre
2119              EcartSouhaite = Me.GrosseurMailleFaceInterne ' 4 * Me.Aire / Me.Perimetre
2120 +            If EcartSouhaite <= 0 Then Exit Sub
2121              ratio = EcartSouhaite / ENG
2122  
2123  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines