Aller au contenu

Insertion de bloc de façon massive


Messages recommandés

Posté(e)

Bonjour.

 

Le sujet de l'insertion de bloc...

 

Mon but est d'effectuer cette application de façon massive sur plusieurs folios en un coup, par superautoscript par exemple...

 

La commande "-INSERER" (avec le petit tiret) propose bien l'insertion par le nom du bloc, mais elle ne permet pas d'insérer un bloc à un emplacement différent, qui permettrai de redéfinir celui existant ^qui prote le même nom... Chose bien possible en passant par la commande "INSERER" (sans le petit tiret) avec boite de dialogue où il y a le bouton "parcourir" qui permet de sélectionner son bloc à l'endroit désiré. Chose indispensable quand le bloc désiré porte le même nom que celui existant.

 

Comment rendre cette commande effective sans passer forcement par la boite de dialogue?

Posté(e)

Salut,

 

Tu peux utiliser ce SCRIPT dans superautoscript pour redéfinir tes blocs

 

_-insert "NOMBLOC=C:/Users/User/Documents/NOUVEAUBLOC.dwg" _y (command) 

Bien mettre un espace après (command) pour valider.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Splendide!

La redifinition fonctionne à merveille, merci beaucoup.

Mais la fonction ce bloque sur "nil"

Elle n'est donc pas validée et ne permet pas à Autocad de se fermer pour permettre a superautoscript de passer au fichier suivant...

Posté(e)

Il faudrait peut etre une seconde commande qui annulle l'action ou plutôt l’interrompe en plein milieu pour passer a une seconde commende quelconque comme "zoom et" par exemple...

Posté(e)

J'annulais la commande d'insertion de bloc en plein milieu, mais ça coupe complètement le script.

 

Le mieux est donc de finir l'insertion et de supprimer le dernier objet

 

_-insert "NOMBLOC=C:/Users/User/Documents/NOUVEAUBLOC.dwg" _y 1 0,0 
_erase _l 

Il y a un espace à la fin de chaque ligne.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Bonjour,

 

Attention avec le _Y, si le bloc n'existe pas dans le dessin ça provoque une erreur et l'arrêt du SCRIPT !

 

Le mieux dans les SCRIPT (et les MACROS), c'est de commencer le SCRIPT avec un EXPERT = 5 puis à la fin du SCRIPT le remettre à 2 et du coup, il n'y aura jamais à réponde "_Yes je veux redéfinir le bloc..."

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Merci pour vos info.

 

Vincentp010 :

 

c'est la bonne solution de finir l'insertion, le hic c'est que si on a une multitude d'attribut à renseigner, ça nous fait mettre un espace à chaque fois (25 pour mon cas car c'est un cartouche que j'insere...)

 

Par contre, la commande sensée supprimer le dernier objet ne fonctionne pas... (_erase _l ) "sélection non valbale"

Alors j'ai supprimé au point d'insertion (_erase 0,0).

 

Reste plus qu'à trouver le moyen de synchroniser mon bloc, qu'il retrouve les bons attributs :

les commandes GESTATTB ou BATTMAN ouvrent encore une fois la boite de dialogue qui me fige mon script...

le raccourcit clavier du bouton "synchroniser" est "Y" mais impossible de le sélectionner....

 

Une idée?

 

Merci encore!

Posté(e)

Petites Précisions de M. Patrick_35.

 

Pour trouver le dernier objet --> (entlast)

Effacer le dernier objet --> (entdel (entlast))

Pour insérer des blocs avec des attributs différents --> Variable ATTREQ

 

Du coup mon script ressemble à ça :

 

attreq 0

_-insert "NOMBLOC=C:/Users/User/Documents/NOUVEAUBLOC.dwg" _y 1 0,0

(entdel (entlast))

ATTSYNC N

NOMBLOC

 

Enjoy!

Posté(e)

Salut

 

Quand tu modifies une variable, il est bien de la restaurer dans son état initial

Sauvegarder la variable

(setq old_attreq (getvar "attreq"))

Mon lisp, script....

Et la restaurer

(setvar "attreq" old_attreq)

 

@+

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

  • 1 mois après...
Posté(e)

Bonjour,

 

Je me permets de poser une question concernant ce sujet car j'aimerais trouver un lisp de ce type ou presque.

 

Je possède sur mon dessin 4 blocs AAA,BBB,CCC,DDD et je souhaite les remplacer par d'autres blocs qui sont dans un dossier partagé et qui se nomment WWW,XXX,YYY,ZZZ. Sachant que AAA sera toujours remplacé par WWW et BBB par XXX, etc...

 

Existe-il un moyen de les remplacer automatiquement sachant que parfois un des 4 blocs sur mon dessin est susceptible de ne pas être présent ?

 

Le LISP précédemment réalisé m'oblige à les faires un par un ce qui me parait lourd vu le nombre de blocs à changer parfois. En fait ce LISP aurait pour but de remplacer mes vieux blocs sur des fichiers anciens par des blocs plus aboutis étant donné l'évolution de AUTOCAD.

 

Je connais la fonction SUBSTITUER de Covadis, mais toujours le même problème, c'est un par un qu'il faut ce les farcir !

 

Merci.

Posté(e)

Bonjour.

je ferai comme suis :

Renommer les bloc WWW,XXX,YYY... par AAA,BBB,CCC... (comme les initiaux)puis un script :

 

attreq 0

_-insert "AAA=C:/Users/User/Documents/AAA.dwg" _y 1 0,0

(entdel (entlast))

ATTSYNC N

AAA

_-insert "BBB=C:/Users/User/Documents/BBB.dwg" _y 1 0,0

(entdel (entlast))

ATTSYNC N

BBB

_-insert "CCC=C:/Users/User/Documents/CCC.dwg" _y 1 0,0

(entdel (entlast))

ATTSYNC N

CCC

attreq 1

 

Le fait d’insérer un bloc déjà existant mais différent provoque la demande de redéfinition de celui-ci.

Après acceptation celui déjà implanté est remis à jour.

Reste à voir si l'insertion d'un bloc non existant fonctionne aussi avec le même paramétrage de la fonction "_-insert".

Posté(e)

Je viens d'essayer.

cela marche bien même avec un bloc non existant.

Le script supprime le dernier bloc inséré, donc on ne le verra pas s'il n'existait pas avant. Sinon il aurait été redéfini.

Posté(e)

Je viens d'essayer.

cela marche bien même avec un bloc non existant.

Le script supprime le dernier bloc inséré, donc on ne le verra pas s'il n'existait pas avant. Sinon il aurait été redéfini.

 

Merci IMPRESS pour ta réponse rapide et en effet efficace, par contre ce qui me gène c'est que la dénomination de mes nouveaux blocs et plus précise que les anciens blocs car à l'époque à laquelle j'avais créé mes vieux blocs les noms de blocs étaient limités en longueur me semble-t-il. En tout cas je me trouve avec des noms de blocs codés et j'en peux plus de ces codes.

 

Mais je garde quand même l'idée si personne n'arrive à me trouver une solution en gardant des noms distincts...

 

Encore merci.

Posté(e)

Bonne question.

et bien cela m'a fait essayer :

 

attreq 0

_-insert "AAA=C:/Users/User/Documents/WWW.dwg" _y 1 0,0

(entdel (entlast))

ATTSYNC N

WWW

 

Ça fonctionne aussi bien (évite de renommer les plus récents), mais dans ton folio, le bloc s’appellera toujours AAA...

 

Ça mérite bien un nouveau sujet :

 

"renommage de bloc de façon massive"

Posté(e)

(folio = page) À l'endroit où il y a ton bloc initial (AAA), le bloc sera mis à jour avec les caractéristiques de WWW mais portera toujours le nom initial (AAA).

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é