#1 Thu 26 June 2014 12:28
- yoann
- Participant actif
- Lieu: Grenoble
- Date d'inscription: 19 Sep 2005
- Messages: 120
[MAP 2014] Champ automatique dans les données d'objet
Bonjour,
Est-il possible d'ajouter un champ automatique dans les données d'objet ?
J'ai créé un champ X et un champ Y dans lesquels je souhaite récupérer automatiquement les coordonnées X et Y d'un point.
Merci d'avance.
Cdt.
Hors ligne
#2 Thu 26 June 2014 17:20
- fabcad
- Participant assidu
- Lieu: Acigné
- Date d'inscription: 3 Apr 2006
- Messages: 277
Re: [MAP 2014] Champ automatique dans les données d'objet
Bonsoir,
Il est possible de le faire mais pas directement en utilisant la combinaison : Annotations AutoCAD MAP / Générer des liens / Données d'Objet.
Sinon j'ai commencé une routine pour remplir les champs de valeurs mais elle n'est pas aboutie sur toutes les propriétés AutoCAD.
De plus, j'aurais souhaité intégrer la case de dialogue dans le LISP (comme Gile,etc via l'écriture dans un fichier temp).
Je la met en pièce-jointe.
a+
Fabcad,
Dernière modification par fabcad (Thu 26 June 2014 17:30)
Hors ligne
#3 Thu 26 June 2014 17:36
- bruno v.
- Participant actif
- Date d'inscription: 22 Mar 2010
- Messages: 89
Re: [MAP 2014] Champ automatique dans les données d'objet
Bonjour,
J'ai écrit quelque lignes à la volée, pour faire exactement la même chose pour mon besoin.
Il te faudra l'adapter rapidement pour ton cas.
Déjà changer dans le filtre de sélection, le nom du calque (8 . "PR") deviendra (8 . "Le nom de ton calque à traiter")
Ensuite il faut que la table existe déjà, ainsi que les nom de champs à renseigner.
Modifier aussi le nom de la table et les noms des champs requis (dans mon code "POINTS-ROUTIERS" pour la table et "X_PR_RGF93" ..... pour les champs)
Code:
((lambda ( / js_pr n ent dxf_ent pr_pt) (setq js_pr (ssget "_X" '((0 . "POINT") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "PR") (100 . "AcDbPoint")))) (cond (js_pr (repeat (setq n_pr (sslength js_pr)) (setq ent (ssname js_pr (setq n_pr (1- n_pr)))) (setq dxf_ent (entget ent)) (setq pr_pt (cdr (assoc 10 dxf_ent))) (if pr_pt (progn (ade_odaddrecord ent "POINTS-ROUTIERS") (ade_odsetfield ent "POINTS-ROUTIERS" "X_PR_RGF93" 0 (car pr_pt)) (ade_odsetfield ent "POINTS-ROUTIERS" "Y_PR_RGF93" 0 (cadr pr_pt)) (ade_odsetfield ent "POINTS-ROUTIERS" "Z_PR_RGF93" 0 (caddr pr_pt)) ) ) ) ) ) ))
Une fois modifié, copier-coller le code directement en ligne de commande et ça devrait faire le taff.
Hors ligne
#4 Thu 26 June 2014 17:51
- yoann
- Participant actif
- Lieu: Grenoble
- Date d'inscription: 19 Sep 2005
- Messages: 120
Re: [MAP 2014] Champ automatique dans les données d'objet
Merci pour vos réponses.
En fait je me suis débrouillé avec la fonction d'export en SHP, où l'on peut choisir, outre les OD à exporter, les propriétés géométriques de l'objet, en l’occurrence les coordonnées XY (X1 et Y1) de mes blocs. Ensuite j'enregistre le fichier de paramétrage sous un fichier epf (xml), que j'édite pour classer mes champs comme je le veux (car autocad map ne permet pas à priori à l'export de choisir l'ordre des champs du SHP).
Cdt
Hors ligne
#5 Thu 26 June 2014 18:28
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: [MAP 2014] Champ automatique dans les données d'objet
Hello le Grenoblois
Excellent la bidouille avec le fichier XML d'Export (.EPF) pour avoir les champs dans un ordre precis !
Comme quoi un "jeune" Grenoblois est plus subtil qu'un "vieux" Stephanois ...
Bonne fin de journee, GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne