lisp - Auto change block text

lisp - Auto change block text

Anonymous
Not applicable
368 Views
1 Reply
Message 1 of 2

lisp - Auto change block text

Anonymous
Not applicable

Hello,

 

i have a code to automaticly change the text in a tag of a block. Now i want to add another blockname, how can i do that so he looks for blk STDAO102 and STDAO101, so he can change the value's in blk STDAO102 'OR' STDAO101?

 

------------------------------------------------------

 

 

(DEFUN GET-ATT (tag blk / val enx) 
(SETQ blk (SSNAME (SSGET "x" (LIST '(0 . "INSERT") (CONS 2 blk) (CONS 410 (GETVAR 'ctab)))) 0))
(WHILE
(AND
(NULL val)
(= "ATTRIB" (CDR (ASSOC 0 (SETQ enx (ENTGET (SETQ blk (ENTNEXT blk)))))))
)
(IF (= (STRCASE tag) (STRCASE (CDR (ASSOC 2 enx))))
(SETQ val (CDR (ASSOC 1 enx)))
)
)
)

(DEFUN PUT-ATT (blk tag val / end enx)
(SETQ blk (SSNAME (SSGET "x" (LIST '(0 . "INSERT") (CONS 2 blk) (CONS 410 (GETVAR 'ctab)))) 0))
(WHILE (AND (NULL end) (= "ATTRIB" (CDR (ASSOC 0 (SETQ enx (ENTGET (SETQ blk (ENTNEXT blk))))))))
(IF (= (STRCASE tag) (STRCASE (CDR (ASSOC 2 enx))))
(IF (ENTMOD (SUBST (CONS 1 val) (ASSOC 1 enx) enx))
(PROGN (ENTUPD blk) (SETQ end val))
)
)
)
)

(DEFUN COPY-ATT (BLOCKNAME FROMatt TOatt / VALUE) ; You mentioned scripting and so I put a function.
(SETQ VALUE (GET-ATT FROMatt BLOCKNAME))
(PUT-ATT BLOCKNAME TOatt VALUE)
)

(DEFUN C:DAVID0(/ BLOCKNAME FROMatt TOatt)
(SETQ BLOCKNAME (setq blk "STDAO101")
FROMatt (setq tag "26")
TOatt (setq tag "22")
)

(IF (TBLSEARCH "BLOCK" BLOCKNAME) (COPY-ATT BLOCKNAME FROMatt TOatt) (PRINC "\n BLOCK NOT FOUND"))
)

 

0 Likes
369 Views
1 Reply
Reply (1)
Message 2 of 2

hmsilva
Mentor
Mentor

Try

 

(DEFUN C:DAVID0 (/ BLOCKNAME FROMatt TOatt)
  (foreach x '("STDAO101" "STDAO102")
    (SETQ BLOCKNAME (setq blk x)
          FROMatt   (setq tag "26")
          TOatt     (setq tag "22")
    )
    (IF (TBLSEARCH "BLOCK" BLOCKNAME)
      (progn
        (COPY-ATT BLOCKNAME FROMatt TOatt)
        (PRINC (strcat "\n BLOCK " x " WAS FOUND"))
        )
      (PRINC (strcat "\n BLOCK " x " NOT FOUND"))
    )
  )
  (princ)
)

 

Hope this helps,
Henrique

EESignature

0 Likes