yusukens82 Posté(e) le 12 mars 2009 Posté(e) le 12 mars 2009 Bonjour, Avis au lispeurs,Je cherche à changer l’échelle d’une fenêtre (fmult) tout en adaptant la mise à l’échelle du plan. Exemple en image :http://yusukens.free.fr/image/EchelleFmult.jpgFenêtre divisé par 2 (Facteur d’échelle = 0.5)Echelle passé de 1/100 vers 1/200 En espérant que quelqu’un entendra mon appel Merci PS : pourquoi vouloir un tel LISP ? c’est pour adapter des plans de ventes selon un format de papier différent.
pascool Posté(e) le 25 mars 2009 Posté(e) le 25 mars 2009 si tu fais une fenetre multiple pour du 1000, sur la meme presentation tu peut refaire une autre fenetre à une autre echelle au 1/50 par exemple tu peut rajouter autant de fenetre que tu veut dans ta presentation enfin presque! de differentes echelletoujours dans la presentationdans l'espace objet c'est plus difficile pour le gars qui l'exploitre aprés pour trouver le bon dessin au bonne coordonnées si tu es geometre comme moi!! mais dans l'espace papier tu crée tes fenetre avec les zoom voulus
lili2006 Posté(e) le 25 mars 2009 Posté(e) le 25 mars 2009 Bonsoir à toutes et tous, Et le facteur d'échelle ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
yusukens82 Posté(e) le 25 mars 2009 Auteur Posté(e) le 25 mars 2009 Bonsoir, pascool, oui je sais qu'on peut créer plusieurs fenêtre. Pour donner un exemple concrète :Imaginons un bâtiment d'habitation contenant au R+1 ==> 20 appartements.Lors de la réalisation des fichiers PDV (plan de vente), je faut bien délimiter le pourtour des appartements.Il faut donc utiliser des fenêtres en polyligne (non rectangulaire). Pour réduire la dimension de la fenêtre tout en gardant la proportion de facteur d'échelle, il faut adapter : - la fenêtre polyligne - adapter le facteur d'échelle. pour le fenêtre rectangulaire, c'est simple et rapide mais pour les fenêtre polylignes, c plus compliqué et surtout très long.
Patrick_35 Posté(e) le 26 mars 2009 Posté(e) le 26 mars 2009 Salut J'avais pensé que quelqu'un se serait dévoué, mais bon... (defun c:cpf(/ bg doc fen hd sel sui) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget (list (cons 0 "viewport"))) (progn (vlax-for fen (setq sel (vla-get-activeselectionset doc)) (setq sui (vla-copy fen)) (vla-getboundingbox sui 'bg 'hd) (vla-scaleentity sui bg 0.5) (vl-cmdf "_.move" (vlax-vla-object->ename sui) "" (vlax-safearray->list bg) pause) ) (princ (strcat "\nAjout de " (itoa (vla-get-count sel)) " fenêtre(s).")) (vla-delete sel) ) ) (vla-endundomark doc) (princ) ) On ne peut pas dire que le lisp est très long. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
yusukens82 Posté(e) le 26 mars 2009 Auteur Posté(e) le 26 mars 2009 Merci Patrick_35J'explique peut etre mal mon problème, et c'est vrai qu'il est rare de faire cette manipulation.pour preuve, sur 10ans d'utilisation d'autocad, c'est la première fois que je rencontre ce besoin de mettre à l'échelle des fenêtre. pour revenir au lisp, merci beaucoup, par contre il ne marche pas avec des fenêtre type polyligne.voici un exemple :http://yusukens.free.fr/CADXP/CPF.zippuise-je ensuite savoir si il est possible de rentrer manuellement un facteur de réduction de la fenêtre ?
jalna Posté(e) le 26 mars 2009 Posté(e) le 26 mars 2009 Salut Patrick_35 Sympa la routine....Je pense qu'une boite de dialogue proposant plusieurs échelles serait un plus!! :cool: "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Patrick_35 Posté(e) le 27 mars 2009 Posté(e) le 27 mars 2009 Salut Un peu plus complexe que prévu.Je me suis simplifié la tâche en utilisant les commandes.Ce serait intéressant de gratter du coté des dictionnaires pour voir comment cela fonctionne exactement (defun c:cpf(/ bg1 bg2 cmd der doc fef hd1 hd2 js old_error pol pt1 pt2 rep sui *err*) (defun *err* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setvar "cmdecho" cmd) (setq *error* old_error) (vla-endundomark doc) (princ) ) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) cmd (getvar "cmdecho") old_error *error* *error* *err* ) (vla-startundomark doc) (setvar "cmdecho" 0) (if (setq fef (getenv "facteur_echelle_copier_viewport")) (setq fef (atof fef)) (setq fef 0.5) ) (and (setq js (ssget (list (cons 0 "viewport,lwpolyline")))) (progn (setq der (entlast) rep "Echelle" ) (while (eq rep "Echelle") (initget "Echelle") (setq rep (getpoint (strcat "\nPoint de base [Echelle = " (rtos fef) "] : "))) (and (eq rep "Echelle") (not (initget 2)) (and (setq sui (getreal "\nEchelle : ")) (setq fef sui) ) ) ) (vl-cmdf "_.copy" js "" rep rep) (setq js (ssadd) ent der ) (while (setq ent (entnext ent)) (ssadd ent js) ) (setq sui 0) (while (setq der (ssname js sui)) (setq pol (cdr (assoc 340 (entget der))) der (vlax-ename->vla-object der) ) (and (eq (vla-get-objectname der) "AcDbViewport") (progn (vla-getboundingbox der 'bg1 'hd1) (if pol (progn (vl-cmdf "_.scale" pol "" (vlax-get der 'center) fef) (vla-put-customscale der (* (vla-get-customscale der) fef)) ) (vla-scaleentity der (vlax-3d-point rep) fef) ) (vla-getboundingbox der 'bg2 'hd2) (setq pt1 (vlax-safearray->list bg1) pt2 (vlax-safearray->list bg2) ) (vl-cmdf "_.move" (if pol pol (ssname js sui)) "" (polar pt2 (angle pt1 rep) (* (distance pt1 rep) fef)) pause) ) ) (setq sui (1+ sui)) ) (setenv "facteur_echelle_copier_viewport" (rtos fef)) ) ) (setvar "cmdecho" cmd) (setq *error* old_error) (vla-endundomark doc) (princ) ) @+ [Edité le 27/3/2009 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
jalna Posté(e) le 27 mars 2009 Posté(e) le 27 mars 2009 Salut Une erreur de type :Point de base [Echelle = 0.5] : ERREUR d'application: Type incorrect envoyé comme entrée de commande "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
yusukens82 Posté(e) le 27 mars 2009 Auteur Posté(e) le 27 mars 2009 Bonjour Patrick_35 Je suis dessolé si cela t'as pris beaucoup de temps. Je viens de tester le lisp, et il s'avère qu'il ne marche pas encore parfaitement. Pour les fenêtres rectangulaires : - la valeur du facteur d'échelle est toujours de 0.5, et ne peut pas être modifiée - et la taille de la fenêtre ne s'adapte pas à la réduction Pour les fenêtres polyligne : - facteur d'échelle => toujours à 0.5 comme pour les fenêtres rectangulaires - créer seconde fenêtre VIDE. Voila ce que j'ai remarqué.
Patrick_35 Posté(e) le 27 mars 2009 Posté(e) le 27 mars 2009 Re Je viens de constater une erreur sur les fenêtres rectangulaires, chose que vous avez vu aussi. Le lisp est corrigé. yusukens82Lors de la demande du point de base, tu peux aussi indiquer ton facteur d'échelle, en faisant E ,Ec ,Ech, ... @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
jalna Posté(e) le 27 mars 2009 Posté(e) le 27 mars 2009 Ok ca roule................. "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
yusukens82 Posté(e) le 27 mars 2009 Auteur Posté(e) le 27 mars 2009 Magnifique, Vraiment magnique, Merci beaucoup pour ce travail, j'espères que ce lisp te servira un jour à son créateur également
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