Aller au contenu

lire avec ASSOC le 2e CODE 10 ?!


Messages recommandés

Posté(e)

Bonjour à Toutes et à Tous,

J'ai une liste obtenue avec ( entget (entlast) ) qui contient deux CODES 10 en faisant un ASSOC on obtient toujours le 1er ???

Comment puis-je le forcer à chercher le 2e ?

Ou comment puis-je découper une liste à partir du Nième ELEMENT et garder le reste.

Je vous remercie.

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Ou encore, bien mieux à mon avis, l'utilisation d'une fonction plus générique qui renvoie toutes les valeurs pour le code de groupe donné :

;; gc:massoc
;; Retourne la liste de toutes les valeurs pour le code spécifié dans une liste d'association
;;
;; Arguments
;; key : la clé à rechercher dans la liste
;; alst : une liste d'association
(defun gc:massoc (key alst)
  (if (setq alst (member (assoc key alst) alst))
    (cons (cdar alst) (gc:massoc key (cdr alst)))
  )
)

Pour obtenir le deuxième groupe 10 :

(cadr (gc:massoc 10 (entget (entlast))))

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour @rebcao

En plus des solutions de (gile) je te propose de faire la liste de tous les codes 10 dans une liste issue d'un ENTGET sur une entité.
Particulièrement intéressant pour extraire les sommets d'une polyligne.

Dans le cas de ta demande, il te suffira de demander le (nth 1 lstsom) pour obtenir le deuxième code 10

Amicalement
 

(setq ent (car (entsel))) ;; choix de l'entité à l'écran
(setq listdxf (entget ent)) ;; création de la liste de sous-listes des éléments de définition de l'entité

  ;; dans la variable lstsom seront stockés tous les codes 10, soit des triplets xyz des vertices
(setq lstsom
       (mapcar 'cdr
           (vl-remove-if-not
         '(lambda (x) (= (car x) 10))
         listdxf
           )
       )
      
)

 

Posté(e)

Autre souci lorsque je suis sur un SCU le point d'insertion (code 10) obtenu est celui du SCG ???

Je ne me rappelle pas de la fonction qui permet de transposer les coordonnées du SCU  ?

Je vous remercie.

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité