CADxp: Démarrer avec AutoCAD .NET - CADxp

Aller au contenu

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

Démarrer avec AutoCAD .NET

#1 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10925
  • Inscrit(e) : 02-septembre 05

Posté 07 avril 2012 - 19:34

Salut,

Je voudrais ici essayer de partager ma petite expérience avec AutoCAD .NET pour aider ceux qui voudraient (ou seraient contraints) se lancer dans l'aventure.
Sans vouloir décourager personne, je dois quand même préciser que si la puissance est au rendez vous avec .NET, on ne joue plus dans la même cour qu'avec AutoLISP ou VBA. La courbe d'apprentissage sera plus exigeante et plus longue.

Avant tout, je pense sincèrement qu'il est indispensable d'avoir au moins des bases élémentaires en .NET dans l'environnement Windows -ainsi que des notions de Programmation Orientée Objet (POO)- avant de se lancer dans la programmation d'AutoCAD avec .NET.

Choix du langage
Une des caractéristiques de .NET est de supporter plusieurs langages.
Les plus utilisés sont : C# qui a été développé spécialement pour .NET, VB.net qui est l'adaptation de l'ancien VB6 à la plateforme .NET.
Il s'agit donc dans un premier temps de choisir un de ces langage (à moins de vouloir apprendre les deux simultanément).
Les différences relèvent principalement de la syntaxe (excepté certaines dues à deux équipes de développement différentes et à la volonté de conserver certains comportements caractéristiques du VB6 en VB.net, mais ça dépasse le cadre de ce sujet, voir ici).
On peut trouver un comparateur des syntaxes C# et VB ici et un autre qui compare aussi VB(A) pour AutoCAD .
Ceux qui viennent du VBA seront naturellement tenté de choisir VB pensant qu'il seront au moins en terrain connu avec la syntaxe. Je ne suis pas du tout convaincu que ce soit un choix judicieux. Il est important de comprendre que malgré les similitudes syntaxiques, VB est très différent de l'ancien VB(A) et est beaucoup plus proche de C#. En choisissant plutôt C# que VB, le programmeur VBA se retrouvera sur un terrain complètement nouveau (ce qui est le cas) et ne sera pas tenté d'essayer de faire du VBA en .NET (ce qui, en général, ne marche pas).
Ne pas perdre de vue que l'apprentissage d'un nouveau langage (d'une syntaxe) est vraiment peu de chose à côté de l'apprentissage de la plateforme .NET et de la POO.
Personnellement, quand j'ai commencé, j'ai choisi C# parce qu'on trouvait plus d'exmples en C# qu'en VB pour AutoCAD (c'est toujours le cas, même si l'écart est aujourd'hui moins important) et parce que je trouve la syntaxe moins verbeuse.

Choix de l'environnement de développement
Donc, dans un premier temps, télécharger et installer un Environnement de Programmation Intégré (IDE) qui sera indépendant d'AutoCAD.
Il existe de nombreux IDE pour .NET mais Visual Studio est le plus répendu et les versions Express gratuites Visual C# Express ou Visual VB Express sont très largement suffisantes pour la plupart des programmeurs non professionels.

Apprentissage de .NET
Comme je le disais en préhembule, il est, à mon avis indispensable d'acquérir les bases de la programmation .NET et de la POO dans Windows avant de se lancer dans la programmation d'AutoCAD, même si, pour beaucoup d'entre nous, c'est le but
On trouvera de nombreux tutoriels sur le net dont les Coaches MSDN : Coach C# et Coach Visual Basic.
Il existe aussi de nombreux livres, je trouve que ceux de Thierry Groussard (Visual Basic 2010 (VB.NET) - Les fondamentaux du langage - Développer avec Visual Studio 2010 et C# - Les fondamentaux du langage - Développer avec Visual Studio 2010) sont assez bien fait et expliquent bien la POO.
La source principale de documentation sur le net est fournie par MSDN (Visual C# et Visual Basic ainsi que l'immense Bibliothèque de classes .NET Framework.

Programmer AutoCAD
Une fois familiarisé avec Visual Studio et l'environnement .NET, on peut s'attaquer plus sereinement à la programmation d'AutoCAD.
Là encore on trouvera quelques tutoriaux (en anglais) : AutoCAD .NET Training et My First Plug-in Training (le tuto est pour VB, mais on trouvera une traduction des codes en C# ici), et, en français, des tutoriels pour créer un modèle de projet Visual Studio C#, F# ou VB pour AutoCAD sur cette page.
L'incontournable et indispensable AutoCAD .NET Developer's Guide.
On trouvera les biblothèques de classe de l'API AutoCAD .NET le fichier : docs\arxmgd.chm qu'on trouvera dans la version d'ObjectARX qu'on n'aura pas manqué d'installer.

Ne manquez pas de poster critiques, questions, etc.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#2 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6167
  • Inscrit(e) : 06-janvier 03

Posté 15 mai 2012 - 08:53

Salut

Merci (gile)

Voir le message(gile), le 07 avril 2012 - 19:34 , dit :

L'incontournable et indispensable AutoCAD .NET Developer's Guide.

Comme le lien a l'air d'être incontournable, voici une version de sauvegarde au cas ou.

@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#3 L'utilisateur est hors-ligne   cadsera 

  • ceinture blanche
  • Groupe : Membres
  • Messages : 1
  • Inscrit(e) : 05-juillet 12

Posté 05 juillet 2012 - 10:10

Bonjour,

Je voudrais me remettre à la programmation sur autocad. Il y a quelques années j'ai developpé quelques procedures en VBA. j'ai commencé à me documenter sur .net, c#, objectarx, wizards, etc.. mais suis bloqué sur les outils à installer. Pouvez vous m'eclairer sur les combinaisons à utiliser ? par exemple Visual C# express 2010 ou 2008 avec quel autocad, quelle version d'arx ou des wizards .NET?

Merci pour votre aide

Ce message a été modifié par Tramber - 05 juillet 2012 - 11:56 .
Raison de l'édition : quote inutile

0

#4 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10925
  • Inscrit(e) : 02-septembre 05

Posté 08 juillet 2012 - 12:21

Salut et bienvenue,

Les versions de Visual Studio sont basées sur des versions du Framework NET (pour VS2005 c'est le Framework 2.0, pour VS2008 : 3.0/3.5 et pour VS2010 : 4.0) mais les versions de VS plus récentes peuvent très bien cibler des Frameworks plus anciens.
Donc avec VS2010, on peut très bien développer des applications basées sur le Framework 2.0.

Les différentes versions d'ObjectARX (plus précisément, les bibliothèques -DLL- de l'API .NET AutoCAD) sont aussi basées sur différentes versions de Framework :
A2007-2009 : Fw 2.0
A2010-2011 : Fw 3.5
A2012-2013 : Fw 4.0
Excepté pour A2013 qui requiert impérativement d'utiliser le Fw 4.0 et ObjectARX 2013, une application ciblant le Fw 2.0 et ObjectARX 2007 fonctionnera pour toutes les versions d'AutoCAD de 2007 à 2012 (il existe de très rares exceptions avec certaines classes qui ont été modifiées depuis A2010).

En résumé, avec VS2010, on peut faire plus large qu'avec VS2008*, la compatibilité de l'application dépend essentiellement de la version d'ObjectARX ciblée (et du Framework correspondant).

Pour des renseignements plus complets, voir le billet de Serge Camiré sur Augifr.


* toutefois VS2008 possède un utilitaire de migration de code VB6 en VB.net qui n'existe plus dans VS2010.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#5 L'utilisateur est hors-ligne   DeveloppeurZw 

  • ceinture blanche
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 13-mars 14

Posté 04 avril 2014 - 21:58

Voir le message(gile), le 07 avril 2012 - 19:34 , dit :

Salut,

Je voudrais ici essayer de partager ma petite expérience avec AutoCAD .NET pour aider ceux qui voudraient (ou seraient contraints) se lancer dans l'aventure.
Sans vouloir décourager personne, je dois quand même préciser que si la puissance est au rendez vous avec .NET, on ne joue plus dans la même cour qu'avec AutoLISP ou VBA. La courbe d'apprentissage sera plus exigeante et plus longue.

[...]


Bonjour, merci pour le post malgré quelques liens qui font erreur 404 - Not found, à partir de "Créer un modèle AutoCAD pour Visual Studio 2010".
Après avoir visiter les sources d'infos en général, j'ai l'impression d'avoir une confusion sur ce que le .NET peut vraiment faire: est-ce que VB.NET peut générer des Zrx dans Visual Studio comme avec C++ ou bien quelle est la vraie différence entre les deux? Est-ce toujours la commande NetLoad qu'on utilise pour lancer des programmes pour Autocad, fait en .NET? Merci de bien vouloir m'éclaircir là-dessus
0

#6 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10925
  • Inscrit(e) : 02-septembre 05

Posté 04 avril 2014 - 22:11

Salut,

Oui les liens vers les articles que j'avais fait dans AcadLabs sont rompus depuis que ce site est fermé.
On peut retouver les tutos pour créer des modèles de projet en C# et VB sur cette page.

Non, on ne peut faire d'ARX (ZRX) en .NET (uniquement des DLL). La principale différence entre .NET et ObjectARX/C++ est, à mon avis l'ipossibilité en .NET de créer des objets personnalisés.

Oui, c'est toujours la commande NETLOAD qui est utilisée pour carger une application .NET dans AutoCAD mais il existe des méthode de chargement automatiques via la base de registre ou le mécanisme Autoloader (voir ici).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#7 L'utilisateur est hors-ligne   DeveloppeurZw 

  • ceinture blanche
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 13-mars 14

Posté 06 avril 2014 - 18:34

Voir le message(gile), le 04 avril 2014 - 22:11 , dit :

[...]

Non, on ne peut faire d'ARX (ZRX) en .NET (uniquement des DLL). La principale différence entre .NET et ObjectARX/C++ est, à mon avis l'ipossibilité en .NET de créer des objets personnalisés.



Merci pour votre réponse, je commence déjà à beaucoup discerner ces deux ;) , mais qu'entendez vous par "objets personnalisés", pouvez-vous me donner un exemple clair et facile.
0

#8 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10925
  • Inscrit(e) : 02-septembre 05

Posté 06 avril 2014 - 18:44

Il d'agit d'objets spécifiques (graphiques ou non) créés par des applications verticales (AutoCAD Mechanical, Architecture, MEP, MAP, etc.) ou des applications externes qui offrent des possibilités supplémentaires.
Voir ici.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#9 L'utilisateur est hors-ligne   DeveloppeurZw 

  • ceinture blanche
  • Groupe : Membres
  • Messages : 3
  • Inscrit(e) : 13-mars 14

Posté 07 avril 2014 - 16:48

Voir le message(gile), le 04 avril 2014 - 22:11 , dit :


Non, on ne peut faire d'ARX (ZRX) en .NET (uniquement des DLL). La principale différence entre .NET et ObjectARX/C++ est, à mon avis l'ipossibilité en .NET de créer des objets personnalisés.



Merci pour les liens, j'aimerai aussi connaître si l'on peut insérer des instructions Lisp/Vlisp dans un programme fait en VB.NET, et comment le faire si cela est possible (syntaxe,...).

Dans ZwCad, est-ce qu'il y aurait un guide d'utilisateur de développement .Net? je voudrais trouver les classes, attribut, méthodes propres à ZwCad.

Merci encore.
0

#10 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7790
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 07 avril 2014 - 17:19

Coucou

Citation

Oui les liens vers les articles que j'avais fait dans AcadLabs sont rompus depuis que ce site est fermé.



j'en suis désolé mais depuis le "clash" sur le serveur de mon fils je ne m'y suis pas remis
j'ai l'intention de faire renaître le site mais je ne sais pas la réelle demande, ce site parlera à 99 % de programmation AutoCAD
pour info je viens de me faire bouter par un éditeur lui ayant proposé mon "livre" de programmation (AutoLISP) au prétexte que le "marché" est trop restreint.
j'en ai plus de cent cinquante pages ... que je garde au chaud pour didacticiel pour le site (si site il y a)


tenez-moi au courant des demandes et je relancerai mon fils pour le site dédié. le cas échéant

amicalement
Éternel débutant ...
Les bases AutoLisp
0

#11 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10925
  • Inscrit(e) : 02-septembre 05

Posté 07 avril 2014 - 18:20

Citation

j'aimerai aussi connaître si l'on peut insérer des instructions Lisp/Vlisp dans un programme fait en VB.NET, et comment le faire si cela est possible (syntaxe,...).


Je ne connais pas l'API .NET de ZwCAD, mais dans celle d'AutoCAD on peut le faire.
S'il s'agit juste de lancer une procédure LISP, on peut utiliser les méthodes d'appel de commandes.
S'il s'agit d'appeler une fonction LISP pour récupérer sa valeur de retour, depuis AutoCAD 2011, on peut utiliser la méthode statique Application.Invoke() (pour être exposée à une application extérieure, la fonction LISP doit être enregistrée avec vl-acad-defun). Pour les versions antérieures, il fallait fair un p/Invoke de la méthode ObjectARX acedInvoke().

Toutefois, je pense qu'il est préférable de ne pas trop mélanger les environnements de programmation et que ça peut être un bon exercice de ré-écrire les fonctions LISP en .NET.

Citation

Dans ZwCad, est-ce qu'il y aurait un guide d'utilisateur de développement .Net? je voudrais trouver les classes, attribut, méthodes propres à ZwCad.

Je n'en sais rien, il vaudrait mieux s'adresser directement à l'éditeur de ZwCAD.
En tout cas, il est toujours possible d'utiliser l'explorateur d'objet de Visual Studio pour explorer les espaces de nom et leur contenu. On peut aussi utiliser un désassembleur comme Reflector ou IlSpy.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
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)