-
Compteur de contenus
397 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Serge
-
Ludwig, Que cherches-tu à faire ? Tu souhaite que l'image soit identique sur les objets transformés, c'est-à-dire que si tu les tourne, tu pivotes la vue de l'angle inverse ou si tu les déplace, que tu effectue un PAN ? Est-ce bien cela ? En tout cas, tout ça, le MVPort le fait. Voir http://www.cadnovation.com/fr/Prod/mvport/mvport.asp Patrick, Les clichés (slide) dispraissent avec un _Redraw. Je crois que tu voulais parler de vues (_View). Serge
-
Ludwig, En désespoir de cause, tu peux exporter tout le dessin avec la commande WBLOC (_WBLOCK). Cela va nous seulement réparer les erreurs mais éliminer toutes références inutilisées. Serge
-
Tramber, Tu avais raison avec le calque verrouillé. Un MVPort sur un tel calque verrouille la vue :-) Un jour, tout le monde aura son MVPort :-)) Serge
-
À tous, SOAP est l'acronyme de (Simply Open AutoCAD with a Profile). L'idée originale vient d'un fil initié par Patrick qui voulait ouvrir AutoCAD avec le bon profil. SOAP permet de lister toutes les versions d'AutoCAD et leurs profils. Il suffit d'effectuer un double-clic sur l'un des profils pour ouvrir AutoCAD avec ce profil. La version actuelle est en anglais seulemt mais je compte la rendre disponible en 6 langues bientôt. Vos commentaires sont les bienvenues. Ci-après se trouve un extrait du fichier readme.txt qui accompagne le produit. Serge -------- SOAP (Simply Open AutoCAD with a Profile) Version 1.0 Ce programme permet de lancer AutoCAD avec un profil défini. Une boite de dialogue s'ouvre et affiche toutes les versions installées sur votre poste et leurs profils. Il suffit d'effectuer un double-clic sur un profil pour ouvrir AutoCAD. ------------------------------------------------------------- Pré-requis: Le Framework de .Net doit être installé au préalable. La plupart du temps, il l'est et vous ne le savez pas. Pour le savoir, ouvrez l'Explorateur de Windows et vérifiez la présence de C:\WINDOWS\Microsoft.NET\Framework. Vous devriez avoir un ou plusieurs sous-répertoires pour chacune des versions du Framework ------------------------------------------------------------- Téléchargement du Framework Microsoft® .NET Framework Version 1.1 Redistributable Package .NET Framework Version 1.1 Redistributable Package Résumé Nom du fichier : dotnetfx.exe Taille du téléchargement : 23710 Ko Date de publication : 22/05/2003 Version : 1.1 http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=fr ------------------------------------------------------------- Crédits Ce programme est distribué tel quel gratuitement. Pour rejoindre l'auteur: serge.camire@cadnovation.com
-
Ludwig, Tu peux fixer au préalable EXPERT à 5 Serge
-
Patrick, C'est vraiment "Back to the future". Les rectangles "paramètriques" étaient fait de blocs il y a vingt ans :-)) Serge
-
Question de garder ce fil vivant: Laurent: si n'a pas compris les jeux de mots, il y a surement plein d'autres aussi. Tu as eu le courage de le dire. Bravo! En voici d'autres oubliés. J'ai baissé pavillon, j'irai en Berne: Berne est une ville de Suisse mais berne signifie baisser le drapeau (pavillon). Le drapeau Suisse et celui de la Croix-Rouge sont identiques si on inverse les couleurs. Il y avait aussi le Rhin et le rein "qu'à mi ré"tabli sonne comme Camiré-tabli Sac à blagues : ce n'était pas un jeu de mot mais une blague à tabac est un sac donc c'est un pléonasme. C'était un peu concentré, non? Serge
-
Faire une sélection à l\'aide d\'un objet existant
Serge a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Bonuscas, Il n'y a rien de vraiment réjouissant à déboguer le code d'autrui lorqu'on ne connais ni les bugs, ni le contexte d'utilisation et que le code n'a aucun commentaire. Serge -
fabcad, Il suffit de fixer CDMDIA à 0 avant. Voici tiré du manuele "L'univers AutoCAD 2002", page 256. Anglais - Français DBCCLOSE MASQMODIF DBCCONFIGURE DBCCONFIGURE DBCCONNECT DBCCONNECT DBCDEFINELLT DBCDEFINELLT DBCDEFINELT DBCDEFINELT DBCDELETELINKS DBCDELETELINKS DBCDELETELLT DBCDELETELLT DBCDELETELT DBCDELETELT DBCDELETEQRY DBCDELETEQRY DBCEDITLINKEDTABLE DBCEDITLINKEDTABLE DBCEDITLLT DBCEDITLLT DBCEDITLT DBCEDITLT DBCEDITQRY DBCEDITQRY DBCEDITTABLE DBCEDITTABLE DBCEXECUTEQRY DBCEXECUTEQRY DBCEXPORTLINKS DBCEXPORTLINKS DBCEXPORTQS DBCEXPORTQS DBCEXPORTTS DBCEXPORTTS DBCHIDELABELS DBCHIDELABELS DBCIMPORTQRY DBCIMPORTQRY DBCIMPORTQS DBCIMPORTQS DBCIMPORTTS DBCIMPORTTS DBCLINKCONVERSION DBCLINKCONVERSION DBCLINKMANAGER DBCLINKMANAGER DBCONNECT CONNECTBD DBCRELOADLABELS DBCRELOADLABELS DBCSELECTLINKS DBCSELECTLINKS DBCSHOWLABELS DBCSHOWLABELS DBCVIEWLINKEDTABLE DBCVIEWLINKEDTABLE DBCVIEWTABLE DBCVIEWTABLE DBLCLKEDIT DBLCLCMODIF Serge
-
importer un bloc sans la commande _insert
Serge a répondu à un(e) sujet de Patrick_35 dans Visual LISP
Patrick_35, On peux faire comme Astérix et Obélix dans le livre du tour de Gaule (et si Bernard Flavignard vient, il va nous en faire un en vélo). Serge -
Patrick_35, Je n'avais pas tout lu. Tu peux te servir des fonctions du tableau noir (blackboard), une zone au dessus de tous les dessins. Un flag te permettra de savoir si le réacteur est chargé. (vl-bb-ref 'variable) pour recevoir la valeur du blackboard. (vl-bb-set 'variable valeur) pour transmettre la valeur au blackboard. (vl-load-all "nom_de_fichier") pour charger dans tous les fichiers ouverts et à ouvrir (mais le mnl le fera aussi) (vl-propagate 'variable) pour copier la valeur de la variable à tous les dessins ouverts et à ouvrir. Serge
-
Patrick_35, Il y a 2 choses. La première est qu'il est préférable de s'en tenir à une seule approche. Si on utilise du vla, le faire bout à bout. Si on utilise des ent (e.g. entmake, entmod et entupd), ne pas utiliser de vla. en autant que faire se peut. Deuxièmement, si tu veux lire ton facteur d'échelle d'un dessin à l'autre, tu peux utiliser (setq echelle_inserer (getreal "Facteur d'échelle pour les blocs : ")) (vl-propagate ' echelle_inserer) Serge
-
Laurent, C'est un peu dur pour moi d'expliquer tous les jeux de mot car ça enlève un peu du punch. Voici ceux qui n'en sont pas: J'ai bel et bien eu (ou espère ne plus avoir) une pierre de 9mm sur le rein droit. C'est assez amusant quand ça passe. Je suis bel et bien tombé sur le dos en patins à roues alignées et j'ai encore des douleurs. Voici ceux qui en sont: Un calcul est une pierre (l'origine du mot vient des abaques chinoises) Un verre à soi au lieu du chinois qui veut son ver à soie Lit-banc, et non Liban Lit à lit et non l'Italie Germaine (germanique puis gère mène) Con joint, en 2 mots, ici le mot con est associé à connard et non à moult objets (ne pas lire moule objet) Félino-beurrique: (pour ceux qui n'ont pas lu notre fil "La citation du jour" du 25 avril 2003 sur le forum new.planetar.net) théorie sur la gravitation qui n'a jamais pu être démontré. Voici un extrait: 2003-04-25, de Patrick Emin: "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi." (Einstein) 2003-05-02: de moi Il y a une semaine, j’ai eu l’occasion de vivre la dualité théorie-pratique. Je m’explique. Je montais les escalier à toute allure lorsque mes orteils frappèrent la dernière marche. Entre l’instant où j’ai entendu le crounch et l’instant de l’impact sur le sol, je me suis revu comme dans un film au ralenti alors que je jouais les Tarzan sur un catamaran au bord d’une plage à Sainte-Lucie. Ne riez pas, je me suis blessé. Mal m’en pris de me laisser distraire. Inconsciemment, mon réflexe fut de me recroqueviller et je me laissa choir de mes 90 kilos de muscles et autres matières organiques sur les genoux sur un plancher en érable. Je cherche encore sur le plancher les marques en forme de toile d’araignée comme celles que l’on retrouve en se fracassant le crâne sur un pare-brise mais bon, c’est un plancher de qualité. Alors que je me roulais de douleur mais qu’aucun témoin n’assistait au drame pour partager mes souffrances, je me suis dis « Mais voilà! Profitons de cet instant de solitude pour repenser la théorie ‘félino-beurrique’ ». Qu’est ce que cette théorie? Simple! Prenons un chat et lançons-le dans les airs. Il retombera toujours sur ses pattes. Prenons une toast (tartine, rôtie) que l’on beurre avec de la confiture et échappons-là. Elle tombera toujours du coté confiture, c’est bien connu. Maintenant, que se passe-t-il si on attache une toast sur le dos d’un chat et qu’on les projette tous les deux dans les airs? Rien! La théorie fait en sorte qu’il y aura une lutte entre les 2 et qu’aucun ne tombera, ce qui en fait un système anti-gravitationnel par excellence. Il me manque de chat et de confiture pour terminer ma pratique mais tout me laisse croire qu’il s’agit bel et bien d’une théorie. etc. etc. Serge
-
importer un bloc sans la commande _insert
Serge a répondu à un(e) sujet de Patrick_35 dans Visual LISP
Patrick_35, Et quel fromage amèreras-tu ? ;;; my-vla-Insert ;;; Permet d'insérer un fichier de dessin via les méthodes vla. ;;; ;;; Compatibilité: AutoCAD 2000 et plus ;;; ;;; Instructions: ;;; 1) Charger ce fichier ;;; 2) Taper la commande TEST ;;; ;;; Par Serge Camiré, CadNovation, 2005/02/25 ;;; http://www.cadnovation.com/fr ;;; ;;; my-vla-Insert ;;; Permet d'insérer un fichier ;;; Reçoit: ;;; blockName: 'STR, le nom du fichier avec chemin complet ou relatif, avec ou sans extension ;;; et insensible à la casse. ;;; insPt: 'LIST, Point2D ou Poin3D (contenant des entiers ou des réels) ;;; x, y, z: 'REAL, les échelles non nulles ;;; ang: 'REAL, angle en radians (defun my-vla-Insert ( blockName insPt x y z ang / ) (if (and ;; assertion blockName (= (type blockName) 'STR) (/= "*" (substr blockName 1 1)) insPt (= (type insPt) 'LIST) (member (length insPt) '(2 3)) (and (mapcar 'numberp insPt)) (and (mapcar 'numberp (list x y z ang))) (not (member t (mapcar 'zerop (list x y z)))) ) (progn (if (= (length insPt) 2) (setq insPt (reverse (cons 0.0 (reverse insPt))))) (setq insPt (mapcar '* insPt '(1.0 1.0 1.0))) (my-vla-Insert-validated blockName insPt x y z ang) )) ) ;;; my-vla-Insert-validated ;;; Insère le bloc. Doit obligatoirement être appellé par my-vla-Insert ;;; Les paramètres sont les mêmes. (defun my-vla-Insert-validated ( blockName insPt x y z ang / blocksTable definedBlockName found ucBlockName vlathisDrawing vlaCurrentSpace ) (vl-load-com) (setq ucBlockName (strcase blockName)) ; Upper case ;; Nous n'utiliserons pas (tblsearch "block" blockName) (setq vlathisDrawing (vla-get-activedocument (vlax-get-acad-object))) (setq vlaCurrentSpace (if (= acModelSpace (vla-get-ActiveSpace vlathisDrawing)) (vla-get-ModelSpace vlathisDrawing) (vla-get-PaperSpace vlathisDrawing) )) (setq blocksTable (vla-get-blocks vlathisDrawing)) (setq found nil) (vlax-for block blocksTable (setq definedBlockName (strcase (vla-get-name block))) (if (= definedBlockName ucBlockName) (setq found t)) ) (if (not found) (progn (cond ((setq filename (findfile blockName)) nil) ((setq filename (findfile (strcat blockName ".dwg"))) nil) (t (setq filename nil)) ) (if filename (vla-InsertBlock vlaCurrentSpace (PointToVariant insPt) fileName x y z ang)) ) (progn (vla-InsertBlock vlaCurrentSpace (PointToVariant insPt) blockName x y z ang) )) nil ) ;;; PointToVariant ;;; Conversion de Point2D ou Point3D en variant (defun PointToVariant ( point / arraySpace sArray ) (setq arraySpace (vlax-make-safearray vlax-vbDouble (cons 0 (1- (length point))))) (setq sArray (vlax-safearray-fill arraySpace point)) (vlax-make-variant sArray) ) (defun c:test () ; Insérer un des dessins dans le répertoire Sample (my-vla-Insert "sample/colorwh" '(0 0) 1 1 1 0) (princ) ) (princ "\nTapez TEST pour tester avec le fichier \"Sample/Colorwh.dwg\".") (princ) Serge -
Éric, Laurent l'a dit: la version officielle d'Autodesk est Limited Technologiy mais le velgum pecus parle de Ligth. Par ailleurs, il faut se remettre dans le contexte. LT est apparu pas longtemps après Windows NT d'où le rapprochement des noms. NT signifie New Technology (issu de OS/2). Serge
-
Merci Patricks, Je me demandais si ce fil était rendu trop vieux et que personne ne le lise. Je me rend compte que je rapporterai beaucoup de souvenirs de lit à lit. J'ai montré nos conversations à ma conjonte qui s'est étonnée d'être germaine. Serge disait peut-être: "Mais non, tu es ma tête de Turque" Bon, assez d'imbécillité pour aujourd'hui. Passons aux choses sérieuses: écrivons massivement aux éditeurs des dictionnaires Larousse, Robert, etc pour faire enlever le 2ième L dans le mot imbécillité. Serge
-
À tous, Wow, je crois bien qu’avec tout ce monde qui veut venir à Lyon, j’aurais effectivement besoin d’un Trafic pour transporter tout le sirop d’érable requis. Je tiens compte de vos recommandations et je vais continuer mes recherches. Je vous tiens au courant. N’hésitez pas et continuez de me donner des idées et des suggestions. L’idée de louer un véhicule de type Kangoo ou Trafic n’est pas de moi, ni l’idée de visiter l’Allemagne. C’est de ma conjointe qui doit avoir des racines germaines profondes (elle gère et elle mène). Dormir dans ce genre de véhicule risque de me faire mal au dos. Le 5 octobre dernier, je suis allé voir le Queen Mary 2 en patins à roues alignées (il était amarré). Une vue renversante : je suis tombé directement sur le dos (pour vrai). Cette fois ci, j’avais plein de témoins pour assister à mes souffrances mais j’étais incapable de reprendre mon souffle et de leur dire que tout ceci ne serait pas arrivé si je m’étais attaché 4 ou 5 pains derrière le dos (connaissez-vous la théorie félino-beurrique ?). Depuis, j’ai encore mal au dos. Nostradamus disait peut-être : « Le Lit-banc sera source de tensions » De plus, une des caractéristiques majeures de l’Europe est la gastronomie. Je ne vais pas me priver. D’ailleurs, l’Allemagne peut m’offrir le genre de repas sept services dont je raffole : une pizza et un six pack de bières. Les 2 vont mal avec la conduite automobile. Confusius disait peut-être : « Il est bon d’avoir son verre à soie » Et une des dernières incertitudes qui nous empêcherait de visiter le Rhin avant de voir le pays voisin qui arbore un drapeau à la croix est qu’il faut que je fasse un tour à l’hôpital me faire examiner le rein (je suis un vrai sac à blagues ce matin). J’ai eu une pierre de 9 mm qui semble avoir passé dans la semaine du 23 décembre mais je ne suis « qu’à mi ré »tabli. Ça m’amuse mais ça inquiète ma conjointe. Que voulez-vous, j’ai toujours été bon en calculs. Ma conjointe disait peut-être : « Serge, tu es mon con joint » Finalement, si Clermont est à 2 heures de Lyon en voiture, Bruno (BTO) est encore plus près mais Bernard pourra lui s’y rendre en vélo en moins 5 heures Pour ce qui est de Besançon, c’est près de notre itinéraire en effet. C’aurait pu l’être encore plus car je voulais visiter Dijon et Champlitte, villes d’origine de mes aïeux. Ce sera sans doute pour une autre fois. Serge
-
Tiffonky, Je n'ai aucun mérite, je travaille avec AutoCAD presque tous les mois depuis 20 ans. Je suis autodidacte. Le plus dur ces temps ci est de prgrammer un jour en Lisp, l'autre jour en .Net (DotNet) et l'autre jour en C++ Serge
-
Bonjour à tous, Comme le dit le sujet, j'avais choisi la France. J'ai dû baisser pavillon et j'irai en Berne (Suisse). À 99.9%, j'irai passer 3 semaines en Europe (dernière de juin et les 2 premières de juillet). Je voulais passer une grande partie de mon temps en France mais il m'a fallu faire un compromis: ce sera donc un arrivée à Paris et un retour pas Lyons, en passant par l'allemagne, la Suisse et le nord de l'Italie. Nous cherchons à louer un petit véhicule style RV permettant d'y dormir (e.g. un Wesfalia). Nous avons vu le Kangoo (un kangourou sans roues?). Quelqu'un peut-il me dire si c'est le bon modèle. Pouvez-vous me donner des alternatives? Et en passant, Lyons n'est qu'à une heure de Clermont-Ferrant en passant par la Nationale 7 (avis aux intéressés). Pour ce qui est de Strastbourg, nous irons en Moselle. Merci et au plaisir de voir vos réponses à mon tout premier sujet sur ce forum. Serge
-
Titifonky, Pour ce qui est des livres, je ne sais pas. Pour ce qui est de la routine, je t'ai ajouté quelques lignes en espérant que cela te conviendra. ;;; c:ChgGroupStatus ;;; Change le mode de séletion des groupes associés à un objet choisi. ;;; Par Serge Camiré Cad-Novation 2005-02-22 ;;; spyDictionnaries ;;; Retourne une liste triée de tous les groupes auquel un objet fait partie. ;;; Reçoit un objet (ename) ;;; Retourne une liste de noms. (defun spyDictionnaries ( object / AllDictObjects AllDictObjectsLength AllDictObjectsLength existIn groupDictionnary isMemberOf MyDictObjs names objectGet pos ) (setq objectGet (entget object)) (setq isMemberOf nil) (setq groupDictionnary (dictsearch (namedobjdict) "acad_group")) (if groupDictionnary (progn (setq names (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 3 (car x))) groupDictionnary))) (setq AllDictObjects (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 350 (car x))) groupDictionnary))) ;; Si on ramasse des objets 330 non pertinents, ce n'est pas grave puisqu'on les filtrera ;; mais ça donne du code plus court (setq MyDictObjs (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 330 (car x))) objectGet))) (setq AllDictObjectsLength (length AllDictObjects)) (foreach MyDictObj MyDictObjs (setq existIn (member MyDictObj AllDictObjects)) (if existIn (progn (setq pos (- AllDictObjectsLength (length existIn))) (setq isMemberOf (cons (nth pos names) isMemberOf)) )) ) )) (acad_strlsort isMemberOf) ) ;;; changeGroupStatus ;;; Change le statut de sélection. ;;; Reçoit : ;;; dictName: 'STR, le nom du dictionnaire ;;; selectableMode: 0 ou 1 ;;; Retourne: rien (defun changeGroupStatus ( dictName selectableMode / groupDictionnary objDictionnary objDictionnaryGet ) (cond ((not (setq groupDictionnary (dictsearch (namedobjdict) "acad_group"))) nil) ((not (setq groupDictionnary (member (cons 3 dictName) groupDictionnary))) nil) ((not (setq objDictionnary (cdadr groupDictionnary))) nil) ((not (setq objDictionnaryGet (entget objDictionnary))) nil) (t (setq objDictionnaryGet (subst (cons 71 selectableMode) (assoc 71 objDictionnaryGet) objDictionnaryGet)) (entmod objDictionnaryGet) (entupd objDictionnary) ) ) nil ) (defun c:ChgGroupStatus ( / groupes msg object objectSel reponse status ) (setq objectSel (entsel "\nChoisissez l'objet: ")) (setq object (car objectSel)) (setq groupes (spyDictionnaries object)) (if groupes (progn (setq msg (if (> (length groupes) 1) "Rendre ces groupes sélectionnables" "Rendre ce groupe sélectionnable" )) (setq msg (strcat msg " [Oui/Non] : ")) (initget "Oui Non") (setq reponse (getkword msg)) (setq status (if (= "Non" reponse) 0 1)) (foreach groupe groupes (changeGroupStatus groupe status) ) ) (progn (princ "\nAucun groupe.") )) (princ) ) (princ "\nTapez ChgGroupStatus pour modifier le statut de sélection des groupes.") (princ) Serge
-
Éric, Je ne connais pas milka donc je ne peux suivre le fil :-) Je sais par ailleurs que amazone.com a été acheté par des gens sans scrupules. L'amazonie appartenant au peuple, rien ne pouvait les empêcher d'agir de la sorte. Maintenant, amazon.com et amazone.com sont sous le même serveur. En passant, la semaine qui a suivi notre première annonce de MVPort dans la revue Cadence, quelqu'un du Nevada s'est appropré le nom de domaine pour nous faire chier Pako, Le nom est trop différent. En passant, tu as publié un article sur la fête nationale du Canada. Ce qu'il faut aussi mettre dans le contexte est que le terme Canadiens et Canada étaient propres aux gens d'origine française et que les anglo-canadiens se disaient toujours des sujets britanniques jusqu'à la Première guerre mondiale. Ceci explique pourquoi ces dernier étaient moins attachées à la fête du Canada. Le paradoxe aujourd'hui est que les Canadiens sont devenus des Québecois et que les Brits sont devenus Canadiens. Serge
-
samiste, Les fichiers rml servent au marquage depuis des applications comme VoloView. RML signifie redline markup language . Ils s'importe (mais ne se crée pas) dans AutoCAD depuis la 2002 via _rmlin comme l'a précisé Éric. Note: c'est inscrit à la page 187 du chapitre que patrick a écrit dans le manuel "L'Univers AutoCAD 2002". Serge
-
Eric, Un groupe de musiciens nommé AutoCAD (oui oui) s'est apprprié le site www.autocad.com. Cela n'a pas duré. Des ententes internationales permettent de protéger les noms implicites et évidents. je ne pourrais pas m'approprier coca-cola.com m'est si cette compagnie n'y a pas pensé. Par contre, je pourrais utiliser boireducola.com sans problème. Serge
-
Patrick, Je me suis toujours dmandé pourquoi les banques ne font pas de même. Par exemple, si j'ai 10000$ dans mon compte et qu'un malfaiteur me pointe de son couteau, j'opterais pour un faux code qui prétendrait que je n'ai que 47,50$ en liquidité. Ainsi, j'aurais la vie sauve en échange de quelques billets. Inversement, si je ne divulgue rien de plausible, je serai haché menu. Serge
-
Titifonky, ;;; spyDictionnaries ;;; Retourne une liste triée de tous les groupes auquel un objet fait partie. ;;; Reçoit un objet (ename) ;;; Retourne une liste de noms. ;;; Par Serge cAMIRÉ, cAD-NOVATION. 2005-02-21 (defun spyDictionnaries ( object / AllDictObjects AllDictObjectsLength AllDictObjectsLength existIn groupDictionnary isMemberOf MyDictObjs names objectGet pos ) (setq objectGet (entget object)) (setq isMemberOf nil) (setq groupDictionnary (dictsearch (namedobjdict) "acad_group")) (if groupDictionnary (progn (setq names (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 3 (car x))) groupDictionnary))) (setq AllDictObjects (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 350 (car x))) groupDictionnary))) ;; Si on ramasse des objets 330 non pertinents, ce n'est pas grave puisqu'on les filtrera ;; mais ça donne du code plus court (setq MyDictObjs (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 330 (car x))) objectGet))) (setq AllDictObjectsLength (length AllDictObjects)) (foreach MyDictObj MyDictObjs (setq existIn (member MyDictObj AllDictObjects)) (if existIn (progn (setq pos (- AllDictObjectsLength (length existIn))) (setq isMemberOf (cons (nth pos names) isMemberOf)) )) ) )) (acad_strlsort isMemberOf) ) (defun c:test ( / object objectSel reponse ) (setq objectSel (entsel "\nChoisissez l'objet: ")) (setq object (car objectSel)) (setq reponse (spyDictionnaries object)) (if reponse (progn (princ "\nLes groupes sont: ") (princ reponse) ) (progn (princ "\nAucun groupe.") )) (princ) ) Serge
