Aller au contenu

Routines Carto VBA


Messages recommandés

Posté(e)

Bonjour à tous,

 

J'ai de solide connaissance en LISP, que j'utilise fréquemment, par contre je ne connais que les principes de base en VBA et j'aurai besoin d'un peu d'aide...

 

Mon associé, ne s'intéressant pas du tout à la programmation, m'a fait part de ce vieux programme, conçu par un de ses amis, qu'ils utilisaient il y a une dizaine d'année.

 

En l'état, le programme ne fonctionne pas (sur ma version d’AutoCAD en tout cas) mais je souhaiterai le remettre en route, voire l’améliorer.

 

Bien que je n'y connaisse pas grand-chose en VBA, certaines fonctions ne me parle pas du tout (je suppose même qu’elles n'existent pas, puisque rien n'apparait dans l’Object browser… (SBar.SimpleText/CMD.Action/CMD.FileName...) Est-ce possible ???).

 

Bref, je souhaiterai donc savoir si ce code peut fonctionner ? si oui, comment ? si non, est-il possible de modifier/d’adapter certaines parties afin qu'il puisse fonctionner...?

Si quelqu'un pouvait y jeter un coup d'œil et m'apporter tout renseignement me permettant de comprendre ce qui ne fonctionne pas, je lui serais très reconnaissant.

 

Merci d'avance.

 

 

 


Private Sub ComFile_Click()
CMD.Action = 1
 InGrid = CMD.FileName
 
 If InGrid = "" Or InGrid = Null Then
   SBar.SimpleText = "Need a .GRD File"
   Exit Sub
 End If
 On Error Resume Next
  Open InGrid For Binary Access Read Write As #1
  If Err <> 0 Then
    SBar.SimpleText = "Invalid.GRD File"
  Exit Sub
 End If
 On Error GoTo 0
 
 Dim FLen As Long
 Dim X As Long
 Dim rw As Long
 Dim cl As Long
 Dim Idx As Long
 Dim Xi As Double
 Dim Yi As Double
 Dim Xs As Double
 Dim Ys As Double
 Dim Zm As Double
 Dim Zn As Double
 Dim Zx As Double
 
 Get #1, 21, rw
 Get #1, 25, cl
 Get #1, 29, Xi
 Get #1, 37, Yi
 Get #1, 45, Xs
 Get #1, 53, Ys
 Get #1, 61, Zm
 Get #1, 69, Zn
 Get #1, 77, Zx                                    '
 Get #1, 97, FLen

 Text0 = "XYmin= " + Format(Xi, "#.000") + "," + Format(Yi, "#.000") + Chr(13)
 Text0 = Text0 + "XYmax= " + Format(Xi + Xs * (cl - 1), "#.000") + "," + Format(Yi + Ys * (rw - 1), "#.000") + Chr(13)
 Text0 = Text0 + "Zmin= " + Format(Zm, "#.000") + "  Zmax= " + Format(Zn, "#.000") + Chr(13)
 Text0 = Text0 + "Matrix Size(CR) = " & cl & "," & rw & Chr(13)
 Text0 = Text0 + "Cell Size X= " + Format(Xs, "#.0") + "  Y= " + Format(Ys, "#.0")
 
 Close 1
 Lb.Caption = InGrid
 Gfile = InGrid
 
End Sub

Private Sub UserForm_Activate()
StartSmart.Left = 2
StartSmart.top = 385
SBar.Width = StartSmart.Width - 3
SBar.top = (StartSmart.Height - SBar.Height) - 20
If UCase(Right(Gfile, 3)) = "GRD" Then Lb = Gfile
End Sub

  • Downvote 1
Posté(e)

Bonjour a tous,

 

J'ai decouverts ce qui cloche...

 

Avec la version d'AutoCAD 2018, impossible de charger les comandes VBA (Microsoft Common Dialog Control 6.0 et Microsoft Windows Common Controls 6.0 (SP6) dans le but d'utiliser respectivement les commandes CommonDialog et StatusBar).

 

Il semblerait que jusqu'a la version 2010 ses commandes soit integrer au module AutoCAD, plus apres... Avec AutoCAD 2008, la routine fonctionne parfaitement!!

 

Savez-vous donc s'il est possible d'ajouter ces commandes - "en options" dans les versions plus recentes d'AutoCAD - et si oui quelle est la marche a suivre pour pouvoir utiliser les commandes CommonDialog et StatusBar.

 

Merci d'avance!

Posté(e)

Oui oui, j'ai bien fais la manip d'ajout du module VBA d'AutoCAD...

 

Mais toutes les fonctions ne semble pas etre pris en charge par ce module.?

Posté(e)

Le but final de ce programme est de créer une carte (un dégradé de couleur) des pentes, de l'altitude ou de l'exposition des faces.

 

Mais la partie sur laquelle je bloque pour le moment (partie de code que j'ai copié) ne vise qu'a sélectionner un fichier GRID et l'ouvrir...

Posté(e)

Salut Curlygoth,

 

Déjà, merci de me répondre et de passer un peu de temps sur le sujet :)

 

Non, il n'y a qu'un module (en réalité il y a 1 module et 11 forms). En fait, dans mon premier post je n'est pas copié le code en entier, seulement une partie car a la base je souhaiter savoir si les commandes SBar.SimpleText/CMD.Action/CMD.FileName... étaient toujours fonctionnelles dans les versions récentes d'AutoCAD (malgré le module VBA)...

 

Bref, je joints ci dessous le liens des fichiers (qui me semble nécessaires au programmes). Je n'ai pas pris le temps de tout décortiquer pour essayer de comprendre chaque code, leur relation et utilité... J’espère que tu trouveras ce dont tu as besoin.

 

Fichiers smartmap

Posté(e)

Alors :

 

Ce n'est pas du VBA mais à mon avis du .NET

 

En gros c'esta avec Visual Studio qui pourra te permettre de voir les code dans les Form etc...

 

j'ai pas tout ça sur moi XD

 

SBar.SimpleText = Sbar doit avoir une propriété qui s'appelle SimpleText

CMD.Action = un évenement ???

CMD.FileName = Renvoie le nom du fichier de l'objet CMD

 

 

et donc ça ne marche pas car peut etre que c'est pas bien régler au niveau de version autocad ...

 

regarde ici avec quel framework tu dois compiler pour tel ou tel version d'autocad... je sais pas si ça marchera apres mais bon faut essayer ^^

http://cad.kerlom.fr/developpement_vb.php

Posté(e)

Ok ok merci.

 

J'ai du mal a comprendre pourquoi il n'y a pas de compatibilité avec les versions les plus récente d'AutoCAD.

Parce j'ai essayé avec AutoCAD 2008 et ça roule bien...

 

Bref, merci pour les infos en tout cas, je vais essayer de fouiner encore un peu !

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité