Aller au contenu

Les PC d\'aujourd\'hui sont trop rapides...


Messages recommandés

Posté(e)

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 CAMPEDEL

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

Posté(e)

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

Posté(e)

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

Posté(e)

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

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

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

Posté(e)

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

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

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

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

Dans l'usage des raccourcis clavier repensés tu trouveras la voie.

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é