Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je souhaite débuter en programmation AutoCAD, il y a tellement de language.

Voici ma question "Quel language utiliser pour programmer sur AutoCAD, vb, vba, lisp, v-lisp ?

Je ne savais pas ou poster ma demande, déplacer mon sujet si nécessaire.

 

Merci d'avance

Posté(e)

Salut

 

Tout dépend de ce que tu connais déjà en programmation, de ce à quoi tu veux arriver et du temps que tu as à y consacrer.

 

Tout d'abord, je pense qu'on peut oublier VBA : ce langage est en train de mourir, même si Autodesk, qui annonce son retrait d'AutoCAD depuis la version 2010, finit, sous la pression des utilisateurs, par fournir l'environnement VBA AutoCAD séparément.

VBA n'est pas supporté par l'architecture 64 bits qui tend à devenir la norme.

 

Restent donc trois environnements de développement pour AutoCAD, du plus facile d'accès au plus ardu à apprendre.

 

AutoLISP et son extension Visual LISP.

AutoLISP est un langage de très haut niveau et embarqué (l'interpréteur/compilateur fait partie d'AutoCAD) complètement intégré à AutoCAD ce qui va grandement faciliter son apprentissage. depuis Visual LISP (A2000) un Environnement de Développement Intégré (IDE) l'éditeur Vusual LISP est intégré à AutoCAD.

Même si on peut trouver la syntaxe du LISP particulière (proche de l'écriture mathématique), l'apprentissage est assez facile et on peut très rapidement écrire des petites routines.

La puissance d'un véritable langage de programmation n'en est pas moins au rendez vous et on peut trouver, ici ou là, de nombreux programmes écrit en LISP qui le montre.

Avec Visual LISP, qui permet l'accès à ActiveX/COM Automation, l'environnement LISP n'a rien à envier au (feu) VBA si ce n'est l'élaboration des boites de dialogue (mais cet handicap peut être largement compensé avec des outils comme OpenDCL ou ObjectDCL).

On peut quand même regretter qu'AutoLISP n'ai plus évolué depuis l'ajout de Visual LISP.

L'autre inconvénient d'AutoLISP est qu'il ne permet la programmation que depuis AutoCAD (ou un de ses clones).

 

DotNET (.NET)

Depuis la version 2006 AutoCAD supporte le nouvel environnement de programmation Windows : .NET (censé remplacer VBA/VB6) qui permet d'écrire des programmes dans différents langages (C#, VB.net, F#, etc.) indépendamment de l'architecture processeur (voire du système d'exploitation).

.NET permet le développement d'application Windows et Web, facilite l'accès aux bases de données etc.

Autodesk développe et maintient une Interface de Programmation pour Application pour cet environnement (API AutoCAD.NET) qui ne cesse de s'élargir à chaque version.

AutoCAD.NET est indéniablement plus puissant qu'AutoLISP / Visual LISP surtout niveau des possibilités d'accès aux objets AutoCAD (en lecture comme en écriture).

On parle là de langages de "haut niveau" par rapport à C/C++. Les bibliothèques de l'API AutoCAD.NET sont essentiellement constituées de classes ObjectARX "emballées" pour pouvoir être utilisées avec du code "managé",c'est à dire, pour faire très court, que le programmeur n'aura pratiquement jamais à se préoccuper de libération des ressources pour ces objets.

Mais l'apprentissage de l'environnement .NET est beaucoup plus long que celui du LISP et le fait de devoir utiliser un IDE extérieur à AutoCAD (Visual Studio par exemple) ne facilite pas les tests et le débogage.

Le choix du langage utilisé C# ou VB pour les deux principaux est essentiellement une question de syntaxe les deux ayant les même possibilités et performances. C# est le langage développé spécifiquement pour .NET (syntaxe proche de C et Java) VB.net est une adaptation de VB6 à l'environnement .NET.

 

ObjectARX (C/C++)

ObjectARX est aujourd'hui l'environnement de programmation "racine" d'AutoCAD toutes les autres interfaces (LISP, NET) découlent d'ObjectARX.

ObjectARX permet donc de faire à peu près tout ce qu'on veut dans AutoCAD, y compris des "objets personnalisés" comme les objets spécifiques aux applications verticales (architecture, MEP, MAP etc.) à condition de maitriser les langages de bas niveau C et C++.

ObjectARX est incontestablement l'environnement le plus puissant autant en terme de possibilités que de performances, mais l'apprentissage des langages utilisés et des bibliothèques le réserve aux programmeurs professionnels.

 

En résumé, pour débuter en programmation sur AutoCAD, je conseillerais sans hésiter le LISP à moins qu'on connaisse déjà l'environnement .NET (ou qu'on soit vraiment allergique à la syntaxe du LISP).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour,

 

(gile) je voudrai profiter de ton intervention pour avoir un avis plus personnel, j’ai lu que tu avais choisie au départ C# pour l’apprentissage de l’environnement .NET pourquoi n’avoir pas choisie directement C++ (il me semble que le langage est supporté par l’environnement .NET).

 

Est-ce parce que C++ est un langage de plus bas niveau et donc plus «beaucoup» difficile d’accès que C# (en plus de l’apprentissage de .NET)?

 

Si je m’interroge sur tes choix, c’est que je me sens dans une bonne dynamique d’apprentissage et d’assimilation, aujourd’hui mes modestes objectifs initiaux en matière de programmation sont quasi atteint voir même dépassé dans certain cas, à savoir créer acquérir une certaine autonomie dans l’élaboration de mes propres routines.

 

En continuant sur cette voie, je me dis que peut être l’envie et la motivation me pousseront à sortir de l’environnement AutoCAD. Même si ce n’est pas d’actualité disons que je commence à m’interroger sur des notions qui me sont étrangères, en cherchant à évaluer le temps et la difficulté que cela représenterai..

 

Merci,

Apprendre => Prendre => Rendre

Posté(e)

Salut,

 

On peut effectivement écrire du code "managé" (.NET) en C++ (on parle alors parfois de C++/CLI pour Common Intermediate Language).

À mon avis ça n'a qu'un intérêt très limité pour ceux qui connaissent bien le langage C++ et veulent faire des programmes avec .NET sans passer à la syntaxe C#.

Je crois savoir que C++/CLI n'a pas eu (du tout) de succès (tout comme J#, le Java pour .NET), les programmeurs C++ (ou Java) qui se sont mis au .NET ont eu tôt fait d'apprendre C# dont la syntaxe est très proche de ces deux langages et complètement adapté l'environnement .NET (C# a été développé pour .NET).

 

C++ (natif) est un langage de bas niveau (comme C mais orienté Objet) dont l'apprentissage et l'utilisation sont beaucoup plus difficile. À mon avis à réserver au programmeurs professionnels.

 

Le choix que j'ai fait quand j'ai commencé avec .NET s'est opéré surtout entre C# et VB. Il est essentiellement dû à deux choses :

- on trouvait beaucoup plus d'exemples de codes pour AutoCAD en C# qu'en VB ce qui peut s'expliquer par le fait que les premiers utilisateurs d'AutoCAD.NET étaient des programmeurs ObjectARX/C++ essayant la nouvelle interface de plus haut niveau. Les utilisateurs de VB.net se sont fait plus nombreux plus tard et étaient (sont) surtout des programmeurs qui voulaient migrer leurs codes VBA.

Ceci explique explique peut-être aussi que le plus souvent les exemples en C# étaient de meilleure qualité que ceux en VB (le premiers écrit par de gens passant à un environnement "plus facile" les seconds à un environnement "plus difficile".

Mais ces différences s'aplanissent peu à peu.

- la deuxième raison est plus accessoire, j'ai toujours eu du mal avec la syntaxe des langages issus du Basic que je trouve verbeuse (parfois au point masquer la structure du code).

 

Depuis F# est apparu, c'est un langage que j'aime beaucoup mais on peu regretter qu'il soit (encore) très confidentiel.

 

Pour résumer, si tu veux passer à la vitesse supérieure et programmer hors AutoCAD (voire hors Windows avec Mono), je pense que .NET est bon environnement (quel que soit le langages utilisé) pour des programmeurs passionnés comme toi.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci, pour toutes ces précisions.

 

Depuis F# est apparu, c'est un langage que j'aime beaucoup mais on peut regretter qu'il soit (encore) très confidentiel.

C’est un peu, pourquoi je ne l’ai pas cité, à moins que cela ne change, car si un jour je me lance en .NET le choix du langage se fera dans un premier temps en fonction de l’importance de sa communauté (communauté francophone de préférence).

 

je pense que .NET est bon environnement (quel que soit le langages utilisé) pour des programmeurs passionnés comme toi.

Plus passionné que programmeur et ce n'est pas vraiment d’actualité mais disons que je ne m’interdit plus rien depuis que je me suis aperçu que passé du diesel au lisp n’a rien eu d’insurmontable et du Lisp au VLisp non plus même si pour ce dernier je m’étais laissé impressionné un bon moment par les termes: propriétés, méthodes , objet, Automations ActiveX, variants etc..

 

Sinon pour rester un peu dans le sujet, j’ai vu qu’il existait également d’autres possibilité que celles cités précédemment, notamment Delphi (pour créer des ARX, il me semble) mais je sais plus si tous cela est encore d’actualité..

 

 

A+

(Ps: J’ai même un moment pensé à Common Lisp, avant de rapidement laisser tomber l’idée n’ayant pas trouvé de communauté francophone suffisamment vivante pour débuter sérieusement..)

Apprendre => Prendre => Rendre

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é