ElpanovEvgeniy Posté(e) le 3 décembre 2009 Posté(e) le 3 décembre 2009 L'algorithme de mon premier et ton programme sont semblables.Mon deuxième programme utilise un autre algorithme.1. Je trouve l'une fois les paires des blocs mis.2. Je trouve les racines des blocs - qui ne sont pas mis dans les autres3. Je trouver la succession seulement des racines. Evgeniy
Patrick_35 Posté(e) le 3 décembre 2009 Posté(e) le 3 décembre 2009 You're THE KING, Evgeniy !J'approuve :) Ensuite, pour les classements, tout est très relatif, et dépend de ce que fait la routine et de jusqu'où on veut bien aller dans l'optimisation.Personnellement, entre les deux routines d'Evgeniy, la concision et la pureté du code de la première m'émeut beaucoup plus que que les quelques millisecondes gagnées avec la seconde.Je ne suis pas tout à fait d'accord.La beauté du code d'accord, mais pas au mépris de sa vitesse.Certes, quelques millisecondes ne feront pas une grande différence, mais si on applique ces codes sur un grand nombre de blocs, le temps perdu passe vite à quelques secondes, voir quelques minutes et du coup, on perd en convivialité.Maintenant, cela reste un choix.Perso, je préfère une boucle while que par exemple d'un mapcar suivi d'un vl-remove et d'un apply.La beauté n'est pas forcement au rendez-vous, mais son efficacité oui. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 3 décembre 2009 Auteur Posté(e) le 3 décembre 2009 La beauté du code d'accord, mais pas au mépris de sa vitesse. Comme dirait Doug Broad (un éminent lispeur) : si le but est la vitesse, il vaut mieux laisser tomber le LISP et passer à un autre langage.Une routine équivalente (même algorithme) est au minimum deux fois plus rapide avec .NET et jusqu'à 10 fois avec C++.Le problème avec C++ c'est qu'il faut au moins 10 fois plus de temps pour l'écrire et la déboguer (sans compter le temps d'apprentissage...).Ce n'est pas le cas avec .NET qui est plus accessible (surtout avec le background que tu as).Alors mets toi au C#, je me sentirais moins seul ;) D'ailleurs, pour être sûr tout purger avec .NET cette question ne se pose pas, il existe une méthode Purge dans la classe Database à qui on passe une collection d'ObjectId qui retourne la collection après en avoir retiré les objets non purgeables, il suffit de faire une boucle while tant que la collection retournée n'est pas vide. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 Comme dirait Doug Broad (un éminent lispeur) : si le but est la vitesse, il vaut mieux laisser tomber le LISP et passer à un autre langage.Oui, mais pour la beauté d'un code, se retrouver avec une 2cv à la place d'une Porsche, c'est un choix.Avec c++, se retrouver avec une Ferrari, pourquoi pas.J'y ai songé d'y passer.La seule chose qui m'empêche de m'y mettre sérieusement est la comptabilité entre les différentes versions d'Autocad.Question que je me pose avec le .NETSi c'est compatible depuis 2000, pourquoi pas. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bseb67 Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 +1 pour moi, intéressé pour développer avec autre chose que du lisp,le vb/vba ne me tente pas trop, mais le .Net pour quoi paset si en plus c'est plus rapide c'est tout bénef :cool: Mais la question est surtout comment programmer ?avec quoi ? Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Tramber Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 se retrouver avec une 2cv à la place d'une Porsche, c'est un choix.Avec c++, se retrouver avec une Ferrari, pourquoi pas. Je vous signale que la 2CV a aussi un moteur en V à 180°. Elle a juste quelques cylindres en moins. Ah vous voulez me froisser, vous allez voir :casstet: [Edité le 4/12/2009 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lecrabe Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 Hello Sans vouloir trop m'avancer car ce n'est pas mon truc, je crois que la programmation en DOTNET n'a ete reellement possible que depuis la version 2007 !? Je pense en effet que pour un Lisp/VLisp eur, il faut envisager de passer au DOTNET et oublier le VBA et oublier aussi le C++ ARX ! Le Decapode Autodesk Expert Elite Team
zebulon_ Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 Bonjour, la 2CV a aussi un moteur en V à 180° En V à 180°, comment est-ce possible ? J'étais, il y a de cela quelques années, le fier propriétaire d'une Dyane 6 (celle qui devait succéder à la légendaire 2CV, mais qui a été produite moins longtemps qu'elle) et on m'a expliqué, à l'époque, qu'il s'agissait d'un moteur à plat avec 2 cylindres horizontaux opposés (flat-twin ou boxer). Sans vouloir te froisser, Tramber, on peut donc difficilement parler d'un V. AmicalementVincent [Edité le 4/12/2009 par zebulon_] C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Tramber Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 Tu me froisses.Si nous avions été à 179 ou 181°, on aurait bien parlé d'un V.2CV et dérivés, porsche et la célébre et pêchue alfa-romeo du nom de Boxer (l'alfasud aussi je pense).Sans oublier les moteurs de motocyclette BMW (empruntés en cachette par Citroën dans les années 30 pour développer la TPV[2cv]. BENCHMARK :911 -> 7.5boxer -> 12.22CV -> 34.5 Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
(gile) Posté(e) le 4 décembre 2009 Auteur Posté(e) le 4 décembre 2009 Oui, mais pour la beauté d'un code, se retrouver avec une 2cv à la place d'une Porsche, c'est un choix. Eh, c'est nous autres le méridionaux qui avons la réputation d'exagérer. ;) Il me semble que la différence de vitesse entre les 2 codes donnés par Evgeniy, par exemple, n'est pas du tout de l'ordre de grandeur de ta comparaison.D'autre part, je parlais d'émotion. Je suis aussi assez attentif à la performance. je crois que la programmation en DOTNET n'a ete reellement possible que depuis la version 2007 Il me semble que c'est 2004 ou 2005, mais en tous cas, pas de compatibilité avec 2000. Mais la question est surtout comment programmer ?avec quoi ? Voir ce sujet sur AcadLabs.com qui se voulait, au dire de Didier un peu plus orienté programmation, mais qui a du mal à décoller. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 4 décembre 2009 Posté(e) le 4 décembre 2009 Hello En effet le DOTNET v1.x s'installait avec AutoCAD 2006 Mais je ne suis pas sur que toutes les APis aient ete exposees / dispos en DOTNET a cette epoque !? Le Decapode Autodesk Expert Elite Team
(gile) Posté(e) le 4 décembre 2009 Auteur Posté(e) le 4 décembre 2009 Mais je ne suis pas sur que toutes les APis aient ete exposees / disposen DOTNET a cette epoque !? En effet, à chaque nouvelle version d'ObjectARX de nouvelles API ("classes managées") sont exposées sans que les anciennes soient modifiées ce qui assure la compatibilité avec les versions futures.C'est le même principe pour les différentes versions du Framework.net qui ne sont que des couches ajoutées au Framework précédents. Par exemple, LispDialog utilise la classe LispFunctionAttribute apparue avec la version 2007 et le Framework 2.0. Elle n'est donc pas compatible avec les versions antérieures à 2007 mais fonctionne sur 2008, 2009 et 2010 et devrait fonctionner sur les prochaines versions aussi.Triangulation2010 utilise la classe SubMesh apparue avec la version 2010 (nouveaux maillages) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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