File "Traitement_ancien.bas"
Full Path: /home/analogde/www/Dessin/Traitement_ancien.bas
File size: 6.31 KB
MIME-type: text/plain
Charset: 8 bit
Attribute VB_Name = "Module3"
Public Function DessineLiens()
Dim i As Long
Dim pad_lien As Long
Dim broche_lien As Long
If (numero_lien <> 0) Then
For i = 0 To numero_lien - 1
pad_lien = Liens(i, 0)
broche_lien = Liens(i, 1)
tmp = Objet_PAD(pad_lien).GetPosition_PAD()
Ax = Pos_X
Ay = Pos_Y
tmp = Objet_BROCHE(broche_lien).GetPosition_BROCHE()
Bx = Pos_X
By = Pos_Y
Form_principale.Graphe.DrawWidth = 3
Form_principale.Graphe.Line (Ax, -Ay)-(Bx, -By), RGB(255, 0, 0)
Next i
End If
End Function
Public Function calculer_angle(ByVal X1 As Double, ByVal Y1 As Double, ByVal X2 As Double, ByVal Y2 As Double)
Dim conversion_degre As Double
Const PI = 3.14159265358979
' Angle entre 2 points quelconques
conversion_degre = 180 / 3.141592
calculer_angle = Int(Atn((Y1 - Y2) / (X1 - X2)) * conversion_degre * 1000) / 1000
End Function
Public Function calculer_distance(ByVal X1 As Double, ByVal Y1 As Double, ByVal X2 As Double, ByVal Y2 As Double)
calculer_distance = Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
End Function
Public Function traitement_bonding()
Dim i As Long
Dim pad_lien As Long
Dim broche_lien As Long
Dim chemin As String
Dim chaine As String
Dim Table(100) As String
Dim spacing As String
spacing = " "
'chemin = "c:\import_limit.txt"
'Open chemin For Output As 1
With Form_principale
.CmDlg.CancelError = False
.CmDlg.DialogTitle = "Dfinir le nom du fichier de sauvegarde"
.CmDlg.Filter = filtre_champ
.CmDlg.FilterIndex = 1
.CmDlg.ShowSave
End With
Fichier_Nom = Form_principale.CmDlg.FileName
If Fichier_Nom = "" Then
Exit Function
End If
Open Fichier_Nom For Output As 1
'
Form1.Show
Form1.MSFlexGrid_Template.Cols = 5
Form1.MSFlexGrid_Template.Rows = 128 'nombre_liens
'
Form1.MSFlexGrid_Template.Col = 0
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(0) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(0) = 500
Form1.MSFlexGrid_Template.Text = "PAD"
'
Form1.MSFlexGrid_Template.Col = 1
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(1) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(1) = 1500
Form1.MSFlexGrid_Template.Text = "X"
'
Form1.MSFlexGrid_Template.Col = 2
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(2) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(2) = 1500
Form1.MSFlexGrid_Template.Text = "Y"
Form1.MSFlexGrid_Template.Col = 3
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(3) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(3) = 1500
Form1.MSFlexGrid_Template.Text = "Angle en degrs"
Form1.MSFlexGrid_Template.Col = 4
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(4) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(4) = 3000
Form1.MSFlexGrid_Template.Text = "Distance"
If (numero_lien <> 0) Then
For i = 0 To numero_lien - 1
pad_lien = Liens(i, 0)
broche_lien = Liens(i, 1)
tmp = Objet_PAD(pad_lien).GetPosition_PAD()
Ax = Pos_X
Ay = Pos_Y
tmp = Objet_BROCHE(broche_lien).GetPosition_BROCHE()
Bx = Pos_X
By = Pos_Y
'
angle = calculer_angle(Ax, Ay, Bx, By)
'
distance = calculer_distance(Ax, Ay, Bx, By)
' sauvegarde = criture dans un fichier
Table(0) = i + 1
Table(1) = pad_lien
Table(2) = broche_lien
Table(3) = Ax
Table(4) = Ay
Table(5) = Bx
Table(6) = By
Table(7) = angle
Table(8) = distance
chaine = Table(0) & spacing & Table(1) & spacing & Table(2) & spacing & Table(3) & spacing & Table(4) & spacing & Table(5) & spacing & Table(6) & spacing & Table(7) & spacing & Table(8)
'resultat = Join(Table, " ")
Print #1, chaine
Form1.MSFlexGrid_Template.Col = 0
Form1.MSFlexGrid_Template.Row = i + 1
Form1.MSFlexGrid_Template.Text = Table(0)
Form1.MSFlexGrid_Template.Col = 1
Form1.MSFlexGrid_Template.Row = i + 1
Form1.MSFlexGrid_Template.Text = Table(3)
Form1.MSFlexGrid_Template.Col = 2
Form1.MSFlexGrid_Template.Row = i + 1
Form1.MSFlexGrid_Template.Text = Table(4)
Form1.MSFlexGrid_Template.Col = 3
Form1.MSFlexGrid_Template.Row = i + 1
Form1.MSFlexGrid_Template.Text = Table(7)
Form1.MSFlexGrid_Template.Col = 4
Form1.MSFlexGrid_Template.Row = i + 1
Form1.MSFlexGrid_Template.Text = Table(8)
'Form1.MSFlexGrid_Template.TextMatrix(2, 5) = numero_lien
'Form1.MSFlexGrid_Template.TextMatrix(2, 5) = Ax
'Form1.MSFlexGrid_Template.TextMatrix(2, 5) = Ay
Next i
Close
End If
End Function
Public Function titi(ByVal nombre_liens)
Form1.MSFlexGrid_Template.Cols = 27
Form1.MSFlexGrid_Template.Rows = nombre_liens
'
Form1.MSFlexGrid_Template.Col = 0
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(0) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(0) = 1500
Form1.MSFlexGrid_Template.Text = "PAD"
'
Form1.MSFlexGrid_Template.Col = 1
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(1) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(1) = 1500
Form1.MSFlexGrid_Template.Text = "X"
'
Form1.MSFlexGrid_Template.Col = 2
Form1.MSFlexGrid_Template.Row = 0
Form1.MSFlexGrid_Template.ColAlignment(2) = flexAlignCenterTop
Form1.MSFlexGrid_Template.ColWidth(2) = 1500
Form1.MSFlexGrid_Template.Text = "Y"
'
'Form1.MSFlexGrid_Template.Col = 3
'Form1.MSFlexGrid_Template.Row = 0
'Form1.MSFlexGrid_Template.Text = "Animateur"
'Les proprits Cols et Rows permettent de dfinir le nombre de colonne et de ligne
'Form1.MSFlexGrid_Template.ColWidth = 150
'Form1.MSFlexGrid_Template.Row = 2 'Coordonnes de la cellule
'Form1.MSFlexGrid_Template.Col = 3
'Form1.MSFlexGrid_Template.CellFontBold = True 'Texte en gras
'Grid.CellForeColor = Color.Red 'Couleur du texte
'Grid.Text = Texte
'Grid.TextMatrix(2, 5) = Texte
End Function