Laurent_CAMPEDEL Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 Bonjour tous. J'ai besoin de ce que je pense être une bricole pour un pro du lsp. La routine ci-dessous me permet, après avoir placé des niveaux de bâtiment l'un au-dessus de l'autre suivant l'axe y (ou l'un à coté de l'autre suivant l'axe x), de me déplacer d'un niveau à l'autre en tapant 2 lettres. Elle me permet aussi de créer un effet stroboscopique qui, grace à la persistence rétienne, me sert à repérer les éventuelles différences qu'il peut y avoir entre 2 niveaux.Le problème, c'est que ce qui fonctionnait très bien avec mon vieux poste et hors service avec mon nouveau : la nouvelle machine est trop puissante et les réaffichages sont trop rapides ! J'ai donc besoin de ralentir la routine yhb.Il faudrait insérer derrière chaque commande "-pan" un délai réglable de manière à pouvoir ralentir la routine à volonté. Merci d'avance. ;Créé en 2003 par Laurent CAMPEDEL ;Déplacement du point de vue sur l'axe des y suivant un pas défini (defun C:yb () (command "-pan" "0,0" (list 0 ypan))) (defun C:yh () (command "-pan" "0,0" (list 0 (* -1 ypan)))) (defun C:yy () (setq ypan (getreal "\nEntrez le pas de déplacement:")) (prompt "\nTapez yb pour aller vers le bas") (prompt "\nTpaez yh pour aller vers le haut") ) (defun C:yhb() (repeat 200 (command "-pan" "0,0" (list 0 (* -1 ypan))) (command "-pan" "0,0" (list 0 ypan)) ) ) [Edité le 15/11/2007 par Laurent_CAMPEDEL] Laurent CAMPEDELDans l'usage des raccourcis clavier repensés tu trouveras la voie.
bseb67 Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 Salut Laurent! En langage C il existe une petite fonction des fois très pratique qui s'appelle SLEEP.On lui passait en paramètre le nombre de millisecondes de pause que l'on voulait avoir. Mais en lisp, elle n'existe pas, donc méthode bête et méchante: ;-------------------------------; ; nom: sleep ; ; role: équivalent du sleep en c; ; param: tm => temps en ms ; ; retour: aucun ; ; date: 22/10/2007 ; ; BLAES Sébastien ; ;-------------------------------; (defun sleep( tm) (setq t1 (getvar "DATE")) (while (< (* 86400000 (- (getvar "DATE") t1)) (abs tm))) ) ; sleep Il te suffit d'appeler sleep entre tes commandes pan. a+ Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
(gile) Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 Salut, Ajoutes des appel à la commande DELAI (_DELAY) l'argument est en millisecondes. (defun C:yhb() (repeat 202 (command "-pan" "0,0" (list 0 (* -1 ypan))) (command "_delay" 50) (command "-pan" "0,0" (list 0 ypan)) (command "_delay" 50) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bseb67 Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 _Delay :o ! On m'aurai _Delay ;) Merci Gile, encore une chose d'apprise :cool: [Edité le 15/11/2007 par bseb67] Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Laurent_CAMPEDEL Posté(e) le 15 novembre 2007 Auteur Posté(e) le 15 novembre 2007 Salut, Ajoutes des appel à la commande DELAI (_DELAY) l'argument est en millisecondes. (defun C:yhb() (repeat 202 (command "-pan" "0,0" (list 0 (* -1 ypan))) (command "_delay" 50) (command "-pan" "0,0" (list 0 ypan)) (command "_delay" 50) ) ) Merci Giles pour ce petit coup de main. Mais zob, ça n'arrange rien ! :casstet: Avec un essai sur un dessin comportant 2 traits et un cercle espacés de 200 unités, les pans ne se font pas correctement ! En mettant le délai à 200, on devrait avoir l'afficher pendant 2 secondes le trait seul, puis pendant 2 secondes le trait avec le cercle, puis etc. Or là, le 1er pan se fait, mais pas les suivants, sauf aléatoirement. C'est quoi ce binss ? :mad: Laurent CAMPEDELDans l'usage des raccourcis clavier repensés tu trouveras la voie.
(gile) Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 En mettant le délai à 200, on devrait avoir l'afficher pendant 2 secondes le trait seul, puis pendant 2 secondes le trait avec le cercle, puis etc. Plutôt pendant 2 dixième de secondes.As tu essayé avec d'autres delais, chez moi ça marche très bien (core2duo T7400 2.16GHz, 2 Go de RAM) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Laurent_CAMPEDEL Posté(e) le 15 novembre 2007 Auteur Posté(e) le 15 novembre 2007 En mettant le délai à 200, on devrait avoir l'afficher pendant 2 secondes le trait seul, puis pendant 2 secondes le trait avec le cercle, puis etc. Plutôt pendant 2 dixième de secondes.Groumf, oui, évidemment ! Sauf qu'AutoCAD s'est bien chargé de m'aider à me tromper ! La routine fonctionne en fait, même sans délai ! Enfin, elle fonctionne correctement seulement si le curseur n'est pas dans l'espace graphique ! Si le curseur est dans l'espace texte, alors pas de problèmes. Si par contre il est dans l'espace de dessin, alors le comportement est ératique, avec des pans fait 1 fois sur 10 ou alors après plusieurs secondes !!! Bon, je peux maintenant m'en servir comme je veux, mais malgrè tout, c'est quoi encore ce binss ? Ca ne le fait pas chez toi ? As tu essayé avec d'autres delais, chez moi ça marche très bien (core2duo T7400 2.16GHz, 2 Go de RAM) [Edité le 15/11/2007 par Laurent_CAMPEDEL] Laurent CAMPEDELDans l'usage des raccourcis clavier repensés tu trouveras la voie.
(gile) Posté(e) le 15 novembre 2007 Posté(e) le 15 novembre 2007 Enfin, elle fonctionne correctement seulement si le curseur n'est pas dans l'espace graphique ! Chez moi aussi :casstet: Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
nomutt Posté(e) le 16 novembre 2007 Posté(e) le 16 novembre 2007 Bonjour, Désactivez donc le mode dyn pour voir un peu ! variable "dynmode" à 0 Nomutt,Consultant, Responsable Projets CAD/PLM'Add-ins pour Inventor + Trucs et Astuces.Disponible pour un poste administrateur CAO/PLM.
Laurent_CAMPEDEL Posté(e) le 16 novembre 2007 Auteur Posté(e) le 16 novembre 2007 Bonjour, Désactivez donc le mode dyn pour voir un peu ! variable "dynmode" à 0 Bien pensé ! Mais elle est réglé par défaut à 0 lorsque j'ouvre chaque fichier... Laurent CAMPEDELDans l'usage des raccourcis clavier repensés tu trouveras la voie.
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