Aller au contenu

deplacer Pt d\'insertion d\'un bloc


Messages recommandés

Posté(e)

Tapes BASE mais dans le bloc en tant que fichier (après un WBLOC) avant de le ré-insérer

 

Sinon, le mieux (au sein d'un dessin), c'est d'exploser et de resaisir !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

merci Tramber,

 

mais le probleme est que je viens de récuperer un plan georeferencé (les coordonnées du plan sont les coordonnés lamber) avec une grande quantité de blocs déssiné a l'arrache avec un nom barbare et leur points n'importe ou.

 

pour les noms la commande rename marche tres bien.

pour les points d'insertion c'est la galere

en plus si je fais un zoom tout vous imaginer le resultat si un bloc a son point d'insertion au 0,0

j'ai plus de 150 blocs a refaires.

voila

 

si quelqu'un a une solution lispienne je serai eventuelement interressé

 

merci

Posté(e)

Salut,

 

Je ne sais pas si en lisp il est possible de faire quelque chose, mais en attendant, regarde le sujet de discussion ci-dessous, et bonne chance. :(

 

http:// http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=6429#pid22912

 

Le jour où les gens auront compris comment créer des blocs sera un jour béni. :P

 

A+

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Posté(e)

Salut

Voici un lisp que te redéfinis le point de base au centre de ton bloc (il faut bien partir sur quelque chose) sur tout tes blocs

 

@+

(defun c:rbl(/ bl dec_x dec_y ent ents mip map modif_ent)
 (vl-load-com)
 (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
 (setq bl (tblnext "block" t))
 (while bl
   (if (/= (logand (cdr (assoc 70 bl)) 16) 16)
     (progn
       (setq Ent (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) (cdr (assoc 2 bl)) 1 1 1 0))
       (vla-getboundingbox Ent 'Mip 'Map)
       (setq Dec_x (/ (+ (car  (vlax-safearray->list Mip)) (car  (vlax-safearray->list Map))) 2))
       (setq Dec_y (/ (+ (cadr (vlax-safearray->list Mip)) (cadr (vlax-safearray->list Map))) 2))
       (setq Ents (vlax-safearray->list (vlax-variant-value (vla-explode Ent))))
       (vla-delete Ent)
       (entmake (list (cons 0 "block")
                      (cons 2 (cdr (assoc 2 bl)))
                      (cons 70 64)
                      (cons 10 '(0.0 0.0 0.0))))
       (foreach Ent Ents
         (vla-move Ent (vlax-3d-point (list Dec_x Dec_y 0.0)) (vlax-3d-point '(0.0 0.0 0.0)))
         (setq Modif_Ent (entget (vlax-vla-object->ename Ent)))
         (setq Modif_Ent (vl-remove (assoc  -1 Modif_Ent) Modif_Ent))
         (setq Modif_Ent (vl-remove (assoc   5 Modif_Ent) Modif_Ent))
         (setq Modif_Ent (vl-remove (assoc 330 Modif_Ent) Modif_Ent))
         (entmake Modif_Ent)
         (vla-delete Ent)
       )
       (entmake '((0 . "endblk")))
     )
   )
   (setq bl (tblnext "block"))
 )
 (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport)
 (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 (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é