ASTERIXII Posté(e) le 30 avril 2013 Posté(e) le 30 avril 2013 Bonjour, Je recherche un lisp, du type du Edit_bloc_rep de Gil, pour supprimer 1 ou 2 attributs dans des blocs (suivant le type de bloc), mais sans ouvrire chaque bloc. Une etiquette à toujours le même nom. (du type invisible)Pour l'autre elle peut avoir 4 noms differents (ex: CV SA CH) (du type invisible) Les 2 étiquettes ne sont pas toujours dans les blocs, et il y a d'autre étiquette (1 ou 2) à ne pas supprimer.
Patrick_35 Posté(e) le 5 mai 2013 Posté(e) le 5 mai 2013 Personne ?Salut Dans le dessin courant, rien de plus simple, mais pour les autres dessins que l'on ouvre avec ObjectDbx (si j'ai bien compris la question), le problème est la synchro. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ASTERIXII Posté(e) le 6 mai 2013 Auteur Posté(e) le 6 mai 2013 Bonjour Patrick,Tu as bien compris, mais j'ai pas forcement un problème de synchro. Si j'utilise les blocs dans un nouveau dessin, je n'aurais pas de problème ?En fait le problème, est que allons peut-être diffuser notre bibliothéque au niveau "national", et dans le bloc figure l'ancien nom de notre agence. (sa fait pas pro :))
lecrabe Posté(e) le 6 mai 2013 Posté(e) le 6 mai 2013 Hello Je pense qu'un Script (FILEDIA=0) avec le Lisp/VLisp qui va bien : _OPEN DWG1 Progr_Lisppuis un ATTSYNC ..._SAVEAS et on boucle C la meilleure solution ... lecrabe Autodesk Expert Elite Team
bryce Posté(e) le 6 mai 2013 Posté(e) le 6 mai 2013 Bonjour, J'ai l'impression qu'il y a une confusion sur ce que tu appelles des blocs.Ne s'agit-il pas plutôt d'une bibliothèque constituée d'un simple répertoire contenant un tas de fichiers dwg (destinés à être insérés en tant que bloc) ? :unsure: Si c'est bien ça, il faudrait donc simplement supprimer les définitions d'attributs, sans besoin de synchroniser. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 7 mai 2013 Auteur Posté(e) le 7 mai 2013 Effectivement Bryce,Je viens de verifier (c'est pas ma biblio à la base, je suis la depuis qq mois), et lorsque que je fais glisser le dwg depuis l'explorateur dans AutoCAD, il ne propose pas d'ouvrir l'éditeur de bloc.Je me retrouve avec un "dessin" et des attributs.Cela me semble deja plus facile.Mais l'idée d'un Script me semble pas adaptée. Il y à 984 dwg !Je reviens donc sur la sitation de Patrick et ObjectDbx (que je ne métrise pas)ou alors "bricoler le lisp de Gil"
FormaBois Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Mais l'idée d'un Script me semble pas adaptée. Il y à 984 dwg !Salut,dans ce cas il y a "SuperScript" d'EricIl me semble également que Bryce a dévellopé un outil similaire pour appliquer le script à tous les fichiers d'un dossier 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"
bryce Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Si tu veux tester en script, tu peux télécharger et décompresser Sequence:https://www.box.com/s/d6kzzmt5y50pkutsqc9w Ensuite tu le lances, dans l'onglet Options tu indiques le chemin vers l'exécutable AutoCAD (acad.exe). Dans le 1er onglet, tu définis la liste des fichiers à traiter (je ne sais pas s'il est raisonnable d'en faire 1000 d'un coup, mais tu peux tenter). Dans le 2e onglet, tu colles le code ci-dessous dans la partie centrale (commandes à appliquer à chaque fichier):(setq tags "CV,SA,CH") (if (setq ss (ssget "_X" (list (cons 0 "ATTDEF") (cons 2 tags)))) (progn (repeat (setq i (sslength ss)) (entdel (ssname ss (setq i (1- i)))) ) ) )La 1ère ligne est à modifier pour définir les étiquettes d'attribut à effacer. Dans le 3e onglet, tu cliques sur le bouton Lancer, et tu admires... B) J'ai fait un test sur une grosse liste de 4 fichiers, ça a fonctionné. :P Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 8 mai 2013 Auteur Posté(e) le 8 mai 2013 Bonjour Bryce,Pas mal ton appli, elle me donne même qque idée... J'ai juste un problème, car il ne ferme pas le premier dessin, et donc ne passe pas au suivant.Voila le message depuis le lancement Commande: (setq tags "NOM,PB") "NOM,PB" Commande: (if (setq ss (ssget "_X" (list (cons 0 "ATTDEF") (cons 2 tags)))) (_> (progn ((_> (repeat (setq i (sslength ss)) (((_> (entdel (ssname ss (setq i (1- i)))) (((_> ) ((_> ) (_> ) _.qsave nil Commande: _.close Voulez-vous vraiment ignorer les modifications du dessin? <N> _.open Oui ou Non, s'il vous plaît. Voulez-vous vraiment ignorer les modifications du dessin? <N> *Annuler*:(cest moi qui annule la commande)J'ai comparé avec ton script purger_tout, lui fonction bien sur ma liste, ouvre et ferme. Voila mon fichier script<preproc> </preproc> <proc>(setq tags "NOM,PB") (if (setq ss (ssget "_X" (list (cons 0 "ATTDEF") (cons 2 tags)))) (progn (repeat (setq i (sslength ss)) (entdel (ssname ss (setq i (1- i)))) ) ) ) </proc> <postproc> </postproc> <autoopen>True</autoopen> <autosave>True</autosave> <diesel>False</diesel>
bryce Posté(e) le 8 mai 2013 Posté(e) le 8 mai 2013 (modifié) Bonjour, Dans le 2e onglet, dans la partie centrale (commandes à appliquer à chaque fichier), vérifie s'il n'y a pas une ligne vide à la fin, après la dernière parenthèse.Si c'est le cas, supprime-la. Le fichier .seq devrait être comme ceci (je viens de voir qu'un saut de ligne gênant est ajouté à l'export):<preproc></preproc> <proc>(setq tags "NOM,PB") (if (setq ss (ssget "_X" (list (cons 0 "ATTDEF") (cons 2 tags)))) (progn (repeat (setq i (sslength ss)) (entdel (ssname ss (setq i (1- i)))) ) ) )</proc> <postproc></postproc> <autoopen>True</autoopen> <autosave>True</autosave> <diesel>False</diesel> Edit: j'ai mis en ligne une version corrigée de Sequence. Modifié le 8 mai 2013 par bryce Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 9 mai 2013 Auteur Posté(e) le 9 mai 2013 Bonjour Bryce,Ok c'est bon.Juste à la fin du traitement de tous les fichiers, Acad ouvre l'aide.Peut-être du à mon AutoCAD, (MEP 2011) ?C'est une bonne application, qui me donne d'autre idée de traitement par lot de fichier (nettoyage de plan,...) Merci encore pour ton aide.
bryce Posté(e) le 9 mai 2013 Posté(e) le 9 mai 2013 Bonjour, Tu as peut-être une ligne vide qui traîne dans la partie "Commandes finales", dans le 2e onglet. Tu as lancé le script sur les 900 fichiers d'un coup ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 12 mai 2013 Auteur Posté(e) le 12 mai 2013 Bonjour, Tu as peut-être une ligne vide qui traîne dans la partie "Commandes finales", dans le 2e onglet. Tu as lancé le script sur les 900 fichiers d'un coup ?Bonjour Bryce,Effectivement, j'ai une ligne vide, mais j'exporte le fichier, et le corrige avec l'éditeur de texte. Je n'ai pas encore fait la manip sur l'ensemble des fichiers, car il faut que je consulte les collègues.Et chance pour moi, les fichiers sont repartis sur 6 répertoires. Mais j’ai profité de ton appli pour faire un lisp qui remplace 2 types de ligne dans les plans.Le programme remplace la ligne TOTO par Axes et TITI par cache (Toto et Titi sont des exemples), afin d’avoir une correspondance avec acadiso.La sélection se fait dans un plan type, le programme génère un lisp, et ensuite je l’utilise dans ton appli. J’ai juste une question, ton appli ne pourrait-elle pas ignorer les commentaires dans le lisp (ceux sur une ligne, ou en fin de ligne) ?
bryce Posté(e) le 13 mai 2013 Posté(e) le 13 mai 2013 Bonjour,Effectivement, j'ai une ligne vide, mais j'exporte le fichier, et le corrige avec l'éditeur de texte.Ca devrait être corrigé si tu retélécharges la version la plus récente. ;) J’ai juste une question, ton appli ne pourrait-elle pas ignorer les commentaires dans le lisp (ceux sur une ligne, ou en fin de ligne) ? Ca peut se faire, c'est même une bonne idée.Je suis en déplacement, je verrai ça en fin de semaine. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 18 mai 2013 Auteur Posté(e) le 18 mai 2013 Bonjour Bryce, Je reviens sur un probleme avec Autocad MEP 2011: A chaque ouverture d'un dessin il lance l'aide d'autocad:Copy de la fenêtre texte: Commande: (setq v1 (ssget "_X" '((0 . "ATTDEF")))) <Selection set: 4> Commande: _HELP Commande: (setq v2 0) 0 Commande: AIDE Commande: (if (/= v1 nil) (_> (while (< v2 (sslength v1)) ((_> (setq name (ssname v1 v2)) ((_> (setq entite (entget name)) Et le debut du fichier seq:(command "-style" "SNC" "ARIAL" "" "" "" "" "") (setq v1 (ssget "_X" '((0 . "ATTDEF")))) (setq v2 0) (if (/= v1 nil) (while (< v2 (sslength v1)) (setq name (ssname v1 v2)) (setq entite (entget name)) (setq pt1 (cdr(assoc 2 entite))) (setq lancien (assoc 7 entite)) (setq ancien (cdr lancien)) (if (= ancien "AS")
bryce Posté(e) le 19 mai 2013 Posté(e) le 19 mai 2013 Bonjour, Tu as des espaces au début de chaque ligne à partir de la 3e, il faut les enlever. ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
ASTERIXII Posté(e) le 19 mai 2013 Auteur Posté(e) le 19 mai 2013 Bonjour Bryce, Ok sa marche nikel ! plus de message d'aide sans les espaces. Merci encore.
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