Squelet Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 Bonjour, J'ai plusieurs blocs de même dimension, mais dans des calques différents, qui se superposent.On en voit donc qu'un seul à l'écran.Mais j'ai besoin de vérifier si chaque bloc est bien dans le calque correspondant. Si j'appuie sur Ctrl, et que je sélectionne les blocs, je passe effectivement d'un bloc à l'autre.Le problème, c'est que les infos dans les propriètés ne se mettent pas à jour suivant le bloc sélectionné, donc pas moyen de savoir dans quel calque il est. Est-ce que quelqu'un aurait une solution . Merci d'avance. Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
ticticmarc Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 BonjourGrace à la selection rapide tu peux appliquer des filtres ( voir fenêtre "propriété")C'est très puissant et efficasse. Moi je l'utilise souvent et j'en suis satisfait
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 Euh ...., des filtres ? Peux-tu m'expliquer un peu plus en détails ?? [Edité le 23/3/2007 par Squelet] Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Tramber Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 Tu dois faire ta selection cyclique et appuyer sur ENTREE tout simplement.Moyennant quoi la selection cyclique doit être reprise à chaque fois. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 Effectivement ! Je pensais qu'il y aurait une manip plus simple, dommage Bon week-end [Edité le 23/3/2007 par Squelet] Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 Salut,un petit lisp... ? (defun c:selB (/ SEL TXT X) (setq sel nil txt "\n Blocs sélectionnés :\n" x 0) (while (not sel) (setq sel (ssget '((0 . "INSERT" ))))) (repeat (sslength sel) (setq txt (strcat txt "\n"(cdr (assoc 2 (entget (ssname sel x)))) " dans Calque " (cdr (assoc 8 (entget (ssname sel x))))) x (+ x 1)) ) (alert txt) (princ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 Salut,un petit lisp... ? Salut Bred Etant complètement novice en Lisp, qu'est-ce que je fais de ton charabia ?(c'est de l'humour bien entendu !) :( Je le colle ou, et j'en fais quoi.Merci de ton aide. Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 l'une de manière : (la + "simple" pour débuter) Tu copies le code dans un bloc note que tu nommes et enregistre comme tu veux en mettant comme extension .lsp Puis tu vas dans Autocad, tu va dans Outils / Charger une ApplicationDans la boite de dialogue tu as une valise : tu delectionne "contenu" ... et là tu vas chercher le fichier .lsp que tu as enregistrer precedement. Tu auras dorénavant une nouvelle commande dans autocad nommé "selB" (tape là au clavier) Le lisp sera alors charger à chaque démarage. Il y a d'autre manières.... Pour info, si tu veux raccourcir le nom de la commande au clavier tu met ce que tu veux comme commande à la place de "selB" dans (defun c: sb (................(laisse le c: ) [Edité le 23/3/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 OK,et ben je vais essayer tout de suite .... Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 Tu copies le code dans un bloc note que tu nommes et enregistre comme tu veux en mettant comme extension .lspCa, c'est fait ! Puis tu vas dans Autocad, tu va dans Outils / Charger une ApplicationDans la boite de dialogue tu as une valise : tu delectionne "contenu"... et là tu vas chercher le fichier .lsp que tu as enregistrer precedement. Ca aussi. Extra ton truc ! Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Squelet Posté(e) le 23 mars 2007 Auteur Posté(e) le 23 mars 2007 Ouais, c'est vraiment génial !Est-ce que tu crois qu'il y a moyen de le modifier pour que cette petite routine s'applique aussi à des polylignes 2D et 3D ? Parce qu'alors là ça me changerait vraiment la vie !!!! En tout cas merci de m'avoir fait découvrir ma première routine Lisp. Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 23 mars 2007 Posté(e) le 23 mars 2007 Re,Est-ce que tu crois qu'il y a moyen de le modifier pour que cette petite routine s'applique aussi à des polylignes 2D et 3D ? Je n'ai pas fait de différence entre polylgne 2D ou 3D (c'est possible...) (defun c:selpoly (/ SEL TXT X) (setq sel nil txt "\n Polylignes2D/3D sélectionnés :\n" x 0) (while (not sel) (setq sel (ssget '((0 . "*POLYLINE"))))) (repeat (sslength sel) (setq txt (strcat txt "\nPolyligne "(rtos (+ x 1)) " dans Calque " (cdr (assoc 8 (entget (ssname sel x))))) x (+ x 1)) ) (alert txt) (princ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Squelet Posté(e) le 25 mars 2007 Auteur Posté(e) le 25 mars 2007 Je n'ai pas fait de différence entre polylgne 2D ou 3D (c'est possible...)Ouais, si on peut même faire la différence entre une 2D et une 3D, ca devient carrément le paradis !! :D Et si en plus on peut afficher la longueur de chaque entité, alors je me prosternerais à tes pieds !!!!!! Par contre juste deux petites questions :Peut-on éviter la ribambelle de 000 ?http://www.vorger.fr/images/covadisforum/selp.png Et enfin, pour ne pas mourrir idiot, où est-ce que je peux piocher des infos pour essayer de comprendre tes deux routines ? Le Lisp commence vraiment à m'intérresser !!! Voilà, merci et bon dimanche.Je file au ski faire. Les conditions de neige sur la savoie sont vraiment excellentes en ce moment. :thumbup: [Edité le 25/3/2007 par Squelet] Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 25 mars 2007 Posté(e) le 25 mars 2007 Salut... Bonne neige ??? Le lisp ci dessous te fairas ce que tu demande....(pour la "la ribambelle de 000", c'est bizarre, je n'ai pas ça....) (defun c:selpoly (/ LST LST-LW LST-P SEL TXT2D TXT3D X) (vl-load-com) (setq sel nil lst nil lst-P nil lst-LW nil txt2D "\n Polylignes 2D sélectionnés :\n" txt3D "\n Polylignes 3D sélectionnés :\n" x 0) (while (not sel) (setq sel (ssget '((0 . "*POLYLINE"))))) (repeat (sslength sel) (setq lst (append (list (cdr (assoc -1 (entget (ssname sel x))))) lst) x (+ x 1)) ) (foreach n lst (if (equal (cdr (assoc 0 (entget n))) "POLYLINE") (setq lst-P (append (list n) lst-P)) (setq lst-LW (append (list n) lst-LW))) ) (setq x 0) (repeat (length lst-LW) (setq txt2D (strcat txt2D "\nPolyligne-2D "(rtos (+ x 1)) " dans Calque " (cdr (assoc 8 (entget (nth x lst-LW)))) " - Longueur : " (rtos (vlax-curve-getDistAtParam (nth x lst-LW) (vlax-curve-getEndParam (nth x lst-LW))))) x (+ x 1)) ) (setq x 0) (repeat (length lst-P) (setq txt3D (strcat txt3D "\nPolyligne-3D "(rtos (+ x 1)) " dans Calque " (cdr (assoc 8 (entget (nth x lst-P)))) " - Longueur : " (rtos (vlax-curve-getDistAtParam (nth x lst-P) (vlax-curve-getEndParam (nth x lst-P))))) x (+ x 1)) ) (if lst-LW (alert txt2D)) (if lst-P (alert txt3D)) (princ) )[Edité le 26/3/2007 par Bred] [Edité le 26/3/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 26 mars 2007 Posté(e) le 26 mars 2007 Salut Bred, Pour la longueur de tous les objets "curvilignes" (arcs, cercles, ellipses, lignes, splines et polylignes 2D 3D ou lw) (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)) ou obj peut être soit un ename soit un vla-object. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Squelet Posté(e) le 26 mars 2007 Auteur Posté(e) le 26 mars 2007 Salut Bred,Salut (gile), Ouais, extra la neige ! Bon, ben, j'ai ajouter ce matin la routine que tu m'as concocter hier soir, mais dés que je la lance, j'ai le message d'erreur suivant : ; erreur: nombre d'arguments insuffisants C'est grave, Docteur ? (gile) a dit : (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)) Etant complètement novice en Lisp, comment est-ce que je dois bidouiller le code de Bred pour intégrer ta commande ? Bonne journée à tous les deux. [Edité le 26/3/2007 par Squelet] Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 26 mars 2007 Posté(e) le 26 mars 2007 Merci (gile)! Squelet : J'ai modifié et corrigé la routine précédente : elle te donneras ce que tu demandes maitenant.Dis moi si ça te convient !.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Squelet Posté(e) le 26 mars 2007 Auteur Posté(e) le 26 mars 2007 je viens d'essayer le nouvelle routine modifiée, résultat après avoir fait la séléction d'objets : ; erreur: no function definition: VLAX-CURVE-GETENDPARAM Apparement, il y a un soucis avec le fonction de (gile) ou me trompe-je ? [Edité le 26/3/2007 par Squelet] Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
Bred Posté(e) le 26 mars 2007 Posté(e) le 26 mars 2007 Ah.. sur 2005 les fonctions vl ne sont pas chargé automatiquement peut-être....que cela ne tienne : rajoute un(vl-load-com)en début de code (routine ci-dessus modifié) [Edité le 26/3/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Squelet Posté(e) le 26 mars 2007 Auteur Posté(e) le 26 mars 2007 Exact, maintenant tout baigne, et c'est trop de la balle !! (comme me dit régulièrement mon fiston de dix ans) Ca me donne vraiment envie de me mettre au LIsp ! Merci Bred pour ta cohopération et surtout pour la rapidité de tes réponses.Merci à (gile) aussi. Bonne fin de journée Sur Autocad Map 2005 "Un problème sans solution est un faux problème" Albert Einstein
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