Iu63 Posté(e) le 10 février Posté(e) le 10 février Bonjour, J'ai un problème avec ma boucle "repeat", cette boucle me permet de dupliquer des présentions dans lequel j'ai 2 viewports à chaque fois. Ainsi si je lui dis par exemple que j'ai 5 pages, il va me faire 2 copies, 4 pages 1 copie etc, jusqu’à là tout fonctionne. De plus j'ai fais en sorte d'avoir un décalage avec la fonction pan dans chaque viewports, de manière linéaire. c'est à dire dans le viewport 2 j'ai 1 x "valeur decalage" dans le viewport 3 j'ai 2x"valeur decalage" etc L'élément problématique ici est le fait qu'avec, 3,4,5,6 pages cela fonctionne très bien mais à partir de 7 pages donc 4 copies les décalages de pan sont complétement déréglés. Et je comprends pas pourquoi c'est à partir de ce moment là alors que tout fonctionne par paire (5 et 6; 7 et 8 ; 9 et 10 etc...) De plus je tiens à dire que les duplications de layout se passent bien comme je le souhaite. Voici le lisp : (setq nb (atoi nombre_pages)) ;; Convertir en entier si nécessaire (if (< nb 3) (princ "\nMoins de 3, donc pas de copie.") (progn ;; Calcul du nombre de copies en fonction du nombre saisi (if (<= nb 4) (setq copies 1) (setq copies (+ 2 (fix (/ (- nb 5) 2))))) (princ (strcat "\nLa commande sera exécutée " (itoa copies) " fois.")) ;; échelle (setq ptpan1 (list 0 0)) ;; Point de départ fixe (setq ptpandecal1 (cond ((or (= choix_echelle "1/50")) (list 0 (* (/ Latab 20) copies))) ((or (= choix_echelle "1/100")) (list 0 (* (/ Latab 10) copies))) ((or (= choix_echelle "1/25")) (list 0 (* (/ Latab 40) copies))) (T (list 0 0)) ;; Échelle non reconnue : pas de décalage ) (princ (strcat "\nValeur du décalage : " (itoa copies))) ) (setq i 0) (repeat copies ; LE PROBLEME ARRIVE DANS CETTE BOUCLE (progn ;; Construit un nom dynamique pour la présentation : ;; la première copie s'appellera "n", puis "n1", "n2", etc. (setq nameSuffix (if (= i 0) "n" (strcat "n" (itoa i)))) (princ (strcat "\nCréation de la présentation : " nameSuffix)) ;; --- Copie et établissement de la présentation actuelle avec un nom unique --- (command "-presentation" "c" "" nameSuffix) (command "-presentation" "E" nameSuffix) ;; --- Sélection des viewports dans le layout actif --- (setq ss (ssget "X" (list (cons 0 "VIEWPORT") (cons 410 (getvar "CTAB"))))) (if ss (progn (princ (strcat "\n" (itoa (sslength ss)) " viewport(s) sélectionné(s).")) ;; Si plusieurs viewports existent, on sélectionne le premier (if (> (sslength ss) 1) (progn (setq viewport1 (ssname ss 0)) (princ "\nPremier viewport sélectionné.") ) ) ) (princ "\nAucun viewport trouvé.") ) ;; Passage en espace objet (command "_MSPACE") ; Deverrouillage VIEWPORT (command "_mview" "V" "I" "TOUT" "") ;; --- Déplacement de la vue (PAN) --- (command "-pan" ptpan1 ptpandecal1) ;; --- Sélection et modification du viewport actif --- (setq ss (ssget "X" (list (cons 0 "VIEWPORT") (cons 410 (getvar "CTAB"))))) (if ss (progn (setq num (sslength ss)) (princ (strcat "\nNombre de viewports trouvés : " (itoa num))) (if (>= num 3) (progn ;; Sélection directe du troisième viewport (index = 3) (setq vp-index 3) (command-s "_MSPACE") (setvar "CVPORT" vp-index) (princ (strcat "\nViewport " (itoa vp-index) " activé.")) ) (princ "\nIl n'y a pas assez de viewports.") ) ) (princ "\nAucun viewport trouvé.") ) ;; --- Réexécution du déplacement (PAN) --- (command "-pan" ptpan1 ptpandecal1) (princ "\n--- Exécution de la copie terminée ---") ; Deverrouillage VIEWPORT (command "_mview" "V" "A" "TOUT" "") (setq i (1+ i)) ) ) ) )
didier Posté(e) le 11 février Posté(e) le 11 février Bonjour Je ne comprends pas vraiment la question, car je n'arrive pas à reproduire le souci. Le LSP semble incomplet et si ça se trouve l'erreur est dans ce qui n'est pas fourni. Je remarque quelques erreurs de-ci de-là, mais rien de bloquant. Vous pourriez nous donner un DWG et le LSP complet s'il vous plaît ? Pour essayer de trouver une réponse appropriée. Annotez le DWG pour nous expliquer les phases. Et nous décrire le souci ou donner le message d'erreur. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Iu63 Posté(e) lundi à 13:49 Auteur Posté(e) lundi à 13:49 Autant pour moi, j'ai trouvé mon erreur, merci quand même pour votre réponse
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