BiB_Put

Fonction Catégorie Version
BIB 12 BiB_Put Gestion des Objets 1.0 - Janvier 2007

Description

But Permet de modifier directement la valeur associée d'une paire pointée.
Prototype (BiB_Put Nom_Entité Code Nouv._Val)
Arguments Nom_Entité - Le nom de l'entité - ename -
Code - Le code associé à l'attribut à modifier - entier -
Nouv_Val - La nouvelle valeur correspondant au code - tout type -
Retours L'ename de l'entité (qui est modifiée en conséquence) - ename -
Var. globales Néant
Description Permet de modifier la valeur associée d'une paire pointée dans la liste de définitions d'une entité à partir de son 'ename'.
Notes Si la paire pointée n'existe pas, elle est ajoutée à la liste de définitions.
Exemples

Commmand: (command "_text" "100,50" "10" "15" "Ceci est le texte")

Command: (setq T1 (entlast))	
	<Entity name: 1801568>
	
Command: (entget T1)
(-1 . <Entity name: 1801568>)(0 . "TEXT") (5 . "20D") 
(100 . "AcDbEntity")(67 . 0) (8 . "ROUGE") (100 . "AcDbText")
(10 	100.0 50.0 0.0) (40 . 10.0) (1 . "Ceci est le texte")
(50 . 0.261799) etc...

Command: (BiB_Put T1 8 "new_plan")   retourne 
	<Entity name: 1801568>	
Note : Le calque 'new_plan' qui n'existait pas a été créé automatiquement.

Command: (BiB_Put T1 1 "Nouveau texte")   retourne 
	<Entity name: 1801568>
	
Command: (entget T1)  
((-1 . <Entity name: 1801568>) (0 . "TEXT") (5 . "20D")
(100 . "AcDbEntity")(67 . 0)(8 . "NEW_PLAN")(100 . "AcDbText")
(10 100.0 50.0 0.0) (40 . 10.0) (1 . "Nouveau texte") 
(50 . 0.261799) (41 . 1.0) 	(51 . 0.0) (7 . "STANDARD") 
(71 . 0)(72 . 0) (210 0.0 0.0 1.0)(100 . "AcDbText")(73 . 0))

Le texte a été remplacé sur le dessin et placé dans le calque 'new_plan'

La fonction


  1-  (defun BiB_Put ( *Ent_Name *Key *New_Val / EntDat Val1)

  2-      (setq EntDat (entget *Ent_Name))	
  3-      (entmod	
  4-         (if (setq Val1 (assoc *Key EntDat)) 			
  5-             (subst (cons *Key *New_Val) Val1 EntDat) 	
  6-             (append EntDat (cons *Key *New_Val))	
  7-         )	
  8-      )
  9-      (eval *Ent_Name)	
 10-  )
Ligne 2 :  récupère dans EntDat les données de l'entité *Ent_Name
Ligne 3 :  met à jour les données de EntDat après,
Ligne 4 :    s'il y a une valeur associée à *Key, - après avoir stocké la liste dans Val1
Ligne 5 :       et substitué *New_Val à l'ancienne valeur
Ligne 6 :       sinon ajoute une paire pointée créée avec le code et la nouvelle valeur
Ligne 9 :   retourne l'ename.

entget : retourne les données de définition de l' entité ayant pour 'ename' *Ent_Name.
entmod : met à jour la base de données de l'entité dont la liste est en argument.
assoc : recherche dans la base de données EntDat le ou les éléments associés à *Key.
subst : dans la liste EntDat, remplace la paire pointée avec Val1 par la paire pointée *Key . *New_Val.
cons : construit la paire pointée '*Key . *New_Val'
append : ajoute la liste (*Key . *New_Val) dans la liste EntDat.
eval : renvoie le résultat de l'évaluation d'une expression AutoLISP.