Aller au contenu

decaler calque a une distance de 440 mm


Messages recommandés

Posté(e)

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.

 

Posté(e)

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 à disposition

avec un exemple de transformation avant/après

 

amicalement

Posté(e)

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

Posté(e)
-calque 1 décalé a 440m,

-calque 2 décalé a 880mm

-calque 3 1320mm etc

Dé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.fr

http://file.ahst.fr/

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité