Aller au contenu

Renseigner automatiquement des attributs


Cadiste

Messages recommandés

Bonjour,

 

Malgré mes recherches, je ne parviens pas à trouver mes réponses.

 

Je souhaiterai renseigner automatiquement des attributs X et Y de blocs depuis les propriétés de l'objet, puisqu'Autocad le renseigne automatiquement.

 

Par exemple, j'ai un bloc bouche à clé avec des attributs(COMMUNE, ADRESSE, DIAMETRE....X, Y..) et je souhaiterai renseigner ces champs X et Y en une manipulation sans passer par le copier coller depuis Position X et Position Y disponible dans la géométrie de l'objet.

 

Est ce que qqn saurait comment faire svp?

 

Je mets une illustration pour que se soit plus clair.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Malgré mes recherches, je ne parviens pas à trouver mes réponses.

 

Je souhaiterai renseigner automatiquement des attributs X et Y de blocs depuis les propriétés de l'objet, puisqu'Autocad le renseigne automatiquement.

 

Par exemple, j'ai un bloc bouche à clé avec des attributs(COMMUNE, ADRESSE, DIAMETRE....X, Y..) et je souhaiterai renseigner ces champs X et Y en une manipulation sans passer par le copier coller depuis Position X et Position Y disponible dans la géométrie de l'objet.

 

Est ce que qqn saurait comment faire svp?

 

Je mets une illustration pour que se soit plus clair.

Bonjour

d'après ce que j'ai compris,

là ou tu veux le texte tu fais un clic droit insérer un champs.

catégories de champs, tu choisis objet. tu cliques sur choix objet, tu sélectionnes ton bloc,

puis dans propriétés tu choisis position, et à droite tu peux cocher ou décocher la position x y ou z au choix

+++

 

si tu veux utiliser l'attribut, tu choisis toujours objet et tu cliques sur ton attribut et dans proprietés tu choisis "valeur"

Lien vers le commentaire
Partager sur d’autres sites

c'est pas mon image, j'espère que cela va marcher,

c'est comme si j'avais des attributs sous la partie 'Avancé' et je souhaite le remplir avec le champ Position Xhttp://exchange.autodesk.com/autocadarchitecture/fra/online-help/ARCHDESK/2012/FRA/attachments/detail_components_cmu_property_palette_design_tab.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

En m'appuyant sur l'extrait de dessin joint, ceci devrait faire l'affaire...

((lambda ( / js ent pt)
 (setq js (ssget '((0 . "INSERT") (2 . "AEP_VENTOUSE") (8 . "AEP_VENTOUSE"))))
 (repeat (setq n (sslength js))
   (setq
     ent (ssname js (setq n (1- n)))
     pt (cdr (assoc 10 (entget ent)))
   )
   (ade_odsetfield ent "EQUIPEMENT" "X" 0 (car pt))
   (ade_odsetfield ent "EQUIPEMENT" "Y" 0 (cadr pt))
 )
))

A copier-coller directement en ligne de commande de ton dessin.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Dans ta palette des propriétés il ne s'agit pas de renseignement d'attributs de bloc mais de Données d'Objet (OD).

 

Ici la clé primaire est "IDEQUIPEMENT".

 

il te faut alors un MAP est la base de données correspondantes,..

 

 

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

  • 8 ans après...
Le 10/09/2015 à 23:14, bonuscad a dit :

En m'appuyant sur l'extrait de dessin joint, ceci devrait faire l'affaire...

((lambda ( / js ent pt)
 (setq js (ssget '((0 . "INSERT") (2 . "AEP_VENTOUSE") (8 . "AEP_VENTOUSE"))))
 (repeat (setq n (sslength js))
   (setq
     ent (ssname js (setq n (1- n)))
     pt (cdr (assoc 10 (entget ent)))
   )
   (ade_odsetfield ent "EQUIPEMENT" "X" 0 (car pt))
   (ade_odsetfield ent "EQUIPEMENT" "Y" 0 (cadr pt))
 )
))

A copier-coller directement en ligne de commande de ton dessin.

Hello Bonuscad

J'ai réussi à appliquer ta formule sur certains de mes blocs mais pas sur d'autres... je n'arrive pas à déchiffrer tes lignes de code et à appliquer ça sur certains blocs.

J'aurai aimé pouvoir en plus de mes X et Y compléter les Z également mais je ne connait pas le langage de programmation!

Est ce que tu pourrais me faire une "traduction" que je remplisse ça ensuite de moi même ?

J'ai réussi à remplir ma ligne OD "Z" mais pas avec les données du champs "Z" correspondant à l'alti de mon bloc dans le dessin... "car" pour "X", "cadr" pour "Y" mais je ne sais pas quoi mettre pour avoir le "Z".

En espérant pouvoir rapidement avoir tes réponses!

A bientôt et merci d'avance!

Lien vers le commentaire
Partager sur d’autres sites

Coucou @CT_Ko,
Le Z correspond ici à (caddr) ou bien (last).
Pour l'explication (car) récupère le premier élément d'une liste et (cdr) renvoie la liste sans le premier élément. Par exemple

(setq pt '(12.5 16.8 11.7))
(car pt) -> 12.5
(cdr pt) -> (16.8 11.7)

On peut ensuite combiner ces deux fonctions (jusqu'à 4 combinaisons max) en utilisant le 'a' pour (car) et le 'd' pour (cdr). Les caractères 'c' et 'r' respectivement au début et la fin restent inchangés et uniques :

(cadr) -> (car) + (cdr)   : Donc le premier élément de la liste sans le premier élément (= le second élément)
(cdar) -> (cdr) + (car)   : Donc la liste sans le premier élément du premier élément de la liste (= si le premier élément est une liste, alors retourne cette liste sans le premier élément de celle-ci, sinon retourne rien)
(caddr) -> (car) + (cdr) + (cdr)   : Donc le premier élément de la liste sans le premier élément de la liste sans le premier élément (= le troisième élément)
(cddddr) -> (cdr) + (cdr) + (cdr) + (cdr)   : Donc la liste sans les 4 premiers éléments
...

L'ordre des lettres est important donc. Mais pour ce qui te concerne :

(car) -> Premier élément de la liste des coordonnées d'un point (= X)
(cadr) -> Second élément de la liste des coordonnées d'un point (= Y)
(caddr) -> Troisième élément de la liste des coordonnées d'un point (= Z)
(last) -> Dernier élément de la liste des coordonnées d'un point (= Z si coordonnées 3D, Y si coordonnées 2D)
Comme ta liste représente ici un point 3D, tu as 3 éléments uniquement dans la liste, c'est pourquoi
(caddr) ET (last) renvoient toutes deux le même résultat

En espérant que cela aura pu t'aider 🙂

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Hello Luna!

Mille mercis c'est limpide grâce à tes explications!

Je suis complètement novice dans le langage LISP mais ça a l'air d'être un langage incontournable sous Autocad (surtout quand on doit traiter des plans énormes)!

As-tu des tutos ou bien des sites qui me permettraient d'accéder à cette compétence?!

Encore un grand merci tu m'épargnes un copié-collé sur 5238 éléments!!

Avec toute ma reconnaissance!

Korentin

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Je te conseille de consulter ces 2 sites francophones qui sont très bien fait et très intéressant :
  • 
https://www.da-code.fr/ par Didier
  • https://programmation.developpez.com/tutoriels/autolisp/introduction-autolisp/ par Gilles Chanteau

Déjà avec chat tu pourras beaucoup apprendre ! Ensuite, rien de mieux que d'ouvrir un AutoCAD, l'aide AutoCAD également et de tester les fonctions que tu apprends au fur et à mesure. Toujours y aller étape par étape, à la vitesse qui te convient et éviter de voir trop gros dès le début 😉

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Merci @Luna, je rajouterais juste un lien (en Anglais) sur les fonctions lisp exclusives à map3D pour @CT_Ko

Ça peut toujours servir...

https://documentation.help/AutoCAD-Map-3D-2009-AutoLISP/ade_function_catalog.htm

 

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é