drezic Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 Bonjour, je recherche un lisp me permettant de décaler des calques a une distance de 440mm.En gros j'ai un fichier dwg (plan format a4), chaque folio de se plan correspond a un calque (folio1-> calque 1;folio2-> calque 2 etc.....) je recherche a faire un décalage en faisant une sélection de l'ensemble pour avoir:-calque 1 décalé a 440m,-calque 2 décalé a 880mm -calque 3 1320mm etc En sachant que j'ai 200 calques (200 folios).Ce lisp me permettrai de pouvoir aligner tous mes folios dans l'espace objet.Merci d'avance.
didier Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 coucou encore une fois le vocabulaire nous trompe :( tu veux DECALER ?ou DEPLACER ? je pense que c'est déplacer mais tu vas nous le confirmer ... ensuite il nous faut savoir si tu travailles en EO ou en EP le mieux serait d'avoir un fichier à dispositionavec un exemple de transformation avant/après amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
drezic Posté(e) le 8 février 2011 Auteur Posté(e) le 8 février 2011 Desolé me suis trompé la commande est bien DEPLACER et non DECALER.Je travail que dans l'espace objet.Merci
richard-c Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 Bonjour, c'est tellement plus simple de travailler en espace papier. A+
bryce Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 Bonjour, Ce ne serait pas mieux de les garder superposés ?Parce que pour l'impression des 200 folios, ça ne va pas être évident... :casstet: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
drezic Posté(e) le 8 février 2011 Auteur Posté(e) le 8 février 2011 Le souci est que le fichier est illisible sauf si on utilise un lisp qui permet de basculer entre les folio en gelant automatiquement les calques. (page2 (calque 2 non gelé et les 199 autres gelé).C'est pour ca que je veux aligné tout les folio dans l'espace objet avec un decalage de 440 mm.Car ensuite j'utilise un autre lisp qui permet de generer plusieur presentation a partir d'un model avec un decalage de 440 mm dans l'espace objet.Mon but est que le fichier dwg soit lisible sans a avoir a utiliser des lisps.Merci
bryce Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 -calque 1 décalé a 440m,-calque 2 décalé a 880mm -calque 3 1320mm etcDécalé par rapport à quoi ?Quelle est la position de départ des folios ? Le calque 1 ne doit-il pas rester en place ? Ce serait vraiment plus simple de t'aider si tu postais un fichier exemple montrant les folios (3 ou 4 suffisent) dans leur configuration de départ, et un fichier montrant le résultat souhaité. ;) http://dl.free.frhttp://file.ahst.fr/ Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
drezic Posté(e) le 8 février 2011 Auteur Posté(e) le 8 février 2011 J'ai mis les deux fichier en ligne le type 1 configuration de depart type 2 resultat souhaité.http://dl.free.fr/eqfhgdVmk Merci.
didier Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 coucou je ne peux pas accéder à dl.free.fr :mad: si tu n'as pas de réponses,contacte moi par MPje te donnerai mon mail. amicalement . Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 8 février 2011 Posté(e) le 8 février 2011 Salut Un truc vite fait, sans faire de décalage (defun c:mog(/ act att blo cod doc dxf ent fen fol lay lst nom old sel txt val) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for lay (vla-get-layers doc) (setq nom (vla-get-name lay)) (if (not (zerop (atoi nom))) (setq lst (cons nom lst)) (or (eq nom (getvar "clayer")) (vla-put-freeze lay :vlax-false) (vla-put-layeron lay :vlax-true) ) ) ) (setq lst (cons "PDG" (vl-sort lst '<))) (foreach fol lst (if (vl-catch-all-error-p (setq lay (vl-catch-all-apply 'vla-item (list (vla-get-layouts doc) fol)))) (setq lay (vla-add (vla-get-layouts doc) fol)) (and (ssget "x" (list (cons 410 fol))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset doc)) 'vla-delete) (vla-delete sel) ) ) ) (vla-put-activelayout doc lay) (setq fen (vla-addpviewport (vla-get-block lay) (vlax-3d-point '(210.0 148.5 0.0)) 420. 297.)) (vla-put-layer fen "0") (vla-put-color fen "256") (vla-put-viewporton fen :vlax-true) (vla-getxdata fen "ACAD" 'cod 'val) (setq dxf (mapcar '(lambda(a) (cons 1003 a))(vl-remove fol lst)) cod (reverse (append '(1002 1002) (mapcar 'car dxf) (cddr (reverse (vlax-safearray->list cod))) ) ) val (reverse (append (list (vlax-make-variant "}")(vlax-make-variant "}")) (mapcar '(lambda(a)(vlax-make-variant (cdr a))) dxf) (cddr (reverse (vlax-safearray->list val))) ) ) ) (vla-setxdata fen (vlax-safearray-fill (vlax-make-safearray vlax-vbInteger (cons 0 (1- (length cod)))) cod) (vlax-safearray-fill (vlax-make-safearray vlax-vbVariant (cons 0 (1- (length val)))) val) ) (vla-zoomextents (vlax-get-acad-object)) (vla-display fen :vlax-false) (vla-display fen :vlax-true) (vla-put-mspace doc :vlax-true) (vla-zoomextents (vlax-get-acad-object)) (vla-put-mspace doc :vlax-false) (vla-put-displaylocked fen :vlax-true) ) (vla-put-activelayout doc act) (vla-endundomark doc) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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