CADxp: Routines Carto VBA - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Routines Carto VBA Cartographie AutoCAD VBA a partir d'un fichier GRD

#1 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 16 août 2019 - 11:20

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


-1

#2 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 20 août 2019 - 14:35

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!
0

#3 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8549
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 21 août 2019 - 19:37

Hello

Une réponse sans réfléchir :

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

https://knowledge.au...cad.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
0

#4 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 22 août 2019 - 12:33

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

#5 L'utilisateur est hors-ligne   Curlygoth 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 11
  • Inscrit(e) : 09-mai 19

Posté 23 août 2019 - 14:54

c'est quoi le but de ton programme ?

j'utilise uniquement les méthodes ActiveX.

Que souhaites tu faire ?
0

#6 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 29 août 2019 - 16:01

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

#7 L'utilisateur est hors-ligne   Curlygoth 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 11
  • Inscrit(e) : 09-mai 19

Posté 03 septembre 2019 - 15:10

c'est vrai que je ne vois pas la partie qui calcul tes dégrader pour chaque face ...

tu n'as pas d'autres modules ?
0

#8 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 04 septembre 2019 - 11:32

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
0

#9 L'utilisateur est hors-ligne   Curlygoth 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 11
  • Inscrit(e) : 09-mai 19

Posté 06 septembre 2019 - 12:18

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...oppement_vb.php
0

#10 L'utilisateur est hors-ligne   Nicky 

  • Member
  • PipPip
  • Groupe : Membres
  • Messages : 10
  • Inscrit(e) : 26-juin 19

Posté 08 septembre 2019 - 21:05

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 !
0

#11 L'utilisateur est en ligne   Olivier Eckmann 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1270
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 09 septembre 2019 - 08:27

Bonjour,

Si tu lis l'anglais, il y a cette discussion datant de 2014 sur la perte des contrôle OCX 32 bits depuis le passage à VBA 7 et les plates-formes 32/64bits (notamment le Common Dialog) avec du code permettant de gérer les cas 32 et 64 bits.

Olivier
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)