Xdatas

Vou postar as rotinas que estavam faltando na RTC3:
(defun put-xdata2  (ent hands app /)
  (
remake-ent ent -3 (list (cons app hands))))

(
defun get-xdata2  (ent app /)
  (
setq app (strcase app))
  (
mapcar
    'cdr
    (cdr (assoc app
            (mapcar '(lambda (x)
                       (
cons (strcase (car x)) (cdr x)))
                    (
dxf -3 ent))))))

(
defun del-xdata2  (ent app / old)
  (
setq old (dxf -3 ent)
        app (strcase app))
  (
entmod
    (subst
      (cons -3
            (mapcar '(lambda (x)
                       (
if (equal app (strcase (car x)))
                         (
list app)
                         x))
                    old))
      (
cons -3 old)
      (
entget (ename-of ent) '("*"))))
  ent)


Para usar:
(get-xdata2 ent "app"), recupera a xdata de uma entidade
onde:
ENT é a ename, HANDLE, VLA...
"app" é o nome da "aplicação", ou nome da xdata
seu retorno será assim:
(valor1, valor2... valorn)

(put-xdata2 ent hands app), salva xdata numa entidade
onde hands é uma lista assim: (( dxf1 . valor1) ... (dxfn . valorn ))
ent e app: o mesmo que para get-xdata2

(del-xdata2 ent app) apaga uma xdata de uma entidade,
ent e app: o mesmo que para get-xdata2

Nenhum comentário:

Postar um comentário