#1 Wed 15 February 2006 10:33
- paul-henri pelloux
- Participant occasionnel
- Lieu: france
- Date d'inscription: 17 Nov 2005
- Messages: 23
Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour
Objet : programmation et Autocad
Ayant déjà regardé sur le site de CADxp je souhaiterai néanmoins avoir un avis de géomaticien sur la programmation et Autocad
3 questions :
- En quoi la programmation les aide t'ils dans leur travail ?
- Quelles sont les utilisations principales de la programmation sous Autocad ?
- Quel est le langage le plus utile pour les géomaticiens :LISP ou bien VBA ?
Merci par avance.
Paul-Henri PELLOUX
Communauté d'Agglomération Rouennaise.
Hors ligne
#2 Thu 16 February 2006 11:11
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3175
- Site web
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour,
-1) En quoi la programmation les aide t'ils dans leur travail:
-2) Quelles sont les utilisations principales de la programmation sous Autocad ?
-3) Quel est le langage le plus utile pour les géomaticiens :LISP ou bien VBA ?
Ces trois questions sont liées, et pour commencer il faut répondre à la troisième en posant une question : quel est le type d'Autocad utilisé, sil s'agit d'une version LT le langage VBA n'est pas implémenté, ce qui réduit la programmaion au LISP. (Qui n'est qu'un langage de macro commande).
S'il s'agit de la version pro, l'tilisation de VBA est fortement recommandée. Du fait des possibilités accrues de VBA par rapport à LISP.
Concernant la qestion 1 et 2 :
Il s'agit d'automatiser des tâches répétitives, (LISP VBA) et/ou effectuer des taches particulières sur des objets Autocad (VBA).
Exemple de tâches repétitives : déplacer toutes les polilygnes rouges vers le calque Toto.
Exemple de tâches particulière : Appliquer une transformation d'helmert à toutes les polilygnes et exporter les somets dans un fichier texte NXY.
D'un point de vue personnel je pense qu'il faut privilégier les solutions VBA car elles permettent une utilisation complète du modèle objet ACAD et offre des extentions propres à VB (exemple de création fichier texte). Et plus encore (c'est ma solution) piloter le modele objet à partir d'une application indépendante écrite en VB, cette appli lance un thread d'Autocad (qui peut être invisible à l'utilisateur) et manipule les objets et fonctions autocad directement. Ce qui permet entre autre de lire un dwg et de le transformer en autre chose.
Ceci dit , le plus gros problème sera de trouver qqu'un qui connait Autocad, le domaine d'application (géomatique ?) , et la programmation VB6 ou VBA.
Sachant que l'apprentissage du Modèle Objet ACAD pour qqu'un qui connait VB et le fonctionnement d'ACAD demande quand même quelques jours voir semaine.
Salutations
Christophe Vergon
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Sun 19 February 2006 21:56
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4779
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonsoir
Je vais rectifier qq erreurs du message de DIANA2D !
Qq précisions, le langage de développement "historique" avec un VRAI AutoCAD
c'est l'AutoLisp apparu "sérieusement" avec la version 2.5 en 1986.
Il est TOUJOURS d'actualité et permet beaucoup de choses
à condition de supporter "this stupid language with parenthesis".
Depuis l'an 2000 environ, on dispose en plus du V-Lisp (Forme plus évolué)
qui est encore plus performant et surtout protegeable.
Le VBA est apparu avec la version R14 en 1997.
Il est très interessant pour des gens qui connaissent le VB (v5 ou v6).
Cependant comme le dit DIANA2D, il faut connaitre le modèle objet AutoCAD
ce qui est facile pour quelqu'un qui a déjà programmé en AutoLisp.
La 1ère possibilité de développement en C++ est survenue avec les versions
DOS 386 R11 & R12 (Développement en ADS avec le Metaware High C 386).
Le C++ (Développement en ARX) avec les compilateurs et environnements de développement (Visual C++ / Visual NET / etc) est apparu avec la "médiocre" R13 en 1995.
C'est avec la version R14 (Une des meilleures versions d'AutoCAD)
et surtout la version 2000 (en 1999) que l'ARX a commencé son envol !
Donc aujourd'hui sur un vrai AutoCAD, on peut développer en:
AutoLisp, V-Lisp, VBA, C++ (Microsoft) en ARX.
Par contre AutoCAD LT n'a aucun language de développement sauf
les scripts (suite séquentielle "bête" de commandes AutoCAD)
ou bien en macro de type Diesel (A peine moins "bête").
Donc AutoCAD LT est TRES LIMITE sauf à utiliser des produits spéciaux
comme LT-Extender qui "rétablit" presque complètement
l'AutoLisp à l'intérieur d'AutoCAD LT.
ATTENTION: C'est une violation de la licence Autodesk.
Je pense avoir fait le tour des possibilités de développement
sous AutoCAD et de son historique.
Geobye
(Autodesk Expert Elite Team)
Hors ligne
#4 Mon 20 February 2006 12:42
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3175
- Site web
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour,
Effectivement j'ai confondu Diesel et AutoLISP.
Mille excuses
C'est du à l'ennui (plus les colères de cette m... de truc buggé, verrouillé) que m'inspire certaine "personalisation AutocadLT2000"...
Et la colère ça fait rarement réfléchir correctement.
Je suis content de voir préciser la violation de Licence qu'est l'utilisation de LT-EXtender.
Encore pardon pour les erreurs, mais comme disent nos sportifs au JO, l'essentiel c'est de participer.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#5 Thu 01 June 2006 05:17
- AndreaLISP
- Juste Inscrit !
- Date d'inscription: 1 Jun 2006
- Messages: 2
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour,
Je suis nouveau ici.
et je suis tombé par hazard sur ce sujet..
J'aimerais y mettre quelques informations supplémentaires..si vous permettez.
Je travaille avec AutoCAD depuis la version 2.0 et programme avec AutoCAd depuis la version 10.
Je me suis souvent demandé quelle était la meilleure façon ou la meilleure solutions ou la plus stable..ou la plus évolué etc....Lisp ou VBA ou C++ ou ARX ??
Je suis présentement technicien support technique pour une firme d'ingénierie oeuvrant dans plusieurs domaine....entre-autre la géomatique.
environt 1500 employés.
Mon travaille consiste à développer, concevoir, tester, mettre à jour les nouveaux produits sur AutoCAD.
Or, j'ai le regret de vous dire, ceci:
Tous les programmes VBA ou VB qui sont activé dans AutoCAD ne sont pas tous compaptible et promettent des erreurs extrèmes.
VBA utilise des fichiers source dll pour ces fins...cependant certains de ces fichiers sont écrasé lors d'une ré-installation de MSoffice par exempleou Outlook ou d'autre applications requérent VB. Donc, si AutoCAD ne retrouve pas les bonnes version de ces fichiers, la programmation ne fonctionne plus.... il faut donc ré-installer AutoCAD ou re-copier les fichiers dll requis.
VBA utilise aussi des fichiers dll différent, dépendament du language utlisé..
je parle ici de Anglais/Francais par exemple.
Si un VBA à été créer avec des fichiers dll en anglais et que votre système d'exploitation est Windows XP francais.....le programme ne fonctionnera pas. À moins que dans ce programme inclus les fichiers dll requis.....qui parcontre pourrais emmener d'autres complication.
Bref, j'ai banni tous les programme VB d'AutoCAD. trop de conflics.
La meilleure solution est vraiment le language LSP qui demeurera tant et aussi longtemps que AutoCAd existera...et qui évolu à chaques version...exemple VISUALisp et qui ma fois...peut faire beaucoup plus que ce que le VB peut faire lorsqu'on s'y connait. ;-)
Une autre solution serais de créer une programmation C++...natif AutoCAD.
Cependant, notre département géomatique n'utilise plus le logiciel AutoCAD depuis nombreuses années....c'est maintenant ArcGIS qui à pris le dessus.
Voilà, c'étais mon premier et possiblement mon seul commentaire ici.
en espérant vous avoir éclairé un peu plus.
Merci de m'avoir lu.
Salutations.
Hors ligne
#6 Thu 01 June 2006 16:11
- paul-henri pelloux
- Participant occasionnel
- Lieu: france
- Date d'inscription: 17 Nov 2005
- Messages: 23
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour
J'ai lu attentivement ce que tu as écrits et cela m'intéresse d'autant plus que je dois suivre une formation en programmation sur Autocad.
Ce qui m'étonne c'est que le problème particulier des "dll" que tu as évoqué je ne l'ai pas retrouvé sur le forum cadXP. Ce forum rend compte des expériences des utilisateurs sur Autocad et notamment sur les avantages et inconvénients de la programmation en LISP ou VBA ?
Il me semblait que le VBA était intéressant pour gérer des données alphanumériques, ce que ne fait pas le LISP ?
Bonne journée.
Paul-Henri PELLOUX
Edit : déplacement de ce "message ancien" vers le forum le plus adéquat, même si celui-ci n'est pas censé traiter des parties Autocad non liées aux SIG.
Dernière modification par Fred (Thu 01 June 2006 16:16)
Hors ligne
#7 Fri 02 June 2006 09:18
- fabcad
- Participant assidu
- Lieu: Acigné
- Date d'inscription: 3 Apr 2006
- Messages: 275
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Le langage AutoLISP combiné avec les possibilités de VBA avec VLISP permet beaucoup de traitements.
Il faut aussi ajouter que pour le logiciel SIG AutoDESK MAP le langage AutoLISP est enrichi par des fonctions AutoLISP propres à AutoDESK MAP.
Ces ajouts sont en fait les commandes de l'analyseur d'expressions de MAP 3D.
Par exemple l'acces aux propriétés AutoCAD est grandement facilité.
en AutoLISP :
(setq c1 (ssname js i))
(setq ent (entget c1))
(setq chn (cdr (assoc 1 ent))) afin de récupérer la valeur d'un texte.
En AutoLISP d'AutoDESK MAP :
(setq c1 (ssname js i))
(setq calque-obj (ade_expreval c1 ".LAYER" "string"))
Il a aussi des fonctions de manipulations de chaines,etc.
D'ou la possibilité de créer beaucoup de fonctions pour la gestion d'une base de données graphiques et des possibilités d'AutoDESK MAP.
Voilà les informations que je voulais ajouter.
En ligne
#8 Fri 02 June 2006 18:12
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4779
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonsoir
Félicitations à Fabcad pour son excellente réponse, je ne suis pas (Malheureusement) programmeur sur AutoCAD (ou MAP), je ne sais que utiliser qq expressions AutoLisp "simples" qui me suffisent pour mon boulot quotidien ...
Sinon pour le reste, je "hante" différents sites et bien sur www.cadxp.com (Où je suis actif) qui est de très loin le meilleur site Francophone sur les logiciels Autodesk (et qq autres logiciels de DAO/CAO).
Car en général, on arrive à trouver "assez facilement" la routine que l'on recherche ...
si bien sur, on a le temps de surfer ... Les Newsgroups US sont aussi assez intéressants !
Il est évident que l'AutoLisp et le V-Lisp sont "a priori" les meilleurs outils pour développer sur AutoCAD (ou MAP) en gardant un maximum de compatibilité d'une version à une autre !
Je suis 100% d'accord avec notre cher pompier Fabcad.
Je déconseille "plutôt" le VBA pour de multiples raisons évoquées par Andrealisp.
L'autre possibilité c'est le développement en ARX avec les compilateurs Microsoft C++ ...
Alors là on boxe dans une autre catégorie, celle des PROs !
A ma connaissance, il y a aujourd'hui 2 sociétés qui ont un nombre "significatif" de développeurs "expérimentés" en ARX sur AutoCAD '(ou MAP), c'est GEOMEDIA à Brest (Produit COVADIS: Topo / VRD) et GEOMAP (Spécialisé en SIG) au Bourget du Lac (73). J'espère n'avoir vexé personne ! La PUB est gratuite !
Déja c'est pas simple de stabiliser une plateforme de développement, car vous devez avoir de multiples versions des compilateurs et librairies OPERATIONNELLEs sur votre PC pour développer et maintenir simultanément vos programmes ARX sur par exemple: ACAD 2004 / 2005 / 2006 / 2007 / etc.
Le Lisp et V-Lisp ont (A mon avis) encore de beaux jours à voir venir ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#9 Mon 05 June 2006 19:02
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3175
- Site web
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour,
A l'évidence les lispiens sont convinquants.
Pour revenir à mon intervention, l'utilisation du modele objet Autocad sous VB6 est satisfaisante.
J'avoue que je n'utilise le VBA que pour des besoins personnels, donc sans soucis de dev.
Par contre la solution sous VB6 qui est différente de VBA, ne pose pas le pb des dll (elles sont fournies avec l'install du programme VB6).
Elle consite à lancer un thread ACAD invisible ou non à l'utilisateur depuis un programme VB, charger le fichier, le traiter et fermer ACAD.
Mais cette solutions ne convient effectivement pas à une personnalisation d'Autocad. Mais elle permet en revanche d'effectuer des traitements volumineux sans soucis et rapidement.
Un solution supérieure au classique export DXF puis traitement par un exe extérieur.
(on shunte la lecture ecriture et la gestion du format).
Un exemple concret : le traitement de polylignes représentant des parcelles, pour controle de fermeture, vérification et correction du maillage pour les parties contigües de deux parcelles, ceci en vue de les transformer en objet topologiques type: Arc, Face, Noeud.
Bon ça doit être faisable en Lisp ...
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#10 Mon 05 June 2006 20:05
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4779
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonsoir Christophe
Je suis d'accord avec toi, le VB ou VBA est satisfaisant pour des besoins ponctuels !
Mais le Lisp ou VLisp passe plus facilement d'une version à une autre ...
Laissons l'ARX / Visual C++ Microsoft / DOTNET / etc aux professionnels !
Le traitement dont tu parles de vérifier que les polylignes ou lignes de contour de parcelles sont closes / etc, est un bon exemple de traitement à réaliser en Lisp ou VLisp ou VB ou VBA.
Les outils de nettoyage de dessin d'Autodesk MAP, puis la création d'une topologie de type Polygone (Face), puis une transformation de la topologie Polygone (Face) en Polylignes closes, ne te suffisent pas dans ton exemple ?
En fait par exemple dans les développements réalisés par GEOMAP en ARX sur Autodesk MAP, les fonctions ARX sont "exposées" et donc, sont attaquables en Lisp ou VLisp ce qui est le "pied" !
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#11 Mon 05 June 2006 20:43
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3175
- Site web
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonsoir,
Pour les outils de MAP je connais pas, donc ... ici le pb particulier est que deux polylignes qui devraient être contigües ne le sont pas forcément et en plus n'ont pas le même nombre de sommets pour la partie commune car issuent d'une digitalisation par exemple.
Et Lisp faut que je l'apprenne!
Et tant qu'à apprendre d'autre langages, je suis actuellement beaucoup plus branché JAVA qui a, à mon sens, plus que de l'avenir tant en géomatique qu'en informatique.
Et en plus c'est libre !
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#12 Wed 07 June 2006 04:42
- AndreaLISP
- Juste Inscrit !
- Date d'inscription: 1 Jun 2006
- Messages: 2
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
wow !! tout un débat !!
c'est l'fun ici !! ;-P
Ok alors pour ajouter un petit commentaire...
Mon emploi consiste à programmer et faire des test de compatibilité avec les programmes associé à AutoCAD.
la programmation ARX est très puissant mais faut connaitre le language C ou C++.
ça aide.
avec le language LSP...on peut vraiment tout faire avec AutoCAD et même plus que VBA.
par contre un petit handicap ce sont les boîtes de dialogue qui sont ma fois, un peu arcaïque.
Cependant, avec ObjectDCL les boîtes de dialogue c'est du gâteaux !! et même que VBA ne peut en faire d'aussi complets.
Pour ce qui est de JAVA......ouf !
si il y a un type de programmation qui est lourd et plein de problème...c'est bien celle là.
VB6....à éviter !,....voir plutôt VBnet ! plus stable.
Pour les débtants:
Je suggère la création de scripts, qui je pense peuvent faire des choses assez surprenantes !
Voilà,....j'espère n'avoir frustré personne....car ces commentaires proviennent tous de tests effectués avec divers programmes.
Certains sont très bon en d'autres types de programmations et je m'incline devant eux.
Amicalement.
Hors ligne
#13 Wed 07 June 2006 09:03
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Et Lisp faut que je l'apprenne!
Code:
( ((( (((( (Bon Courage !) )))) ))) ) ( Avec... (les parenthèses c'est...) ) (...vraiment pas évident...) (...de ne pas en oublier :D )
Sinon, le LISP est très efficace comme langage. Un de mes instructeur Autocad m'a dit une fois qu'un bon code LISP était un code court....Et en rapidité d'exécution c'est aussi valable.
Pat, peux tu préciser ce qui suit ?
Les outils de nettoyage de dessin d'Autodesk MAP
Ca m'intéresse, aurait-je loupé le bon menu ? Peux tu répondre ici ?
Géocadistiquement,
Robin
Hors ligne
#14 Fri 04 August 2006 10:23
- Mataio
- Participant occasionnel
- Date d'inscription: 17 Oct 2005
- Messages: 39
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour à tous,
Je me permets de relancer ce fil de discussion qui est, à mon sens, trés instructif et trés intéressant.
Le traitement dont tu parles de vérifier que les polylignes ou lignes de contour de parcelles sont closes / etc, est un bon exemple de traitement à réaliser en Lisp ou VLisp ou VB ou VBA.
Les outils de nettoyage de dessin d'Autodesk MAP, puis la création d'une topologie de type Polygone (Face), puis une transformation de la topologie Polygone (Face) en Polylignes closes, ne te suffisent pas dans ton exemple ?
Le problème est que les librairies AutoLisp et ActiveX (VB et VBA) ne sont pas au même niveau d'aprés l'Autodesk Map Developer Help.
ActiveX and AutoLISP Scope
Autodesk Map ActiveX covers Autodesk Data Extension functionality (ADE), which includes drawing sets, queries, and object data. It does not cover map plotting or topology. For more information, see the Introduction topic in Autodesk Map ActiveX Help.
Autodesk Map AutoLISP covers Autodesk Data Extension functionality (ADE), which includes drawing sets, queries, and object data. It also covers map plotting and topology. For more information, see the Introduction topic in Autodesk Map AutoLISP Help.
L'ActiveX est apparemment moins exhaustif en terme d'implémentation de fonctions qu'AutoLisp. Dans ce cas précis donc, si l'on veut réaliser des traitements topologiques au moyen d'un langage "intégré" à Autodesk Map 3D (Je parle bien de topologie et non pas de fonctionnalités de nettoyage de dessins), il semble que la seule possibilité soit donnée par le langage AutoLisp.
Maintenant, j'aimerais, si vous le permettez, revenir à l'API .Net apparu avec la suite Autodesk 2006. L'Autodesk Developer Center en donne la présentation suivante pour Autodesk Map 3D 2007 :
The Autodesk Map 3D .NET API provides the same level of coverage as ObjectARX for Map 3D 2007. It enables developers to use their preferred major programming language, such as C++, VB.NET or C# to develop applications for Map 3D 2007 with more powerful and easy to use .NET tools.
J'aimerais donc avoir quelques retours d'expérience si cela était possible. L'API .Net est-il difficile à prendre en main ? Est-ce aussi complexe que l'Objet ARX ? ... Tout ce qui serait susceptible de nous en apprendre un peu plus sur ce nouveau venu dans la (grande) famille des langages de programmation d'Autodesk. Je vous en remercie par avance.
Cordialement.
Mataio
Hors ligne
#15 Sat 26 August 2006 16:55
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4779
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour
Pour la petite et grande histoire d'Autodesk, jetez un oeil à ce fil de discussion ...
http://georezo.net/forum/viewtopic.php?id=44042
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#16 Mon 04 September 2006 10:45
- Mataio
- Participant occasionnel
- Date d'inscription: 17 Oct 2005
- Messages: 39
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour,
J'ose espérer que l'absence de réponse était due aux grandes vacances. En ce jour de rentrée, je me permets donc de faire un up, que je compléterai.
Depuis mon dernier post, je me suis lancé dans l'environnement Visual Studio avec l'API .Net que propose Autodesk pour le pilotage de sa plateforme logicielle. Je précise que je ne suis pas du tout informaticien de formation.
Il s'avére que l'API .Net est très abordable à condition de disposer de quelques connaissances de bases en Visual Basic (Ben oui ! Faut un minimum ... ). Les codes d'exemple permettent d'entrevoir l'approche qui doit être mener pour "parler" à l'API, même si cela demeure à mon sens un peu léger, la doc ne permettant pas (ou peu) d'apprendre la grammaire de l'API .Net.
Ainsi l'API .Net se situe, en terme de complexité, entre le VBA et l'Object ARX. Comprenons que le langage de l'API .Net, est un peu plus complexe que VBA, mais bien plus abordable que l'Object ARX. Son principale avantage, comme je l'ai dit dans mon post précédent, c'est que l'ensemble des fonctions d'AutoCAD, et d'Autodesk Map 3D en l'ocurrence, y sont implémentées, au contraire de l'ActiveX (VB et VBA).
Cordialement,
Mataio
Dernière modification par Mataio (Mon 04 September 2006 11:58)
Hors ligne
#17 Mon 04 September 2006 11:47
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4779
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour Mataio
Un seul mot BRAVO ! C'est Super Sympa de nous faire part de tes expériences en développement API .NET sur AutoCAD / MAP 2007 ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#18 Thu 29 November 2007 09:13
- sowarona
- Juste Inscrit !
- Date d'inscription: 28 Nov 2007
- Messages: 1
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
je voudrais récuperer dans un fichier texte les lignes d'un fchier autocad avec ses caractéristiques ( coordonnées point de départ et point d'arrivée)
j'ai fait le code suivant ca ne marche pas. lobjectif est de génerer le fichier d'échande du logiciel EPANET. En considérant les noeuds comme des blocs c'est ok mais le problème qui persiste concerne les lignes .
de l'aide SVP.
Private Sub CommandButton1_Click()
Dim NomFichierText As String
Dim NomFichier As String
Dim FichAccess As String
FichAccess = ThisDrawing.FullName
' Pour être sûr que ce n'est pas un dessin sans nom
If FichAccess <> "" Then
' on retire l'extension dwg à la fin du nom
FichAccess = Left$(FichAccess, Len(FichAccess) - 4)
' on ajoute l'extension pour Access
Else
FichAccess = "SansNom" ' si le dessin n'a pas encore de nom
End If
'FichAccess = Left$(FichAccess, Len(FichAccess) - 4)
NomFichier = FichAccess
NomFichierText = NomFichier & ".txt"
Open NomFichierText For Output As #1
'Unload Me
'=================================================================================
Dim TL(1 To 100000, 1 To 12) As Variant
Dim k As Long
k = 1
Dim NombreTL As Long
Dim CompteurTL As Long
Dim objElem2 As AcadEntity
'Dim entry As AcadEntity
'For Each entry In ThisDrawing.ModelSpace
'objName = entry.ObjectName
'entry.Highlight (True)
'MsgBox "The name of this object is " & objName, vbInformation, "ObjectName Example"
'entry.Highlight (False)
'Next
For Each objElem2 In ThisDrawing.ModelSpace
' si l'élément est un bloc
If objElem2.EntityType = acdbLine Then
If k <= 9 Then ComplementNom = "N00"
If k >= 10 And k <= 99 Then ComplementNom = "N0"
If k > 100 And j <= 999 Then ComplementNom = "N"
If k > 1000 Then ComplementNom = "N"
objElem2.Highlight (True)
TL(k, 1) = k
TL(k, 2) = objElem2.ObjectName
TL(k, 3) = objElem2.Angle
TL(k, 4) = objElem2.Layer
TL(k, 5) = objElem2.StartPoint(0)
TL(k, 6) = objElem2.StartPoint(1)
TL(k, 7) = objElem2.StartPoint(2)
TL(k, 8) = objElem2.EndPoint(0)
TL(k, 9) = objElem2.EndPoint(1)
TL(k, 10) = objElem2.EndPoint(2)
TL(k, 11) = objElem2.Length
TL(k, 12) = objElem2.ObjectName & ComplementNom & k
TL(k, 13) = objElem2.Delta
TL(k, 14) = objElem2.Length
TL(k, 15) = objElem2.TrueColor
Print #1, TL(k, 1), TL(k, 2), TL(k, 3), TL(k, 4), TL(k, 5), TL(k, 6), TL(k, 7), TL(k, 8), TL(k, 9), TL(k, 10), TL(k, 11), TL(k, 12), TL(k, 12), TL(k, 13), TL(k, 14)
Print #1, ""
k = 1 + k
entry.Highlight (False)
End If
Next objElem2
NombreTL = k
Close #1
End Sub
Hors ligne
#19 Thu 20 December 2007 14:16
- Doungou
- Participant occasionnel
- Date d'inscription: 21 Nov 2007
- Messages: 18
Re: Programmation AutoCAD (Lisp, V-Lisp, VBA, ARX) !?
Bonjour
J'ai lu attentivement ces posting sur autocad et la programmation. et il ne fait aucun doute que la gamme de langages de programmation sous autocad est variée: lisp, V-lisp, VB, c++, VBA, VB.net,...
Moi je m'interesse plus particumièrement aux plates formes dotnet, je voudrais savoir l'avantage qu'offre la programmation sous dotnet (notamment C#) sur autocad par rapport aux autres langages cités ci haut.
Je suis entrain d'apprendre C#, et mon objectif est de choisir un langage qui va me permettre de programmer a la fois sur autocad, Arcgis et mapinfo.
Hors ligne