julromgm777 Posté(e) le 25 novembre 2010 Posté(e) le 25 novembre 2010 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
BIGC-ROMU Posté(e) le 25 novembre 2010 Posté(e) le 25 novembre 2010 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.
julromgm777 Posté(e) le 25 novembre 2010 Auteur Posté(e) le 25 novembre 2010 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.
Tramber Posté(e) le 25 novembre 2010 Posté(e) le 25 novembre 2010 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 ./__\. (.°=°.)
(gile) Posté(e) le 26 novembre 2010 Posté(e) le 26 novembre 2010 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.dwgLe bloc "bloc" existe déjà. Voulez-vous le redéfinir ? [Oui/Non] : oLe bloc "bloc" est redéfini. Unités: Millimètres Conversion: 1.00Spé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
BIGC-ROMU Posté(e) le 26 novembre 2010 Posté(e) le 26 novembre 2010 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.
lili2006 Posté(e) le 26 novembre 2010 Posté(e) le 26 novembre 2010 Bonjour à toutes et tous, uand même, pour les bloc contenant des attributs A moins de faire une synchronisation (_battman),... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 26 novembre 2010 Posté(e) le 26 novembre 2010 Salut Oui mais par prog ? Par exemple @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
PHILPHIL Posté(e) le 26 novembre 2010 Posté(e) le 26 novembre 2010 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 differentet a gerer c'est un vrai bordel merci a "gile" et bien d'autre LISPEUR pour ce petit lispmarche 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
julromgm777 Posté(e) le 30 novembre 2010 Auteur Posté(e) le 30 novembre 2010 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?
Fraid Posté(e) le 30 novembre 2010 Posté(e) le 30 novembre 2010 bonjour, Si tes bloc sont placer dans un dossier qui fait partis de tes chemins de recherche de fichiers support, tu n'a pas besoin de lui donner de chemin Option/Fichiers/Chemin de recherche de fichier support et tu rajoute ton dossier https://github.com/Fraiddd
julromgm777 Posté(e) le 1 décembre 2010 Auteur Posté(e) le 1 décembre 2010 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.
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