(gile) Posté(e) le 7 avril 2012 Partager Posté(e) le 7 avril 2012 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 langageUne 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 là.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éveloppementDonc, 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 .NETComme 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 butOn 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 AutoCADUne 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 - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick_35 Posté(e) le 15 mai 2012 Partager Posté(e) le 15 mai 2012 Salut Merci (gile) 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
cadsera Posté(e) le 5 juillet 2012 Partager Posté(e) le 5 juillet 2012 (modifié) 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 Modifié le 5 juillet 2012 par Tramber quote inutile Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 8 juillet 2012 Auteur Partager Posté(e) le 8 juillet 2012 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.0A2010-2011 : Fw 3.5A2012-2013 : Fw 4.0Excepté 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 - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DeveloppeurZw Posté(e) le 4 avril 2014 Partager Posté(e) le 4 avril 2014 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 4 avril 2014 Auteur Partager Posté(e) le 4 avril 2014 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 - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DeveloppeurZw Posté(e) le 6 avril 2014 Partager Posté(e) le 6 avril 2014 [...] 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 6 avril 2014 Auteur Partager Posté(e) le 6 avril 2014 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 - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DeveloppeurZw Posté(e) le 7 avril 2014 Partager Posté(e) le 7 avril 2014 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
didier Posté(e) le 7 avril 2014 Partager Posté(e) le 7 avril 2014 Coucou 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 remisj'ai l'intention de faire renaître le site mais je ne sais pas la réelle demande, ce site parlera à 99 % de programmation AutoCADpour 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... Mon site perso : Programmer dans AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 7 avril 2014 Auteur Partager Posté(e) le 7 avril 2014 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. 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 - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant