Aller au contenu

Messages recommandés

Posté(e)

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 autres

3. Je trouver la succession seulement des racines.

Evgeniy

Posté(e)
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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)
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

Posté(e)
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 .NET

Si c'est compatible depuis 2000, pourquoi pas.

 

@+

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

Posté(e)

+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 pas

et 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...

Posté(e)
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

 

./__\.
(.°=°.)
Posté(e)

 

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

Posté(e)

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.

 

Amicalement

Vincent

 

[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)

Posté(e)

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.5

boxer -> 12.2

2CV -> 34.5

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

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

Posté(e)

 

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

Posté(e)

Mais je ne suis pas sur que toutes les APis aient ete exposees / dispos

en 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

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é