• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    Visual LISP, AutoLISP and General Customization

    Reply
    New Member
    MontgomeryRoth
    Posts: 2
    Registered: ‎12-08-2011
    Accepted Solution

    Convert Attribute Tag Into Attribute Value

    219 Views, 3 Replies
    12-08-2011 01:38 PM

    AutoLISP Experience: Minimal

     

    Background: Someone exploded an attribute block and copied it hundreds of times throughout a project, each time changing the Attribute Tag to match the Value they expected to appear in their drawing.  The drawing must be xrefed, so the attribute definitions do not appear.

    (There is only 1 attribute in the block.)

     

     

    Proposed Solutions:

     

    1:AutoLISP routine which copies Tag data from Attribute Definition into Value of Attribute Block:

    Prompt-Select Attribute Definition

    Copy Tag data

    Prompt-Select Attribute Block

    Paste data into Value

    (Allow repeat to speed workflow)(*PREFERRED*)

     

    2:AutoLISP routine which copies Tag data from Attribute Definition into Default Value and creates a new Block:

    Prompt-Select Attribute Definition

    Copy Tag data

    Paste data into Default Value

    Create New Block

    (Select Multiple Objects)(Creates tons of new blocks which are messy)

     

    Please use plain text.
    Valued Mentor
    _Tharwat
    Posts: 468
    Registered: ‎07-02-2010

    Re: Convert Attribute Tag Into Attribute Value

    12-08-2011 01:54 PM in reply to: MontgomeryRoth

    This would help you with the first part of your request ...

     

    (defun c:TesT (/ attributeDefinition attent ss i n e)
      ;; Tharwat 08. Dec. 2011 ;;
      (if
        (and (setq attributeDefinition
                    (car
                      (entsel "\n Select Attribute definition :"
                      )
                    )
             )
             (eq (cdr (assoc 0 (setq attent (entget attributeDefinition))))
                 "ATTDEF"
             )
             (progn (prompt "\n Select Attributed Blocks ")
                    (setq ss (ssget "_:L" '((0 . "INSERT") (66 . 1))))
             )
        )
         (repeat (setq i (sslength ss))
           (setq n (entnext (ssname ss (setq i (1- i)))))
           (while
             (not
               (eq (cdr (assoc 0 (setq e (entget n))))
                   "SEQEND"
               )
             )
              (entmod
                (subst (cons 1 (cdr (assoc 2 attent))) (assoc 1 e) e)
              )
              (setq n (entnext n))
           )
         )
      )
      (princ)
    )

     

    Please use plain text.
    New Member
    MontgomeryRoth
    Posts: 2
    Registered: ‎12-08-2011

    Re: Convert Attribute Tag Into Attribute Value

    12-08-2011 04:42 PM in reply to: _Tharwat

    Thanks so much, this worked great!

    You probably cut our repair time down to a quarter of what it would have been or better.

    Exactly what we were looking for.

    Please use plain text.
    Valued Mentor
    _Tharwat
    Posts: 468
    Registered: ‎07-02-2010

    Re: Convert Attribute Tag Into Attribute Value

    12-09-2011 01:22 AM in reply to: MontgomeryRoth

    MontgomeryRoth wrote:

    Thanks so much, this worked great!

    You probably cut our repair time down to a quarter of what it would have been or better.

    Exactly what we were looking for.


    You're welcome . :smileyhappy:

     

    I am glad to hear that .

    Please use plain text.