philous Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Bjr, J'ai une question a vs poser, j'ai un fichier composé d'un nombres important de blocs puisque c'est l'ensemble des limites de communes de mon départementj'ai donc créé un type de ligne dans un bloc d'une limite de commune et je voudrais maintenant mettre à jour l'ensmble des autres blocs en une seule fois.En fait les blocs de départ avait commen type de ligne "continu" que j'ai changé par un autre.Pour l'instant je n'ai pas trouvé de solution qd modifiant blmoc par bloc ce qui est long je dois dire.Donc si quelqu'un a une solution sur Autocad 2006 merci d'avance Phil
vinz34 Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Salut, Il y a surement une solution si tu as une version full en passant par le lisp, mais il faudrait que tu sois plus clair. je n'ai pas trouvé de solution qd modifiant blmoc par bloc ??!!??D'abord c'est quoi "blmoc" ?Ensuite, ce sont toutes lignes dans les blocs de type de ligne "continuous" que tu veux remplacer par ton type de ligne ?
philous Posté(e) le 8 janvier 2008 Auteur Posté(e) le 8 janvier 2008 excuse Vinz 34 j'ai foiré ds la fin de mon message, je voulais dire " Pour l'instant je n'ai pas trouvé de solution qd modifiant blmoc par bloc ce qui est long je dois dire".. En fait je voulais dire je n'ai pas trouvé de solution pour remplacer le type de ligne d'un bloc sur l'ensemble de mes blocs . Je m'explique j'ai un nombre x de blocs sur la carte de mon département correspondant aux différents communes. Chaque commune (contour, limite) est un bloc bien précis puiisque c'est un export de Mapinfo. J'ai donc modifié le type de ligne d'un des ces différents blocs et je voudrais maintenant faire la même chose mais pour le reste en une seule opération et non 1 par 1 vu le nombre important.étais-je un peu plus clair et précis cette fois-ci ?
BIM G CO Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Il faut mettre donc dans tous tes blocs toutes les entités en type de ligne "DUBLOC" de manière à ce que tu n'ai plus qu'à sélectionner les blocs et ainsi modifier leur type de ligne à l'aide de propriété! ici Il ne manque plus que la valeur de la variable CELTSCALE des entités dans chacun des blocs pour dévelloper une routine. et Cela ce n'est que toi qui peut le donner. [Edité le 8/1/2008 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
vinz34 Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Salut philous, Désolé je n'avais pas compris, je n'avais pas les yeux en face des trous en sortant de table, on va mettre ça sur le compte de la digestion.C'est effectivement plus clair, mais je ne sais toujours pas une si tu une version LT ou full.
BIM G CO Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Vinz34 Etant donné que c'est le Forum AutoCAD 2006 et non AutoCAD LT 2006 la question se pose-t-elle vraiment? Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
philous Posté(e) le 8 janvier 2008 Auteur Posté(e) le 8 janvier 2008 pas grave Vinz34 en fait la fin de mon message n'était non plus très clair.Pour ma version au boulot ici on es ten réseau ce n'es tpas la LT c'est la version Map 3d 2006.En fait je fais actuellement des fichiers gabarits pour mon service, et celui que je fait actuellement c'est un fichier de plan de situation donc j'utilise les exports de Mapinfo pour le s limites des communes mais ces limites sont ttes des blocs d'ou mon souicis pour transformer le type de ligne actuel de la limite qui est Continu par un autre type perso que j'ai créé.
vinz34 Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Décidément, je n'ai pas les yeux en face des trous aujourd'hui.Peut être assez pour pondre ça : (defun c:philous (/ ss lst n elist e nom newname) (setq ss (ssget)) (while (not newname) (setq newname (getstring "Nom du type de ligne de remplacement : ")) (if (not (tblsearch "ltype" newname)) (setq newname nil)) );while (repeat (setq n (sslength ss)) (setq elist (entget (setq e (ssname ss (setq n (1- n)))))) (if (and (= (cdr (assoc 0 elist)) "INSERT") (not (member (setq nom (cdr (assoc 2 elist))) lst))) (progn (setq lst (cons nom lst) e (cdr (assoc -2 (tblsearch "block" nom)))) (while e (setq elist (entget e)) (cond ((and (assoc 6 elist) (= (cdr (assoc 6 elist)) "Continuous")) (entmod (subst (cons 6 newname) (assoc 6 elist) elist)))) (setq e (entnext e)) ); while );progn );if );repeat );defun
(gile) Posté(e) le 8 janvier 2008 Posté(e) le 8 janvier 2008 Salut, Je ne comprends pas bien la demande. S'agit-il de modifier uniquement des références des blocs dans le dessin ?ou de modifier les définitions des blocs (et mettre à jour les références) ? S'agit-il de modifier le type de ligne de certains composants des blocs ? ou celui de tous les composants des blocs ? Pour tous les composants dans les définitions, tu peux utiliser le LISP Edit_Bloc sur cette page Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philous Posté(e) le 9 janvier 2008 Auteur Posté(e) le 9 janvier 2008 Salut GILE Ma demande. est assez simple de modifier le type de ligne de blocs tout simplement mais en une seule oprération au lieude modifier bloc par bloc séparement.Mes blocs sont les contours de limite des communes demon département exporter je crois par Mapinfo. La ligne de contour de chaque commune n'est pas une polyligne mais un boc contenu une succesion de petits segments de ligne, donc je ne peux pas modifier la ligne car c'est un bloc à moins de prendre individuellement chaque bloc d'ou un travail important en temps.Pour résumer il s'agit donc de modifier un composant dde bloc soit le type de ligne uniquement.As-tu compris mon soucis GILE ?Vraiment super tes LISP GILESuper travailSi tu peux répondre à mon problème je te remercie d'avance. Phil
philous Posté(e) le 9 janvier 2008 Auteur Posté(e) le 9 janvier 2008 Merci (gile), en fait j'ai réussi avec ton application Edit_bloc, super efficace.Par contre tu auras peut-être réponse à un autre problème auquel je sui confronté, c'est renommé un très grands nombres de blocs en 1 seul opération.En effet, je suis ds des cartes d emon département, et je voudrais par exemple renommer ts les blocs communes , puis ts ceux cantons etc.... si je les prend 1 par 1 j'en ai paiour un moment, car il y en a plusieurs centaines.Merci d'avance de ton éventuel réponse.A +Phil
philous Posté(e) le 9 janvier 2008 Auteur Posté(e) le 9 janvier 2008 Merci (gile), en fait j'ai réussi avec ton application Edit_bloc, super efficace.Par contre tu auras peut-être réponse à un autre problème auquel je sui confronté, c'est renommé un très grands nombres de blocs en 1 seul opération.En effet, je suis ds des cartes d emon département, et je voudrais par exemple renommer ts les blocs communes , puis ts ceux cantons etc.... si je les prend 1 par 1 j'en ai pour un moment, car il y en a plusieurs centaines.Merci d'avance de ton éventuel réponse.A +Phil
philous Posté(e) le 9 janvier 2008 Auteur Posté(e) le 9 janvier 2008 Merci (gile), en fait j'ai réussi avec ton application Edit_bloc, super efficace.Par contre tu auras peut-être réponse à un autre problème auquel je sui confronté, c'est renommé un très grands nombres de blocs en 1 seul opération.En effet, je suis ds des cartes d emon département, et je voudrais par exemple renommer ts les blocs communes , puis ts ceux cantons etc.... si je les prend 1 par 1 j'en ai pour un moment, car il y en a plusieurs centaines.Merci d'avance de ton éventuel réponse.A +Phil
BIM G CO Posté(e) le 10 janvier 2008 Posté(e) le 10 janvier 2008 Un début Pour avoir sous forme de liste le noms de tous les blocs (defun table_entete (TB / TBLIST TBLIST TBNAME RES) (setq TBNLIST nil) (setq TBLIST (tblnext TB T)) (while TBLIST (setq TBNAME (cdr (assoc 2 TBLIST))) (setq TBNLIST (append TBNLIST (list TBNAME))) (setq TBLIST (tblnext TB)) ) (setq RES TBNLIST) ) (defun Nombloc () (table_entete "BLOCK") ) Pour avoir une variable de la liste de tes blocs : (setq Liste_Nom_Blocs (Nombloc)) Pour renommer un bloc en AutoLISP(command "_.-rename" "_block" AncienNom NouveauNom) Voilà un bon départ Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
philous Posté(e) le 10 janvier 2008 Auteur Posté(e) le 10 janvier 2008 Salut Maximilien, J'ai bien lu ta réponse intéressante ma fois, mais je n'ai pas les LISP ou Variable pour faire ce que tu dis comme "renommer un bloc en AutoLISP (command "_.-rename" "_block" AncienNom NouveauNom) " ou "liste de tes blocs : (setq Liste_Nom_Blocs (Nombloc)" , etc....Merci d'avance A+ Phil
BIM G CO Posté(e) le 10 janvier 2008 Posté(e) le 10 janvier 2008 Cher philous, Tout ce que j'ai dit précédemment c'est pour réaliser ton programme ce sont des bout de programmes dans (setq Liste_Nom_Blocs (Nombloc))Liste_Nom_Bloc est une variable(NomBloc) la valeur affecté à la variable.et pour éviter d'avoir un message du genre ; erreur: no function definition: NOMBLOCN'oublie pas de prendre les LISPs que je te donne à ma réponse précédente. pour (command "_.-rename" "_block" AncienNom NouveauNom)AncienNom et NouveauNom correspondent respectivement à l'ancien NOM et au nouveau NOM de bloc que [surligneur] TU[/surligneur] dois spécifier. Je ne donne rien clé en main. Je préfère donner des pistes pour que chacun fasse sa propre cuisine. [Edité le 10/1/2008 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
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