Aller au contenu

Actualisation d\'un bloc


Messages recommandés

Posté(e)

Bonjour à tous.

 

Je cherche un moyen simple, ou une commande, qui me permettrait d'actualiser un bloc.

Jusqu'à présent je devais refaire la manip d'insertion du bloc jusqu'au moment où autocad m'invite à actualiser les références de blocs.

 

Je cherche donc une manip plus rapide voir une commande qui me permettrait de l'intégrer dans un lisp.

 

Merci d'avance

Posté(e)

Bonjour, et bienvenue sur CadXP julromgm777

 

D'aprés ton post je suppose que tu veut modifier les valeurs des attributs d'un bloc déja insérés.

Par conséquent, je te conseille la commande ATE sur la ligne de commande.

 

Posté(e)

il ne s'agit pas forcément de blocs contenant des attributs.

 

Par exemple :

 

je crée le bloc d'un arbre que j'enregistre avec la commande WBLOC dans un fichier arbre.dwg

 

J'insère ce bloc dans un dessin.

 

Je souhaite modifier ce bloc, je rentre dans le fichier arbre.dwg et je modifie le dessin du bloc.

 

J'aimerais à présent actualiser mon bloc arbre dans le dessin où il est déjà inséré. Actuellement je dois refaire la manip d'insertion, jusqu'au moment où autocad m'invite à actualiser les références de blocs. C'est cette manip que je souhaite accélérer.

 

Merci d'avance.

Posté(e)

Oui mais par prog ?

C'est possible d'envoyer des instructions avec la variable EXPERT à 0 (si ma mémoire est bonne c'est elle qui permet d'outrepasser entre autres, ce message[voulez-vous actualiser le bloc?]).

 

Sinon, on fait TBLSEARCH et on prévoie 2 instructions de commande.

 

Je n'ai pas répondu tout de suite car je ne trouve pas ta demande claire. S'agit-il d'un dessin seulement, d'un bloc seulement, toujours le même ?

Fais-tu la manip en ligne de commande -INSERER ou par la boite INSERER ?

Le bloc est-il dans un dossier de support ?...etc

 

Les solutions vont du script au lisp en passant par la macro sous un bouton. Tout dépend.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

Salut,

 

Il suffit d'utiliser bloc=bloc.dwg* à l'invite "Entrez le nom du bloc ou [?] : " de la commande -INSERER (_-INSERT), de répondre "Oui" et d'annuler la commande (Echap).

Commande: -i

-INSERER Entrez le nom du bloc ou [?] : bloc=bloc.dwg

Le bloc "bloc" existe déjà. Voulez-vous le redéfinir ? [Oui/Non] : o

Le bloc "bloc" est redéfini.

 

Unités: Millimètres Conversion: 1.00

Spécifiez le point d'insertion ou [Pointdebase/Echelle/X/Y/Z/Rotation]:

*Annuler*

 

Dans une macro :

^C^C_-insert;"bloc=bloc.dwg";^C

 

En LISP :

(command "_insert" "bloc=bloc.dwg") (command)

 

* Où 'bloc' est le nom du bloc et 'bloc.dwg' le nom du fichier dans les chemins de recherche.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Moi je conseil plutôt de modifier le bloc à partir de l'éditeur de bloc dans le dessin dans lequel est inséré le bloc, et non à partir du dwg "source" du bloc (créé avec wbloc).

La mise à jour de l'ensemble des blocs du dessins sera faite automatiquement. une réserve, quand même, pour les bloc contenant des attributs (la mise à jour ne se fait pas!), ou l'on doit réinsérer le bloc.

Posté(e)

hello

 

petit LISP pour mise a jour du bloc selectionné

contrairement a d'autres je te conseille de previlégier la construction des blocs dans des fichiers bien propre et bien a part

 

sans jamais les créer dans le calque "zéro" qui ne doit jamais rien contenir

 

sinon tu vas vite te retrouver avec des blocs ayant les meme nom mais tous different

et a gerer c'est un vrai bordel

 

merci a "gile" et bien d'autre LISPEUR pour ce petit lisp

marche aussi sur les blocs paramétriques

 

ha oui remplacer "C:\\PERSO\\BIBLIOTHEQUE" par votre sous répertoire de base de bibliotheque, il irat chercher ensuite dans les sous sous .... répertoires

 

phil

 

 

 (defun C:mjb  (/ELST ENAM BLKNAME typent     )
 (setq	ENAM   (car (entsel "\nSelectionner le bloc a mettre a jour: "))
ELST   (entget ENAM)
typent (cdr (assoc 0 ELST))
)

 (IF (= typent "INSERT")
   (progn
     (setq BLKNAME (GetFirstFile (strcat (vla-get-effectivename (vlax-ename->vla-object ENAM)) ".dwg") '("C:\\PERSO\\BIBLIOTHEQUE")))
     (command "_-insert" (strcat (vla-get-effectivename (vlax-ename->vla-object ENAM)) "=" BLKNAME))
     (command)
     (if ( /= (cdr (assoc 66 ELST) nil ))
(command "_attsync" "_n" (cdr (assoc 2 ELST))))
     (if BLKNAME
(prompt "\n Bloc mis à jour"))
     )
   (prompt "\n Ce n'est pas un BLOC ")
   )
 (princ)
 )

 

 

 

 (defun GetFirstFile  (f p)
 (cond
   ((not p) nil)
   ((vl-directory-files (car p) f) (strcat (car p) "\\" (car (vl-directory-files (car p) f))))
   ((GetFirstFile
      f
      (append (mapcar (function (lambda (x) (strcat (car p) "\\" x)))
	       (vl-remove ".." (vl-remove "." (vl-directory-files (car p) nil -1)))
	       ) ;_  mapcar
       (cdr p)
       ) ;_  append
      ) ;_  GetFirstFile
    )
   ) ;_  cond
 ) ;_  defun

 

[Edité le 26/11/2010 par PHILPHIL]

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

Ce lisp ne fonctionne pas sur mon poste, il semble poser problème au moment de l'insertion et je ne sais pas pourquoi.

 

La commande "insérer" ne demande pas le chemin d'un bloc mais uniquement son nom, existe il une option permettant de renseigner le chemin du bloc?

Posté(e)

Le lisp fonctionne à présent mais ne se termine pas normalement.

A quoi sert cette partie du lisp (actualiser les attributs?)

 

 

(if ( /= (cdr (assoc 66 ELST) nil ))

 

(command "_attsync" "_n" (cdr (assoc 2 ELST))))

 

 

 

Comment fonctionne le test logique? dans le cas où le bloc ne possède pas d'attributs, le lisp semble s'arrêter.

 

Dans tous les cas merci beaucoup, même si je ne comprend pas tous les aspects du lisp, le résultat me convient parfaitement.

 

 

 

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é