philsogood Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 hellosujet hyper rabattu mais j'ai pas trouvé dans notre encyclopédie (cadXP) ce que je cherchais.j'ai fait un superflatten sur des blocs contenus dans un fichier et tous les blocs qui ont été modifiés se tapent un suffixe -flat-1 (on se demande à quoi ça sert...)je souhaite supprimer ce suffixe par rien du toutremplacer -flat-1 par une suite de caractères aurait été facile (commande RENOMMER) mais je sais pas comment faire pour ne rien mettremerci pour vos lumièresPhil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 Salut, > Commande RENOMMER > Objets nommés = Blocs > Ancien nom = flat-1* > Nouveau nom = * > OK Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philsogood Posté(e) le 13 juillet 2012 Auteur Posté(e) le 13 juillet 2012 hello (gile)je pensais à qqc d'aussi simple que çaforce est de constater que AutoCAD ne voit pas les choses de la même manièreAucun élément n'a été renommé.Phil NB : ces rajouts de -flat-1 se font en suffixe si ça peut aider Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 NB : ces rajouts de -flat-1 se font en suffixe si ça peut aider Au temps pour moi, j'avais mal lu... (defun c:removesuffix (/ cnt0 cnt1 name) (vl-load-com) (setq cnt0 0 cnt1 0 ) (vlax-for b (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (setq name (vla-get-Name B)) (if (wcmatch name "*-flat-1") (progn (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-Name (list b (substr name 1 (- (strlen name) 7)))) ) (setq cnt0 (1+ cnt0)) (setq cnt1 (1+ cnt1)) ) ) ) ) (princ (cond ((zerop cnt1) "\nAucun bloc n'a été renommé") ((= 1 cnt1) "\n1 bloc a été renommé") (T (strcat "\n" (itoa cnt1) " blocs ont été renommés")) ) ) (if (< 0 cnt1) (princ (cond ((zerop cnt0) " (soit tous les blocs à traiter).") ((= 1 cnt0) " (1 bloc n'a pu être renommé).") (T (strcat " (" (itoa cnt0) " blocs n'ont pu être renommés).")) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philsogood Posté(e) le 13 juillet 2012 Auteur Posté(e) le 13 juillet 2012 pffffje suis tellement nul en lisp que je ne comprends pas pk ça ne marche pas!!j'ai un message d'erreur Commande: removesuffix ; erreur: Erreur Automation Nom d'enregistrement dupliqué PhilPS : à la rentrée je fais enfin une formation sur le lisp... je vais peut être égaler certains maîtres de ce forum.... OK je sors! Projeteur Revit Indépendant - traitement des eaux/CVC
-Olivier- Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 Hello, Tu n'a pas supprimé la définition de bloc initiale. Olivier
(gile) Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 Ça semble vouloir dire que le LISP essaye de donner à une définition de bloc un nom déjà existant dans la table des blocs. C'est la raison pour la quelle SuperFlatten ajoute un suffixe aux blocs "aplatis". Imaginons qu'avant le lancement de SuperFlaten tu aies 2 blocs nommés "Toto", un bien à plat sur XY, l'autre non. SuperFlatten aplatit le second (en fait crée un nouveau bloc avec résultat de la projection des composants du bloc source sur le plan XY). Ce nouveau bloc ne peut pas s'appeler "Toto" parce qu'il est différent de "Toto", SuperFlatten le nomme donc "Toto-flat-1" pour ne pas provoquer l'erreur que tu as eu.Si ensuite su lances RemoveSuffix (que j'ai écrit un peu vite et sans réfléchir) RemoveSuffix va tenter de renommer "Toto-flat-1" en "Toto" et provoquera cette erreur parce que "Toto" existe déjà dans la table des blocs. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 13 juillet 2012 Posté(e) le 13 juillet 2012 J'ai modifié le LISP pour qu'il continue malgré cette erreur et retourne un message plus explicite. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philsogood Posté(e) le 13 juillet 2012 Auteur Posté(e) le 13 juillet 2012 helloMerci (gile)sans même avoir utiliser ton nouveau lisp j'ai tout simplement purger mon fichier de tous les anciens blocs et j'ai ensuite lancé ton isp, ça marche à merveillePhilPs: je n'avais pas remarqué que tous les blocs avaient été renommés lors de superflatten Projeteur Revit Indépendant - traitement des eaux/CVC
philsogood Posté(e) le 20 septembre 2012 Auteur Posté(e) le 20 septembre 2012 hellotoujours embéte par le "renommage" des blocs...dans mon cas j'ai un bloc et je souhaite lui ajouter un suffixe, problème lorsque je tape :renommerblocancien nom : *nouveau nom : *-aRien en se passe Aucun élément n'a été renommé. en gros j'ai la problématique inverse à celle que j'avais la dernière fois, partir d'un nom de bloc sans suffixe pour lui en ajouter un J'ai regardé le lisp de (gile) du lien http://cadxp.com/index.php?/topic/11999-renommer-plusieurs-blocs/page__view__findpost__p__62042 mais ça ne marche pas non plusCommande: CHANGE_SUFF Entrez le suffixe à changer: * Entrez le nouveau suffixe: *-a Commande: Pas très ergonomique cette fonction renommer...Phil Projeteur Revit Indépendant - traitement des eaux/CVC
FormaBois Posté(e) le 20 septembre 2012 Posté(e) le 20 septembre 2012 toujours embéte par le "renommage" des blocs...Salut,Voir ce sujet sur la commande renommerEt peut-être plus particulièrement ce post Studio Gfilm - Agence de communication par l'image "Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"
philsogood Posté(e) le 20 septembre 2012 Auteur Posté(e) le 20 septembre 2012 extraordinaire ce ???et dire que j'étais apssé par un lisp la dernière fois alors qu'il suffisait d'un truc aussi bête (en même temps j'ai pas essayé cette solution sur mon ancien problème)Merci FormaboisAu fait sur le post j'ai cru comprendre que tu étais un "ancien" (je cite)tu approches les combien sans indiscrétion?(tu peux répondre en PM ;)PhilBonne soirée Projeteur Revit Indépendant - traitement des eaux/CVC
philsogood Posté(e) le 10 avril 2013 Auteur Posté(e) le 10 avril 2013 eRf...encore en galère avec mes blocs...pfiouuuucomment rajouter un suffixe a mes blcos?renommer et * marche pas Aucun élément n'a été renommé.j'ai essa&yé le lisp de (gile) change_suff mais ça marche aps non plus...je veux juste rajouter _v à mes blocs en sachant que la longueur du nombre de caractères de mes blocs peut varier (donc la solution avec le ? n'est pas valable)comment faire?Phil Projeteur Revit Indépendant - traitement des eaux/CVC
FormaBois Posté(e) le 10 avril 2013 Posté(e) le 10 avril 2013 comment rajouter un suffixe a mes blcos?Salut, - Ancien nom : *- Nouveau nom : autant de ? que le nom de calque le plus longet à la suite des point d'interrogation noter _Vet le tour est joué ;) Studio Gfilm - Agence de communication par l'image "Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"
philsogood Posté(e) le 11 avril 2013 Auteur Posté(e) le 11 avril 2013 Hello,là encore je dis Monsieur !!je n'aurais pas pensé qu'une telle ruse marche!!MerciPhil Projeteur Revit Indépendant - traitement des eaux/CVC
philsogood Posté(e) le 7 mars 2014 Auteur Posté(e) le 7 mars 2014 hellomême problème de suppression de suffixe suite à une erreur de manip (j'ai jeté le .bak depuis le temps)j'ai des blocs qui se terminent pas *_cachje pensais pourvoir utiliser le lisp de (gile) en modifiant le _flat-1 par _cach mais ça ne fonctionne pascomment faire pour supprimer ces suffixes?Phil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 7 mars 2014 Posté(e) le 7 mars 2014 Salut, Il ne suffit pas de remplacer "_flat-1" par "_cach". Il faut aussi modifier le nombre de lettres à supprimer à la fin du nom du bloc (7 par 5) dans :(substr name 1 (- (strlen name) 7)) Un routine plus polyvalente qui demande d'entrer le suffixe à supprimer :(defun c:removesuffix (/ suff cnt0 cnt1 sufLen name) (if (setq suff (getstring "\nEntrez le suffixe à supprimer: ")) (progn (vl-load-com) (setq cnt0 0 cnt1 0 sufLen (strlen suff) ) (vlax-for b (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (setq name (vla-get-Name B)) (if (wcmatch name (strcat "*" suff)) (progn (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-Name (list b (substr name 1 (- (strlen name) sufLen))) ) ) (setq cnt0 (1+ cnt0)) (setq cnt1 (1+ cnt1)) ) ) ) ) (princ (cond ((zerop cnt1) "\nAucun bloc n'a été renommé") ((= 1 cnt1) "\n1 bloc a été renommé") (T (strcat "\n" (itoa cnt1) " blocs ont été renommés")) ) ) (if (< 0 cnt1) (princ (cond ((zerop cnt0) " (soit tous les blocs à traiter).") ((= 1 cnt0) " (1 bloc n'a pu être renommé).") (T (strcat " (" (itoa cnt0) " blocs n'ont pu être renommés).") ) ) ) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philsogood Posté(e) le 7 mars 2014 Auteur Posté(e) le 7 mars 2014 rhaaaaaj'étais pas loin!! il me manque encore pas mal d'éléments pour lire des codes... ;)Merci (gile) Projeteur Revit Indépendant - traitement des eaux/CVC
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