VB6 et Hp-GL -- CAO

Résolu
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006 - 27 janv. 2006 à 17:13
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 - 8 févr. 2006 à 21:45
Bonjour,
Sous VB6,
Comment faire pour ouvrir un fichier au format hpgl (*.plt) (lire son contenu) afin de visualiser les points et droites du fichier?

Sinon de façon plus général comment parcourir le contenu d'un fichier ?
Et comment dessiner à l'écran avec VB6 ?
Merci d'avance

12 réponses

gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
27 janv. 2006 à 18:02
Re,

Pour lire un fichier texte voici une petite routine:

lngCanal = FreeFile
Open "c:\temps\.....Le fichier" For Input As #lngCanal
Do Until EOF(lngCanal)
Line Input #lngCanal, strResult
Loop
Close #lngCanal

pour le reste comment afficher les points faut plus d'explication comment sont c'est coordonnée??? ect!...

A++
[Gally Home Corp]
3
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
1 févr. 2006 à 12:16
Bonjour,

Voici tout le code-source de votre demande. Mais comme je ne connais pas trop les coordonée du ce type de fichier je les affiches avec un facteur qui me permet de les mettres a dimention dans la form.

' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


Option Explicit


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


' DECLARATION DU TYPE POUR LE PLT.
Private Type TPECOORDXY
lngX As Long
lngY As Long
End Type


' DECLARATION DES VARIABLES GLOBALE.
Dim strFilePath As String


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Private Sub Form_Load()
' RECUPERATION DU PATH DE L'APPLICATION.
strFilePath = App.Path
If Right(strFilePath, 1) <> "" Then strFilePath = strFilePath & ""


' CHARGEMENT ET AFFICHAGE DU FICHIER.
Call setDrawPLT(strFilePath & "test.plt", 20)


End Sub


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Private Function setDrawPLT(ByVal strFileName As String, ByVal lngFactor As Long) As Boolean
' DECLARATION DES VARIABLES.
Dim lngI As Long
Dim lngJ As Long
Dim lngCanal As Long
Dim strResult As String
Dim tabResult() As String
Dim tpeResult() As TPECOORDXY


' CHARGMENT DU FICHIER PLT.
lngCanal = FreeFile
Open strFileName For Input As #lngCanal
Do Until EOF(lngCanal)
Line Input #lngCanal, strResult
Call StringDecoupe(strResult, " ", tabResult())
If UBound(tabResult()) = &H2 Then
lngI = lngI + &H1
ReDim Preserve tpeResult(&H1 To lngI) As TPECOORDXY
tpeResult(lngI).lngX = Val(tabResult(&H1)) / lngFactor
tpeResult(lngI).lngY = Val(tabResult(&H2)) / lngFactor
Else
GoTo ERREUR
End If
Loop
Close #lngCanal


' AFFICHAGE DU FICHIER PLT.
For lngJ = &H1 To lngI - &H1 Step &H1
frmPrincipal.Line (tpeResult(lngJ).lngX, tpeResult(lngJ).lngY)-(tpeResult(lngJ + &H1).lngX, tpeResult(lngJ + &H1).lngY), &H0, BF
Next lngJ
ERREUR:


End Function


' ****************************************************************************
' ****************************************************************************
' ****************************************************************************
' ****************************************************************************


' +--------------------------------------------------------------------------+
' | |
' +--------------------------------------------------------------------------+


Public Sub StringDecoupe(ByVal strLine As String, ByVal strSeparator As String, ByRef strResult() As String)
' DECLARATION DES VARIABLES.
Dim lngI As Long ' VARIABLE TEMPORAIRE.
Dim lngJ As Long ' VARIABLE TEMPORAIRE.
Dim lngU As Long ' VARIABLE TEMPORAIRE.


' INITIALISATION DU TABLEAU DE RESULTAT.
ReDim lngResult(&H1 To &H1) As String


' DECOUPE DE LA CHAINE DE CARACTERE.
lngJ = &H1
For lngI = &H1 To Len(strLine) Step &H1
If Mid$(strLine, lngI, Len(strSeparator)) = strSeparator Then
lngU = lngU + &H1
ReDim Preserve strResult(&H1 To lngU) As String
strResult(lngU) = Mid$(strLine, lngJ, (lngI - &H1) - (lngJ - Len(strSeparator)))
lngJ = lngI + Len(strSeparator)
End If
Next lngI
If Right(strLine, Len(strSeparator)) <> strSeparator Then
lngU = lngU + &H1
ReDim Preserve strResult(&H1 To lngU) As String
strResult(lngU) = Mid$(strLine, lngJ, Len(strLine) - (lngJ - Len(strSeparator)))
End If


End Sub


Bonne programmation,
[Gally Home Corp]
3
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
27 janv. 2006 à 17:25
Bonjour,

Tout depend le type de fichier (fichier texte, hexa, bin...). en fonction du type il y a plusieur methode et apres pour le dessin tu programme tes petites routine de traçage et voila...

Donc pour plus d'aide, il faut le type de fichier...

A++
[Gally Home Corp]
0
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006
27 janv. 2006 à 17:52
Ce fichier (.plt) est de type texte. Avec les coordonnées des points ...
Comment lire dans un fichier de type texte ?
Et comment afficher à l'écran ces points ?

Merci
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006
1 févr. 2006 à 11:38
Merci, ca marche nickel ! (la lecture du fichier...)
J'ai donc réussi à lire et à afficher les coordonnées des points.
Ces coordonnées sont de type (x,y) ex d'un cas : (5480 8882)...
2691 8282
2692 8284
2696 8290
2702 8297
2710 8307
2720 8315
2732 8324
....
Reste à savoir comment faut il s'y prendre afin de tracer ces lignes sous VB6!
Merci
Bye
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
1 févr. 2006 à 19:23
[Gally Home Corp]
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
1 févr. 2006 à 19:24
Bonjour,

Peux tu me dire si cela est bon pour vous??? et de me validez si cela est bon!!!

Cordialement,
[Gally Home Corp]
0
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006
1 févr. 2006 à 19:43
Merci beaucoup pour ce code qui est très bien fait!
Je suis en train d'adapter mon code au votre, à savoir utiliser des tableaux dynamiques pour enregistrer les coord. après avoir séparé les X et les Y...
Ce que je n'ai pas bien compris, c'est les variables &H0, &H1 &H2 !
Sinon le reste est très bien et je vous en remercie encore!!!
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
3 févr. 2006 à 15:56
Bonjour,

Alors "&h" est en fait des valeur en code hexadecimal par exemple "&h1=1", "&h9=9", "&ha=10", ect...

Par contre si le code fourmi est conforme a votre attente, merci de la valider.

Bonne programmation,
[Gally Home Corp]
0
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006
3 févr. 2006 à 17:50
Oui le code est bien conforme à ce que j'attendais!
Vous m'avez bien aider et je vous en remercie !
0
cs_nkos Messages postés 7 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 17 mai 2006
6 févr. 2006 à 13:18
Salut,

Mon appli. permettant d'ouvrir/visualiser des images vectorielles au format HPgl fonctionne comme je le souhaitaits! Merci encore

Je souhaiterai maintenant l'améliorer en permettant de la visualiser avec un rendu OpenGl, toujours sous VB6 !!

J'ai récupérer du codes utilisant OpenGL sous VB mais je ne comprend pas tout... :-(
Je souhaite comme l'autre faire apparaître ce fichier avec un rendu OpengL!

Je remercie par avance si tu pouvais m'éclairer!
Sinon je peux faire un nouveau sujet dans le forum

Merci
a+
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
8 févr. 2006 à 21:45
Bonjour,

Un rendu en openGL c'est pour faire un rendu en 3D??? Sinon explique moi mieu ce que tu recherche et peu etre que je pourais te rendre service!

Bonne programmation,
[Gally Home Corp]
0
Rejoignez-nous