Aller au contenu

Help LISP copier/coller une Donnee Objet (OD) d'un champ a un autre


Messages recommandés

Posté(e)

Bonjour,

 

J'ai cherché (peut être mal...) sans trouver mon bonheur!

Je suis complètement ignorant dans le langage LISP et je cherche un LISP permettant de copier/coller une donnée objet de la table attributaire d'un objet dans un autre champ de cette même table attributaire.

Je ne sais pas si je suis clair mais en gros j'ai cette table attributaire : 

image.thumb.png.5f8f5191f2fc1eb19f74870ed0a40b97.png

Et je cherche un moyen de copier la valeur du champ "DIAM_P" dans le champ "DIAM_S".

J'ai également à copier pour d'autres objet un champ "LONG_CALC" vers "LONG_TERR" toujours au sein de la même table.

J'aimerai bien un coup de pouce de votre part le temps d'apprendre car j'ai plus de 4800 objets concernés par ces copier/coller ....!

 

Merci BEAUCOUP d'avance pour votre aide! 

Korentin.

Posté(e)

Bonjour CT_KO,

Pour être sur de bien comprendre ta demande, je me permet de la reformuler ce que j'ai compris.

Tu veux copier la valeur du champ d'un attribut d'un définition de bloc vers un autre attribut de cette même définition de bloc ? Puis, remettre à jour 4800 référence de cette définition de bloc ?

Si t'elle est le cas, tu peux ajouter un champ dans un attribut de ta définition de bloc qui copie la valeur d'un autre attribut de cette définition. Puis une synchroniser les références de blocs.

Olivier

Posté(e)

Alors je veux dans la table attributaire d'un même bloc copier la donnée "DIAM_P" et la coller dans le champ "DIAM_S".

Je ne peux rien modifier sur mes blocs... je ne peux que faire du remplissage pour être conforme au gabarit de réception demandé!

J'espère que ça aide ?

 

Posté(e)
il y a une heure, OlivierR a dit :

Bonjour CT_KO,

Pour être sur de bien comprendre ta demande, je me permet de la reformuler ce que j'ai compris.

Tu veux copier la valeur du champ d'un attribut d'un définition de bloc vers un autre attribut de cette même définition de bloc ? Puis, remettre à jour 4800 référence de cette définition de bloc ?

Si t'elle est le cas, tu peux ajouter un champ dans un attribut de ta définition de bloc qui copie la valeur d'un autre attribut de cette définition. Puis une synchroniser les références de blocs.

Olivier

Je pense que j'ai paraphraser ce que tu disais dans ma réponse!

Malheureusement je ne comprends pas le mode opératoire que tu proposes Olivier... 😅

Posté(e)

Bonjour @CT_Ko

Si vous êtes déjà passé sur le forum, vous devez savoir que la demande de DWG est récurrente et dans votre demande, c'est encore (et toujours) le cas.
Il suffit d'envoyer un dessin avec quelques blocs à traiter, et dans un coin mettre le bloc avec les bons attributs en bonne place.
Si on devait faire quelque chose pour vous aider, il serait bien plus aisé de comprendre en ayant l'exemple du but à atteindre.

C'est possible ?

Amicalement

 

Posté(e)

Bonjour Didier,

Oui bien sur je peux  fournir un extrait du dwg en question!

J'étais justement entrain de lire une de tes réponses concernant un lisp pour le copier/coller de données objet mais je n'arrive pas à l'employer...

Ci-joint un extrait dwg.

Merci pour ton intérêt!

TEST.dwg

Posté(e)

Désolé de ne pas avoir pu répondre à ta demande au premier envoi.

Voici le dwg reprenant tes demandes pour comprendre ma situation.

Mon dwg contient des polylignes ainsi que des blocs. C'est auprès de ces deux types d'objets que je souhaite faire du copier/coller de donnée objet.

La capture d'écran diffusée plus haut montre les données objets attribuées ici à une soudure (bloc "rec-rcu-piece-soud").

Merci pour ta patience et ton aide.

TEST.dwg

Posté(e)

Hello @CT_Ko  + @didier @Olivier Eckmann

Voici une routine Lisp "brut de fonderie" sur les ODs de MAP qui fait le Job

Routine "OD_Field1ToField2" qui te demande les Noms EXACTS de ta Table OD et de tes 2 Champs OD (Depart / Arrivee)

ATTENTION : aucune gestion d erreur ! Ne sélectionner QUE des objets ayant la bonne table OD et les 2 bons champs OD !!

MAIS cela devrait BIEN t aider !?

SVP tu nous diras ...

Merci, Bye, lecrabe

PS: je ne suis pas du tout Programmeur Lisp/VLisp ... J ai simplement adapte une routine sur les ODs "proche" !

 

 
;; 
;; Routine: OD_Field1ToField2 by Patrice B. for AutoCAD MAP & CIVIL 
;; 
;; ATTENTION : select ONLY Entities with the RIGHT OD Table !
;;
 
(vl-load-com) 

(defun C:OD_Field1ToField2 ( / js n_pl ent dxf_ent Nouv_Contenu Contenu Table_OD Champ_OD1 Champ_OD2 ) 
 
   (princ "\n------ ATTENTION : No Error Management ! ------ ")

   (setq Table_OD (getstring T "\nPlease EXACT Name for the OD Table : "))

   (setq Champ_OD1 (getstring T "\nPlease EXACT Name for the Departure OD Field 1 : ")) 

   (setq Champ_OD2 (getstring T "\nPlease EXACT Name for the Arrival   OD Field 2 : "))


   (setq js (ssget )) 

  (cond
    (js
      (repeat (setq n_pl (sslength js))
        (setq ent (ssname js (setq n_pl (1- n_pl))))
        (setq dxf_ent (entget ent)) 

         (progn 

;;;;;;;; Recuperation du Contenu du champ "Champ_OD1" de "Table_OD" ;;;;;;;;
         ( setq Contenu  ( ade_odgetfield   ent   Table_OD   Champ_OD1   0   ) )

         ( setq Nouv_Contenu Contenu ) 

;;;;;;;; Affectation du Nouveau Contenu dans le champ "Champ_OD" de "Table_OD" ;;;;;;;; 
         ( ade_odsetfield   ent   Table_OD   Champ_OD2    0   Nouv_Contenu )
 
         )

      )
    )
  ) 
(princ)
)

 

Autodesk Expert Elite Team

Posté(e)
il y a 30 minutes, didier a dit :

Bonjour @CT_Ko

Il semblerait que tu aimes les blagues !!

Puisqu'il n'y a PAS DE BLOC AVEC ATTRIBUT, comment dois-je faire pour comprendre ????????
Comment dois-je faire pour t'aider ????? Que dois-je faire ????? oui je sais... lâcher l'affaire (me dit une petite voix)

Amicalement

Excuses moi DIdier si je t'ai fait perdre ton temps ce n'était pas mon intention.

Je n'ai pas parler "d'attributs de blocs" mais de "table attributaire" et de "donnée objet" ... mon erreur a peut être été de ne pas mentionner que j'étais sur Autocad Map.

Je ne me suis pas encore familiarisé avec le forum mais je tâcherai à l'avenir de préciser d'avantage mes requêtes ainsi que de trouver les bons termes techniques pour éviter ce genre de retours.

Bien cordialement.

Posté(e)

@Olivier Eckmann merci pour ton plug-in il me permet d'effectuer ce que je désire et me fais gagner un temps fou !!!

Je n'ai pas fait de retour avant, le temps de le prendre en main et de constater son efficacité!

@lecrabe je te fais un retour dès que j'aurai testé ta routine c'est promis! Je vais en priorité répondre à la demande de mon client et fournir le plan en question.

Vos solutions sont extrêmement enrichissantes, merci mille fois!!

J'espère pouvoir dispenser la même aide que vous sur ce forum dès que j'en aurai la possibilité (et les capacités surtout 🙃) !

Merci merci merci !

Korentin

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é