Aller au contenu

Routines Carto VBA


Nicky

Messages recommandés

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
Lien vers le commentaire
Partager sur d’autres sites

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!

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Une réponse sans réfléchir :

 

As tu ajoute / installe le VBA "par dessus" ton AutoCAD !?

 

https://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/download-the-microsoft-vba-module-for-autocad.html?v=2018

 

Car cela fait bien longtemps que le VBA pour AutoCAD n est plus livré par Autodesk !

 

Bye, lecrabe "triste"

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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é