fabcad Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Bonjour à tous, Mon idée est de dessiner avec un rectangle les dimensions réelles du papier associé à une mise en page. Merci, Bonne journée,
je56 Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 salutFait une recherche sur le forum avec le lisp vrc.lsp .je ne sais plus qui a fait ce lisp mais je m'en sert très souvent et je pense qu'il correspond à ce que tu cherches. voir le lien http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=17890#pid73252 a+ Eric
fabcad Posté(e) le 30 juin 2011 Auteur Posté(e) le 30 juin 2011 Merci pour l'information, Ce n'est pas pour créer une fenêtre flottante en espace papier, j'utilise fmult puis zone graphique pour çà. Je souhaiterais dessiner un rectangle autour de cette fenêtre en prenant compte les 4 marges. Exemple pour un A4 :201.78 : largeur fenêtre flottante280.60 : hauteur fenêtre flottante 209.973 : largeur réelle papier296.926 : hauteur réelle papier Prendre ces dernières mesures afin de caler la polyligne rectangulaire. Fabrice
Raph_38 Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Le soucis, c'est que tes marges changent suivant le type d'imprimantes que tu sélectionne. Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !
(gile) Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Salut, Un petit truc en Visual LISP.La commande PLOTREC appelle la fonction gc:PlotAreaToRectangle pour dessiner un rectangle correspondant à la zone d'impression dans toutes les présentations.gc:PlotAreaToRectangle tient compte des paramètres choisis dans le gestionnaire de mise en page :- marges en fonction du traceur- orientation du dessin (portrait/paysage)- échelle du tracé (mm/unités)- origine du tracé différente de 0,0 ;; gc:PlotAreaToRectangle ;; Dessine un rectangle correspondant à la zone imprimable dans la présentation ;; ;; Argument ;; layout : la présentation (vla-object) (defun gc:PlotAreaToRectangle (layout / width height numerator denominator lowerLeft upperRight origin scale x y w h pts) (vla-GetPaperSize layout 'width 'height) ; taille du papier (vla-GetCustomScale layout 'numerator 'denominator) ; échelle (mm/unités) (vla-GetPaperMargins layout 'lowerLeft 'upperRight) ; marges (setq lowerLeft (vlax-safearray->list lowerLeft) upperRight (vlax-safearray->list upperRight) origin (vlax-get layout 'PlotOrigin) ; origine du tracé scale (/ denominator numerator) x (* (- (car origin)) scale) y (* (- (cadr origin)) scale) w (* (- width (car lowerLeft) (car upperRight)) scale) h (* (- height (cadr lowerLeft) (cadr upperRight)) scale) pts (if (zerop (rem (vla-get-PlotRotation layout) 2)) ; rotation (portrait/paysage) (list x y (+ x w) y (+ x w) (+ y h) x (+ y h)) (list y x (+ y h) x (+ y h) (+ x w) y (+ x w)) ) ) (vla-put-Closed (vlax-invoke (vla-get-Block layout) 'addLightWeightPolyline pts) :vlax-true ) ) ;; Commande PLOTREC ;; Dessine la zone imprimable dans toutes les présentations. (defun c:plotrec () (vl-load-com) (vlax-for layout (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) (if (/= (vla-get-Name layout) "Model") (gc:PlotAreaToRectangle layout) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Raph_38 Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 @Gile il manque une parenthèse pour fermer le setq pts : ;; gc:PlotAreaToRectangle ;; Dessine un rectangle correspondant à la zone imprimable dans la présentation ;; ;; Argument ;; layout : la présentation (vla-object) (defun gc:PlotAreaToRectangle (layout / width height numerator denominator lowerLeft upperRight origin scale x y w h pts) (vla-GetPaperSize layout 'width 'height) ; taille du papier (vla-GetCustomScale layout 'numerator 'denominator) ; échelle (mm/unités) (vla-GetPaperMargins layout 'lowerLeft 'upperRight) ; marges (setq lowerLeft (vlax-safearray->list lowerLeft) upperRight (vlax-safearray->list upperRight) origin (vlax-get layout 'PlotOrigin) ; origine du tracé scale (/ denominator numerator) x (- (car origin)) y (- (cadr origin)) w (* (- width (car lowerLeft) (car upperRight)) scale) h (* (- height (cadr lowerLeft) (cadr upperRight)) scale) pts (if (zerop (rem (vla-get-PlotRotation layout) 2)) ; rotation (portrait/paysage) (list x y (+ x w) y (+ x w) (+ y h) x (+ y h)) (list x y (+ x h) y (+ x h) (+ y w) x (+ y w)) )) (vla-put-Closed (vlax-invoke (vla-get-Block layout) 'addLightWeightPolyline pts) :vlax-true ) ) ;; Commande PLOTREC ;; Dessine la zone imprimable dans toutes les présentations. (defun c:plotrec () (vl-load-com) (vlax-for layout (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) (if (/= (vla-get-Name layout) "Model") (gc:PlotAreaToRectangle layout) ) ) (princ) ) [Edité le 30/6/2011 par neptune38] Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !
(gile) Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Merci,j'ai corrigé le code dans mon message. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Raph_38 Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 je sais pas si tu a vu mon edition précédente. C'est de la balle ton lisp ! bravo Gile Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !
lili2006 Posté(e) le 3 juillet 2011 Posté(e) le 3 juillet 2011 Bonjour à toutes et tous, Salut Gilles, Chez moi "plotrec" ne fonctionne que dans l'onglet courant,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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