zebulon_ Posté(e) le 27 octobre 2005 Posté(e) le 27 octobre 2005 Bonjour, Maintenant qu'on s'est bien amusé à faire des fmults à des échelles bien définies... http://www.cadxp.com/sujetXForum-7372.htm on voudrait aller un cran plus loin et vérifier, avant d'imprimer si les fmults de l'onglet courant de l'espace papier n'ont pas des échelles farfelues.Ca vous est sans doute déjà arrivé aussi de faire une fmult, d'y définir une échelle genre 1:100, de reporter cette echelle dans le titre de la vue et/ou dans le cartouche et, plus tard, refaire un zoom malencontreux dans cette fenêtre (avec la molette de la souris ça va vite !) et vous vous retrouvez avec une fmult au 1:103.655 ou au 1:98.665 sans vous en rendre compte.Vous imprimez votre plan pour le donner à l'économiste, qui chiffre le projet en s'aidant de son kutch (comme tous les économistes) et le pauvre aura 2, 3, 5% dans la vue (en plus ou en moins suivant le sens de rotation de la molette). Je vous soumet donc ce lisp, qui vérifie que les echelles des fmults sont dans la liste définie par le sujet cité ci-dessus. Pourquoi pas substituer ce lisp à la commande _plot ? (defun listeautorisee (/ F FLAG TEMP) (if (setq F (open (strcat (getvar "ROAMABLEROOTPREFIX") "fmmo.fmo") "r")) (progn (setq LZXPAUTORISE nil) (setq FLAG T) (setq TEMP (read-line F)) (setq TEMP (read-line F)) (setq TEMP (read-line F)) (While (setq L (read-line F)) (if FLAG (setq FLAG nil) (progn (setq LZXPAUTORISE (append LZXPAUTORISE (list (rtos (cal L) 2 3)))) (setq FLAG T) ) ) ) (close F) ) (setq LZXPAUTORISE '("1.000" "2.000" "4.000" "5.000" "6.667" "8.000" "10.000" "13.333" "20.000" "40.000" "50.000" "100.000" "200.000" "500.000" "1000.000")) ) ) (defun monimp_ep () (if (not (member "geomcal.arx" (arx))) (arxload "geomcal") ) (setvar "DIMZIN" 0) ; pour que le rtos ne sucre pas les zero du ZXP (listeautorisee) (setq ss (ssget "X" (list '(0 . "VIEWPORT") (cons 410 CTAB)))) ; sélectionne les fenêtres de l'onglet courant (if ss (progn (setq SSL (sslength ss)) (setq I 0) (setq LZXP "") (setq SSE (ssadd)) ; définit SSE comme un jeu de sélection nul (while (< I SSL) (setq E (ssname SS I)) (setq A (entget E)) (setq I (+ I 1)) (setq G41 (cdr (assoc 41 A))) (setq G45 (cdr (assoc 45 A))) (setq G90 (cdr (assoc 90 A))) (setq G69 (cdr (assoc 69 A))) (if (/= G69 1) ; ce n'est pas la fenêtre de présentation elle-même (if (= (rem G90 2) 0) ; ce n'est pas une vue perspective (progn (setq ZXP (rtos (/ G41 G45) 2 3)) (if (not (member ZXP LZXPAUTORISE)) (progn (setq sse (ssadd E sse)) (setq LZXP (strcat LZXP ZXP "\n")) ) ) ) ) ) ) (if (/= LZXP "") (progn (alert (strcat "Fenêtre(s) avec echelle(s) non autorisée(s)\n" LZXP)) (sssetfirst nil sse) ;; afficher les poignées (initget "Oui Non") (setq REP (getkword "\nImrimer quand même [Oui] ou Non : ")) (if (= REP "Oui") (progn (initdia) (command "_plot") ) ) ) (progn (initdia) (command "_plot") ) ) ) ) ) (defun c:monimp () (setq CTAB (getvar "ctab")) ; nom de la présentation courante (if (= CTAB "Model") (progn ; imprimer dans l'espace objet (initdia) (command "_plot") ) (monimp_ep) ; imprimer dans l'espace papier ) (princ) ) ça me fait penser que je pourrais peut être activer le verrouillage de la fmult créée avec le 1er lisp ? Commande FMULT Verrou Actif A priori, ça semble être bien, mais à y regarder de plus près, le verrouillage des fmults verrouille "trop". On ne peut plus faire de zoom à l'intérieur de la fmult (et c'est plutôt bien), mais on ne peut plus faire de pan non plus (et là c'est moins bien) Amicalement Zebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
didier Posté(e) le 27 octobre 2005 Posté(e) le 27 octobre 2005 Bonjour je ne suis pas partisan de tout "lisper",je n'ai pas lu ton code dans le détail maisil n'empêche que c'est un bel effort et je te tire mon chapeau. pour ce qui est des "pan" et "zoom" dans les fenêtres,AutoCad propose une option, http://img484.imageshack.us/img484/8800/cadxp133dg.png en cliquant cette icône, tu te retrouves dans ta fenêtre, et même vérouilléeles zooms et autres pans sont autorisés.en quittant tu retrouves ton espace papier originel. amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 27 octobre 2005 Posté(e) le 27 octobre 2005 Salut Pour verrouiller une fenêtre (vl-load-com) (vla-put-displaylocked (vlax-ename->vla-object (car (entsel))) :vlax-true) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
zebulon_ Posté(e) le 27 octobre 2005 Auteur Posté(e) le 27 octobre 2005 pour ce qui est des "pan" et "zoom" dans les fenêtres,AutoCad propose une option, à partir de l'A2006 ? C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
(gile) Posté(e) le 27 octobre 2005 Posté(e) le 27 octobre 2005 Salut, à partir de l'A2006 ? Déjà dans la version 2005 (peut-être même 2004, je ne me souviens plus). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
zebulon_ Posté(e) le 27 octobre 2005 Auteur Posté(e) le 27 octobre 2005 Je n'ai que la 2004 et je n'ai pas trouvé. Alors ça doit être à partir de la 2005, ou bien je ne cherche pas au bon endroit... à savoir la barre d'état ? C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
(gile) Posté(e) le 27 octobre 2005 Posté(e) le 27 octobre 2005 Dans la barre d'état, mais uniquement dans l'espace présentation. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
zebulon_ Posté(e) le 27 octobre 2005 Auteur Posté(e) le 27 octobre 2005 Donc je confirme, pas dans la 2004 Amicalement Zebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
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