Raph_38 Posté(e) le 15 juin 2009 Partager Posté(e) le 15 juin 2009 Salut, j'aurais une requête à faire concernant le super lisp Edit_bloc Voilà ce que je souhaiterais : - Avoir la possibilité de supprimer tous les attributs des blocs du dessin (y compris ceux qui ne sont pas insérés mais en mémoire dans le dessin). explication : Suite à l'utilisation du lisp Edit_bloc_rep, je souhaite "préparer" les blocs que je récupère sur les sites de plusieurs fournisseurs. Ces blocs sont souvent avec des attributs, propre aux fabricants et je veux les supprimer.J'ai donc des fois 50 à 100 blocs dans le dessin et je voudrais automatiser la suppression des attributs. Je pensais à une case à cocher : supprimer les attributs des blocs Voilà (gile), j'espère que tu pourras accéder à ma requête qui m'épargnerais énormément de boulot. Merci. Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 15 juin 2009 Auteur Partager Posté(e) le 15 juin 2009 Salut, Merci pour les compliments mais je n'ajouterais pas cette fonction à Edit_bloc, elle est, à mon avis trop spécifique. Par contre voici un petit LISP vite fait qui supprime tous les attributs dans toutes les définitions de bloc du document.Les références d'attribut dans les blocs déjà insérés ne sont pas supprimés, mais ça ne devrait pas avoir d'importance vu l'utilisation que tu veux en faire. (defun c:delatt () (vl-load-com) (vlax-for blk (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)) ) (if (and (= (vla-get-isXref blk) :vlax-false) (= (vla-get-isLayout blk) :vlax-false) ) (vlax-for obj blk (if (= (vla-get-ObjectName obj) "AcDbAttributeDefinition") (vla-delete obj) ) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Raph_38 Posté(e) le 16 juin 2009 Partager Posté(e) le 16 juin 2009 Merci énormément (gile) c'est vraiment sympa ! :D je test immédiatement. C'EST PARFAIT !!!! t'es un chef ! [Edité le 16/6/2009 par neptune38] Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 19 août 2009 Partager Posté(e) le 19 août 2009 Bonjour (gile), Dans la routine SSF, je ne sais pas comment lui indiquer que je veux une recherche dans un secteur que je choisis. J'ai essayé dans 3 ème ligne en partant du bas : (sssetfirst nil (ssget "_X" flst))de remplacer "_X" par le C de capture mais rien n'y fait... J'en suis à çà : (sssetfirst nil (and (ssget "_C" P1 P2)) (sssetfirst nil (ssget "_X" flst)) Je ne sai spas comment dire à SSGET qu'il faut trier selon deux critères, le FLST et mes deux points désignés par GETPOINT plus haut dans le lisp. 'ti coup de pouce ?... stp ?? Merci d'avance. "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 19 août 2009 Auteur Partager Posté(e) le 19 août 2009 Salut, Si j'ai bien compris, remplace :(sssetfirst nil (ssget "_X" flst))par(if (setq ss (ssget flst)) (sssetfirst nil ss) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 19 août 2009 Partager Posté(e) le 19 août 2009 Magnifique... Merci ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 26 août 2009 Partager Posté(e) le 26 août 2009 Hello (gile) Ton lisp Obj2Wipeout ne marche pas quand on est dans la fenêtre modification des blocs. J'ai ce message suivant : erreur: Erreur Automation Echec de l'appel Clear d'une méthode sur une interface IAcadSelectionSet T'es au courant ? J'ai fait des recherches j'ai rien trouvé... A bientôt. :D "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 26 août 2009 Auteur Partager Posté(e) le 26 août 2009 Salut, Je n'ai pas ce problème chez moi (2007 et 2010) mais vu le message d'erreur je pense que c'est du au fait que le LISP ne supprimait pas le jeu de sélection après usage.J'en ai profiter pour ajouter un (vl-catch-all-apply ...). J'ai modifié le fichier, tu peux le re-télécharger (n'oublie pas de nettoyer le cache de ton navigateur, dans l'en-tête du nouveau fichier la modification datée d'aujourd'hui est notée) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 26 août 2009 Partager Posté(e) le 26 août 2009 Nikel merci !! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 30 septembre 2009 Partager Posté(e) le 30 septembre 2009 Giles stp... J'ai le même problème qu'auparavent avec Objet To Wipe Out, le message réapparaît encore mais de manière aléatoire : Effacer les objets source ? [Oui/Non] :; erreur: Erreur Automation Echec de l'appel Clear d'une méthode sur une interface IAcadSelectionSet Parfois ça marche en édition de bloc, parfois non, mais même en espace objet classique j'ai ce message parfois... J'ai downloadé la dernière version pourtant... Si t'as une idée... Merci d'avance ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 septembre 2009 Auteur Partager Posté(e) le 30 septembre 2009 Salut, Dans la version que tu as, y a-t-il à la fin des commentaires en en tête :";;; Modifié le 26/08/09;;; - ajout vl-catch-all-apply"Sinon, il faut nettoyer le cache de ton navigateur avant de faire un nouveau téléchargement. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 30 septembre 2009 Partager Posté(e) le 30 septembre 2009 Hello, Oui j'avais lu ta réponse 08 et fait attention. Bon j'ai reloadé sur ta page... Pour l'instant ça marche... Merci à toi... "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 septembre 2009 Auteur Partager Posté(e) le 30 septembre 2009 D'après le message d'erreur, il s'agit d'un problème de jeu de sélection et ça fait penser au fait qu'AutocAD ne supporte pas plus de 128 jeux de sélections actifs simultanément., ça pourrait donc provenir d'un autre LISP ?... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 septembre 2009 Auteur Partager Posté(e) le 30 septembre 2009 Sinon, tu peux essayer de remplacer la fonction c:ob2wo par celle-ci qui n'utilise pas vla-get-ActiveSelectionSet, mais je ne pense pas que ça vienne de là. (defun c:ob2wo (/ ss n obj) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (setq ss (ssget '((0 . "CIRCLE,ELLIPSE,LWPOLYLINE")))) (progn (initget "Oui Non") (setq del (getkword "\nEffacer les objets source ? [Oui/Non] : ") n 0) (vla-StartundoMark acdoc) (while (setq obj (ssname ss n)) (setq obj (vlax-ename->vla-object obj) n (1- n) ) (vl-catch-all-apply '(lambda (/ lst nor lay) (setq lst (ent2ptlst obj) nor (vlax-get obj 'Normal) lay (vla-get-Layer obj) ) (makeWipeout lst nor lay) (and (= del "Oui") (vla-delete obj)) ) ) ) (vla-EndundoMark acdoc) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 1 octobre 2009 Partager Posté(e) le 1 octobre 2009 Encore merci... J'ai testé les deux et ils marchent bien... Le côté aléatoire me gênait car je n'arrivait pas à comprendre la cause. A bientôt. "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 2 décembre 2009 Auteur Partager Posté(e) le 2 décembre 2009 Salut, Ajout de la dernière version de InsTopo. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
coge.bruno Posté(e) le 14 décembre 2009 Partager Posté(e) le 14 décembre 2009 bonjour gile,petit message pour te dire qu'étant trés interressé par ton lisp sur "l'incrémentation de bloc avec attribut " ,j'ai essayé de le charger dans un dessin autocad 2007...sans succés a priori....la liste de commande n'aparaissant pas suite au chargement du lisp....comme c'est une sous routine...peu etre y a il un lien a etablir ? toujours est il que je ne suis pas parvenu à lancer l'application.... bien à toi , Coge.bruno Lien vers le commentaire Partager sur d’autres sites More sharing options...
mimine Posté(e) le 14 décembre 2009 Partager Posté(e) le 14 décembre 2009 De mémoire il faut incrémenter le premier N°,e t après le lisp fonctionne correctement Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 14 décembre 2009 Auteur Partager Posté(e) le 14 décembre 2009 coge.bruno, Après avoir chargé le LISP, tu peux entrer la commande INCR, elle ouvre un petite boite de dialiogue qui permet de lacer chacune des commandes définies dans le LISP. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dieunis Posté(e) le 4 janvier 2010 Partager Posté(e) le 4 janvier 2010 Salut et bonne année j'avais pensé à un petit ajout pour la commande spécial selection - sélection suivant le calque, mais en choisissant le nom du calque dans la liste des calques existant.- selection suivant le type d'entité, mais uniquement sur le calque de l'entité de départ. merci pour ces lisp, special selection est celui qui me sert en permanence et me fait gagner énormement de temps. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 4 janvier 2010 Auteur Partager Posté(e) le 4 janvier 2010 Salut, sélection suivant le calque, mais en choisissant le nom du calque dans la liste des calques existant. J'ai voulu que ces fonctions soient des fonctions simples d'utilisation (un seul clic).Pour choisir le nom du calque dans une liste déroulante, tu as SELECTRAP (ou _QSELECT). selection suivant le type d'entité, mais uniquement sur le calque de l'entité de départ. Pour filtrer sur plusieurs propriétés, regarde SSM Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dieunis Posté(e) le 4 janvier 2010 Partager Posté(e) le 4 janvier 2010 Merci le ssm, je l'avais pas vu au premier passage. Lien vers le commentaire Partager sur d’autres sites More sharing options...
philous2 Posté(e) le 3 février 2010 Partager Posté(e) le 3 février 2010 Bsr Gile,Je voudrais te poser une question sur 1 de tes macros " Increment", j'ai un collègue de boulot qui a installé ta macro sur son pc perso sutr la version Autocad 2008 et ça ne marche pas du moins la dernier version ds laquelle tu as rajouté la formule d'incrémentation. Ca marchait bien avec la version précédente, cela est du à quoi le problème, la version d'Autocad ?D'avance merciPhil Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 3 février 2010 Auteur Partager Posté(e) le 3 février 2010 Salut, Je ne comprends pas bien ce que tu veux dire par "dernier version ds laquelle tu as rajouté la formule d'incrémentation".Je viens de re-tester toutes les commandes depuis le fichier en téléchargement et tout fonctionne comme prévu. Il ne devrait y avoir aucun problème avec les différentes versions d'AutoCAD (chez moi ça fonctionne sur 2007 et 2010). Peut-être faut il que ton collègue refasse la procédure : téléchargement, enregistrement/remplacement du fichier. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
philous2 Posté(e) le 3 février 2010 Partager Posté(e) le 3 février 2010 Salut, Je ne comprends pas bien ce que tu veux dire par "dernier version ds laquelle tu as rajouté la formule d'incrémentation".Je viens de re-tester toutes les commandes depuis le fichier en téléchargement et tout fonctionne comme prévu. Il ne devrait y avoir aucun problème avec les différentes versions d'AutoCAD (chez moi ça fonctionne sur 2007 et 2010). Peut-être faut il que ton collègue refasse la procédure : téléchargement, enregistrement/remplacement du fichier. Reslt Gile,En 2008 j'avais donné cette macro à mon colègue et ds cette macros à l'époque il n'avait la boite de dialogue du choix d'incrémentation,tu l'as remise à jour en Mars 2009 il me semble. Avec la version 2008 ça marchait bien sur son micro, l'autre jour au boulot je lui est passé la dernière mais le problème c'est que j'ai écrasé les fichier et avec ce fichier(le dernier), cela ne fonctionne plus apparemment.Je lui ai demandé comme tu me l'indiques s'il a avait bien suivi la procédure à 1ère vue oui donc bizarre j'avais donc pensé que cela pouvait provenir de la version d'autocad mais non puisque tu dis que ca fonctionne bien chez toi comme chez moi aussi. bizarreMerci de ta réponse qd mêmeA+Phil Lien vers le commentaire Partager sur d’autres sites More sharing options...
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