Bortch59 Posté(e) le 26 janvier 2014 Posté(e) le 26 janvier 2014 Bonjour, quelqu'un saurait-il m'aiguiller afin de sortir "proprement" de cette fonction perso.Elle réalise parfaitement ce pour quoi elle a été créée à savoir calculer une altimétrie et la remplacer dans un texte autant de fois qu'il y a de sélection. Mais la méthode n'est pas très élégante et la sortie pas très propre. J'ai droit à un message d'erreur en sortie de code (Erreur: type d'argument incorrect: lentityp nil) du au fait que je donne une entrée vide comme argument à (entsel) [et non (getreal) comme indiqué hier soir, la nuit porte conseil]. Donc ma question comment rendre ce morceau de code plus "Lispien"? Merci (defun AI_EDIT_ALT (/) (setq ALT (GetDicoPerso "Altimétrie")) (setq AiReseau (getreal "\nNouvelle Altimétrie (m): ")) (setq AncText "AncText") (while (/= AncText "") (setq AncText (entget (car (entsel "\nSélectionnez le texte à éditer: ")) ) ) (setq EditText (strcat (substr (cdr (assoc 1 AncText)) 1 (- (strlen (cdr (assoc 1 AncText))) 16) ) (strcat (rtos AiReseau 2 2) "m / " (rtos (+ AiReseau ALT) 2 2) "NGF" ) ) ) (entmod (subst (cons 1 EditText) (assoc 1 AncText) AncText)) ) )
Patrick_35 Posté(e) le 27 janvier 2014 Posté(e) le 27 janvier 2014 Salut Par exemple(defun AI_EDIT_ALT (/) (setq ALT (GetDicoPerso "Altimétrie")) (setq AiReseau (getreal "\nNouvelle Altimétrie (m): ")) ; (setq AncText "AncText") (while (setq sel (entsel "\nSélectionnez le texte à éditer: ")) (setq AncText (entget (car sel))) (setq EditText (strcat (substr (cdr (assoc 1 AncText)) 1 (- (strlen (cdr (assoc 1 AncText))) 16) ) (strcat (rtos AiReseau 2 2) "m / " (rtos (+ AiReseau ALT) 2 2) "NGF" ) ) ) (entmod (subst (cons 1 EditText) (assoc 1 AncText) AncText)) ) ) ps : non testé @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bortch59 Posté(e) le 27 janvier 2014 Auteur Posté(e) le 27 janvier 2014 Salut, L'évidence m'a sautée aux yeux. Le problème n'était pas de fournir (nil) comme argument à (entsel) mais à (entget) (si je ne me trompe pas). 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