Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Quelles sont les avantages et les inconvénients (mes codes ne sont certainement pas parfait) de ces 3 développements suivants:

 

Numéro 1:

(setvar "CMDECHO" 0)

(command "-calque" "_thaw" "*" "")

(command "-calque" "_on" "*" "")

(setvar "CMDECHO" 1)

 

Numéro2:

(setq I 0)

(setq CALQUECARACTERISTIQUE1 (tblnext "LAYER" T))

(while (/= CALQUECARACTERISTIQUE1 nil)

(setq CALQUE (cdr (assoc 2 CALQUECARACTERISTIQUE1)))

(setq ETATGELERLIBERER (cdr (assoc 70 CALQUECARACTERISTIQUE1)))

(setq COULEUR (cdr (assoc 62 CALQUECARACTERISTIQUE1)))

(if (or (= ETATGELERLIBERER 1) (< COULEUR 0))

(progn

(setq CALQUECARACTERISTIQUE2 (tblobjname "LAYER" CALQUE))

(setq CALQUECARACTERISTIQUELISTE (entget CALQUECARACTERISTIQUE2))

(if (= ETATGELERLIBERER 1)

(setq CALQUECARACTERISTIQUELISTE (subst (cons 70 0) (assoc 70 CALQUECARACTERISTIQUELISTE) CALQUECARACTERISTIQUELISTE)))

(if (< COULEUR 0)

(progn

(setq COULEUR (* COULEUR -1))

(setq CALQUECARACTERISTIQUELISTE (subst (cons 62 COULEUR) (assoc 62 CALQUECARACTERISTIQUELISTE) CALQUECARACTERISTIQUELISTE))

))

(entmod CALQUECARACTERISTIQUELISTE)

))

 

(setq CALQUECARACTERISTIQUE1 (tblnext "LAYER"))

(setq I (+ I 1))

)

(command "regen")

 

Numéro 3:

 

(vl-load-com)

(setq acdoc (vla-get-Activedocument (vlax-get-acad-object)))

(vlax-for CALQUE (vla-get-Layers acdoc)

(if (/= (vla-get-Freeze CALQUE) :vlax-false)

(progn

(vla-put-Freeze CALQUE :vlax-false)

))

(if (= (vla-get-LayerOn CALQUE) :vlax-false)

(progn

(vla-put-LayerOn CALQUE :vlax-true)

))

)

(vla-regen acdoc acActiveViewport)

(princ)

)

 

Merci d'avance

Posté(e)

Le numéro 1 est plus court ;) et donc le plus facile à comprendre et le moins coûteux en terme de développement. Il ne fonctionnera que sur une version française car tu as utilisé CALQUE au lieu de _LAYER.

 

Le 1 et le 2 sont à 100% AutoLISP donc il fonctionneront aussi sur Mac à priori ou sur un clone d'AutoCAD type IntelliCAD.

 

Le 3 utilise l'API ActiveX donc il ne fonctionnera que sur une plateforme Windows (hors AutoCAD OEM).

 

Pour les performances, c'est impossible à déterminer sauf à faire un benchmark. Et ça n'a aucun intérêt sur un code tel que celui là.

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Posté(e)

Merci pour cette réponse.

 

Donc, j'en conclu qu'un développement avec des commandes autocad est plus lent qu'un développement en autolisp qui est plus lent qu'un développement en visuallisp.

Aussi, je dois privilégier un développement en visuallisp dans la mesure de mes compétences, de ma rapidité à créer un code et de l'enjeu de la commande à créer.

Posté(e)

Bonjour,

 

Pour information il y a un Lisp de Michael Puckett proposé par Patrick sur son site (je ne trouve pas le site "officiel" de Michael Puckett) :

 

http://patrick.blog-cao.com/2011/04/08/benchmark/

 

utile si l'on doute de la rapidité d'exécution d'un code par rapport à un autre.

 

@+

C'est en forgeant que l'on devient forgerons.

Et c'est en sciant que Léonard DeVinci!

Posté(e)

Merci pour cette réponse.

 

Donc, j'en conclu qu'un développement avec des commandes autocad est plus lent qu'un développement en autolisp qui est plus lent qu'un développement en visuallisp.

Aussi, je dois privilégier un développement en visuallisp dans la mesure de mes compétences, de ma rapidité à créer un code et de l'enjeu de la commande à créer.

 

Non, tu ne peux pas tirer des conclusions comme ça. Ça dépends de ce que le programme fait. Il faut prendre le chemin le plus court, la version numéro 1 ici et si tu as des problèmes de performances, tu cherches une autre solution. Ça ne sert à rien de perdre 1 heure pour gagner 100 ms.

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Posté(e)
Donc, j'en conclu qu'un développement avec des commandes autocad est plus lent qu'un développement en autolisp qui est plus lent qu'un développement en visuallisp.

 

Comme dit Maxence, les performances dépendent de ce que tu fais et j'ajouterais : surtout de la manière dont tu le fais (algorithmie). Je me souviens d'un challenge sur TheSwamp (traitement de dizaines voire centaines de points) où les réponses les plus performantes étaient plus de 30 fois plus rapides que les plus "naives".

 

Les tests faits par les chasseurs de millisecondes ont montré, qu'en général, command est toujours plus lent mais qu'AutoLISP (avec les fonctions entmake, entmod) est aussi rapide que Visual LISP.

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

  • 1 mois après...
Posté(e)

Pour information il y a un Lisp de Michael Puckett proposé par Patrick sur son site (je ne trouve pas le site "officiel" de Michael Puckett) :

 

http://patrick.blog-...4/08/benchmark/

 

utile si l'on doute de la rapidité d'exécution d'un code par rapport à un autre.

 

@+

 

Patrick,

Bien Tardivement, je souhaite utiliser l'info d'Alala, cependant le lien est mort.

Comme ce lien est dirigé vers ton blog CAO, peux-tu me dire si j'ai une chance encore d'accéder à cette page puisque tu as eu des soucis d'hébergement du site.

 

Merci

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é