vannes Posté(e) le 6 mai 2013 Posté(e) le 6 mai 2013 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
Maxence DELANNOY Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 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 DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
vannes Posté(e) le 7 mai 2013 Auteur Posté(e) le 7 mai 2013 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.
alala Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 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!
vannes Posté(e) le 7 mai 2013 Auteur Posté(e) le 7 mai 2013 OK, je vais tester et je donnerai le résultat.
Maxence DELANNOY Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 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 DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
vannes Posté(e) le 7 mai 2013 Auteur Posté(e) le 7 mai 2013 Bien sur.C'est ce que je voulais exprimer dans ma conclusion.
(gile) Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 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
vannes Posté(e) le 20 juin 2013 Auteur Posté(e) le 20 juin 2013 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
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