hi
can anyone here help write a lisp routine that can be run project wide to hide/show attributes . The user must be given an option to select an object , write or select attribute name and also select multiple drawings from the project.
I have a code that updates the attribute value , attaching that - Please help change that to hide/show attributes
Solved! Go to Solution.
Solved by sukhmeeth. Go to Solution.
Solved by vladop. Go to Solution.
Solved by vladop. Go to Solution.
Attached file might be helpful.
Please read this post:
Re: Script AEHIDEATT - Autodesk Community - AutoCAD Electrical
Regards,
Vladimir
Visibility is controlled by the first bit of the group code 70.
In attached LISP file this group code is stored in xx variable: (setq xx (cdr (assoc 70 ed))).
This is description of all four bits, but I think you are not interested in other three (2, 4 and 8):
1 = Attribute is invisible (does not appear)
2 = This is a constant attribute
4 = Verification is required on input of this attribute
8 = Attribute is preset (no prompt during insertion)
Some examples (bit 1 which controls visibility is marked red):
Group code=9. Binary it is 1001
Attribute is invisible (bit1=1), Not constant (bit2=0), Verification not required (bit3=0), Preset(bit4=1)
Group code=12. Binary it is 1100
Attribute is visible (bit1=0), Not constant (bit2=0), Verification is required (bit3=1), Preset(bit4=1)
Group code=3. Binary it is 0011
Attribute is invisible (bit1=1), Constant (bit2=1), Verification not required (bit3=0), Not preset(bit4=0)
Group code=1. Binary it is 0001
Attribute is invisible (bit1=1), Not constant (bit2=0), Verification not required (bit3=0), Not preset(bit4=0)
If (= (logand xx 1) 0) expression IS TRUE than the first bit is eqaul to 0 (that means that attribute is visible).
To make it invisible use (1+ xx) expression. This expression only increments first bit without changing other bits.
If you want to make it visible than do the opposite:
If (= (logand xx 1) 0) expression IS NOT TRUE than the first bit is eqaul to 1 (that means that attribute is invisible)
To make it visible use (1- xx) expression. This expression only decrements first bit without changing other bits.
Regards,
Vladimir
Can't find what you're looking for? Ask the community or share your knowledge.