I am trying to determine whether or not the following is a bug:
1. Begin creating a new block using the block editor. 2. Add an object (circle) for reference. 3. Add an attribute with the following properties: Constant, Visible, Value (i.e. "34"), Justify: "Middle-Center." Make the tag 4. Save the block, exit block editor. 5. Insert the block into model space.
At least on my system, the constant attribute always shows up left justified. If I explode the block after inserting it, the constant attribute shows correctly. In addition, the constant attribute seems to be left justified with the TAG label from the block definition itself.
I have a dynamic block with several visibility states, and each visibility state has one invisible-constant attribute. I can't seem to wrap my head around dynamic blocks well enough to get the value from the active visibility state invisible constant attribute. I know how to get the visibility state like this:
Is it possible to create a 'drawing scale' defined attribute inside my title block when brought into paper space? I tried setting it up using 'plotscale' fieldname with various formats and it keeps coming in as 1" = 1' or 1:1 rather than 1" = 20' because that's what my plot scale is inside paper space but my drawing scale is 20 scale. If I bring the title block in model space, it adjusts, but I don't plot from model space. Surely there's a way to make this automated inside paper space.
Also, I just setup a 'Date' attribute inside my title block today. What's the difference between Date, Saved Date and Plot Date? Will 'Date' update if its in a drawing and opened up a month from now and saved or do i need to take 'Date' out and replace with 'Saved Date' or Plot Date'?.
I have a basic floor plan in AutoCAD 2012 that has blocks in specific locations which contain personel data....name, phone, computer tag, desk key numbers, etc. I extracted the data to an Excel spreadsheet and I thought set up a "data link". But I don't know how to make the data update.
My problem...moves of staff, phone, computers are often made, but no one lets me know about it until they want a new floor plan printed and the computer and key tags get so messed up from the moves that it can take me hours to fix.
My goal is to be able to have our secretarial staff update the spreadsheet and in turn update the blocks in my AutoCAD drawing when it is opened and/or "updated".
Is it possible to setup a block so that an attribute position remaines fixed (absolute to drawing) when moving the block?
I've been playing around with creating a Coordinate Block by following these instructions: [URL] ........
What I would like is to be able to set the position of the Coordinate Label and Coordinate Object independently, so that if I move one in the drawing, it doesn't move the other. I've looked into Dynamic Blocks, and the "Lock Position" parameter. I can move the attribute independently, but still everytime I move the block, the attribute moves too.
Our company uses a custom Sheet/Coordinate system to follow flyoffs across a drawing, and I'm trying to learn how to automate the process. It's completely manually right now, so any changes to a drawing creates a lot of work renumbering these flyoffs.
What I really want to do is on our fire alarm blocks we have 3 different attributes one for the address, the candela and one for misc info. I want to make an attribute that takes the number from the candela (15,30,75or 110) and change a different attribute to a value depending on which candela we use (such as 15=.078, 30=.113, 75=.195 or 110=.259). But I don't want the .078,.113,.195,.259 to print out on paper, I want to export block information excel file so I can add up all values.
I need to match few attribute values from one block to different block. I download a lisp file called; ca.lsp which can match the single attribute value. I modified it for more than one attribute value matching. It is ok but still wish to overcome two issues for batch prcess
1. picking up the blocks by selection
2. click the alternative block numbers of times to match the numbers of attribute values I needed.
How to modify this lisp I can run it by block name selections instead of picking selection which enable me to run batch process for numbers of drawing? That will be good...
Lisp & Demo file attached (Match attribute value, A, B & C to Attribute 1, 2 & 3).
I use a block more than 50times in a plan, now a need to udate my attribute (color of text) but i have moving those attributes in function of the position on plan.
Can i use battman to make a update of my blok/attribute...but i need that all attribute stay at the same position on plan?
I would like to create a lisp that does the following:
Update a titleblock attribute with a $variable.
The titleblockname is variable / not static.
The attribute is not variable / Static, DW_SCALE
The titleblock is always places on the same layer, BL$4----
The (custom)-plotscale is stored in the $var "gvpsc".
I've tried to ajust the following lisp code. But I couldn't extract the part I need.
The problem is, the code checks all the layouts and updates all the titlblocks one by one.
Truely a good code.
The only problem is, I don't have multiple layouts and I have a variable titleblock name.
Here is to code i've tried to convert to something I could use.
(defun C:UPD-DPC () (setvar "cmdecho" 0) (setq blkname "DPC-STEMPEL");(getstring " Enter the name of block to update: ")) (setq att1 "DW_DATE");(strcase(getstring " Enter the name of the attribute to change: "))) (setq newatt (strcase(getstring "
I'm trying to find a routine that will look for ABC block and updates its NUM attributes depending on what's shown in the DESC attribute. There are about 5 of these ABC blocks in a drawing. Block ABC has 2 sets of attributes: DESC and NUM.
When run, it will look at the value of tag DESC, if it contains value XXX, then it will change the NUM value to 1111. And if DESC contains value YYY, then it will change the NUM value to 2222.
Is it possible, via whatever methods (lisp?) to be able to have a premade block with an attribute and insert it into a drawing then assign a value to it by selecting another existing block in the drawing and using one of its own attribute’s values?
For example, say I have a block representing a telephone and it had an attribute called "PhoneNo" and I inserted it into a drawing showing an office floor plan that had blocks in each office space that are telephone junction boxes with attributes "PhoneExtension". I would like to be able to autocomplete the entering of the “PhoneNo” data by selecting one of the telephone junction boxes in the drawing and using its attribute’s value.
How I would be able to grab the block constant attribute by searching via tag.
e.g. block has a constant attribute 'Color' with value of 'red' and I wish to attain 'red'
I am currently obtaining non constant attributes using:
Dim attRef As AttributeReference = DirectCast(tr.GetObject(attId, OpenMode.ForRead), AttributeReference)
and grabbing the '.textstring' when looking at the '.tag'
How do I go about this with similar logic but pointing to constant attributes? I have tried searching thoroughly and almost all results for me were in VBA.
We have a client whom insists on 1/8" text and my blocks are all sized for 3/32". What I wanted to do is create two visibility states for the block. One using the 1/8" text and one using the 3/32" and be able to switch between them. I can get the border of the tag to work, but the text doesn't switch sizes.
Is this even possible? Is there a better way to deal with all my tags and needing to have two different versions of them? (Tags such as fixture tags, note tags, etc...)
I have a block with an attribute and need to change the first three characters of each to a different two characters. I recall my instructor once showing me how i could do this easily without having to click on each block to change the attribute.
select all blocks on certain layers in a drawing, check attribute CIRCUIT in each block if it starts with MS then attribute CONTROL = switched. I hope thats clear enough the way
(defun c:control() (graphscr) (Setq sc (ssget "X" '((0 . "INSERT")
I'm trying to build a routine for my job to insert a block which consists of 3 single line variable attributes in a specific order. I need to be able to do this on many different drawings, and I would like to share this ability with my coworkers. Using the DesignCenter is not an option. In order to do this, I saved a drawing which consisted of the three attributes in the layout in which I need them to appear, however the order in which it prompts me to enter them is reversed. I already know how to set the order of attributes in an EXISTING block definition using the BATTMAN command, as every time I run the routine again, I'm redefining the block definition.
I'm not sure if it's important to know this, but the routine consists of a button with the following macro:
I need to create blocks in which the same text appears twice. I've created an invisible attribute to hold the text and created two mtext object containing fields that point to the attribute value.
The text fields show the default value of my attribute but will not change when the attribute is set on an placed instance. After setting the attribute on an instance I've tried UPDATEFIELD and REGEN but still I see the default value.
whenever I make a block with attributed text the block works just fine when I insert it into a drawing like normal. However if I try and open the block drawing by itself the attributed text just turns into normal text after I get this message "Orphan Attdef Objects found & Converted to Text". This problem seems to happen on two of our machines but a third co-workers machine still works fine.
Is it possible to make a single attribute appear in more than one place on a single block? i.e. We have a title block in which we want the drawing number and revision to appear at both the top and the bottom of the page. We want to be able to change the information in the attribute on the bottom of the page and it automatically update the attribute at the top of the page. Is this possible?
I need to make a block with one attribute named SIZE which will be filled in when the block is inserted into the drawing. On this block I would like to display the value for SIZE in 3 additional places besides the attribute SIZE.
So to make a long story short I would like to take 1 attribute and display it 4 times. If I change the attribute I would like for all 4 displays of it to update with the change.
I've tried making the 2nd, 3rd and 4th occurrences attribute with fields pointing to the value of the 1st attribute object but it is not working. How do I go about accomplishing this.
I am trying to create a block with 1 attribute (ELEVATION) showing a finished floor level and another text (field) to show another level derived by the sum of the attribute value + and additional (fixed) number, say 100.
I have tried using fields inside an ATTRIBUTE or a simple DTEXT but the field does not update, it only picks up the DEFAULT of the attribute, not the user entered input. How can I do this?
trying to set up a system for a less advanced user.
basically they donot like the advanced attribute menu when you edit a block with attributes in them.
looking at the varriables the end user likes the Attdia set to 1 when you insert a block it then displays nice clean menu which just has the attributes you can edit.
can this be set so when you later edit a block this menu appear rather than the advance attribute editor?
Is there an easy way to transfer the text inserted in one attribute and copy it over to another attribute in the same block? This is for a titleblock. We are currently using AutoCAD Electrical. We need to do this on over 10,000 drawings so we would like to be able to write a script or lisp routine so we could run a batch across all of the drawings.
How to get attribute values to match in the same block? In my titleblock have the clients name displayed a couple of time in the block. I want to be able to change the clients name in one spot and have it change in the other. I have tried to use fields but the field will only display the default value of the attribute.
How to make an attribute block that contains a dimension?
I’m wondering if there is a way to create an attribute block that contains the particular text and the value of the dimension length. More specifically, in the screenshot below in need to show the steel bars (as an attribute) along with the value of the dimension of the bar such that in case the block is stretched then the value of the dimension length changes. I think the block itself needs to be dynamic.
The issue here is having an attribute for the “steel bar type” and its length. The “steel bar type” must be editable while the length must be written automatically to reflect the length of the bar.
I have a simple block with a single attribute that I am trying to sync. Someone previously created this block, defined it on a named layer with the attribute defined on the same layer with a user font, then inserted it on three different layers. Now, even though I have redefined the block on layer 0, set everything to BYBLOCK, all the attributes are still on those other layers. And when I try to use ATTSYNC, all the values disappear. I don't get it. Isn't ATTSYNC supposed to retain all the values?
How can I get all of these blocks with their attributes and values intact on the same layer?
I have several title blocks each in their own paperspace pages. Could have the attribute filled in, but more than likely only one page will have values filled in the attributes. I am looking for a VL method for finding which pages title block is filled in so that I can get those values and fill in the equivalent attributes for all of the other pages. Currently I am using a long set of :
(IF (setvar "ctab" "8.5x11") (IF(TBLSEARCH "BLOCK" "TB-8.5x11") (IF (/= "" (get-att "OWNER" "TB-8.5x11")) ; Function to read a named attribute(editblk "TB-8.5x11") ; Function to pull up the attdia(IF (setvar "ctab" "11x17") (IF (TBLSEARCH "BLOCK" "TB-11x17") (IF(/= "" (get-att "CUSTNMFIRST" "TB-11x17")) (progn ; At the last page ditch the [Code]..........
The example is just a very simplified version of what I'm doing. I just need to find the information, if it exists in any page and store it for later. Afterward, I'll fill in each page's Title Block with the stored information.
I know that this can be done much more efficiently. As I am currently flipping through the pages too much action is occurring on the screen and it makes some people nervous. With VL I should be able to run the search quietly, but I would still like to (setvar "ctab" "to the page with the filled attribute value") after the LISP is finished storing values.
I've got a block that I want to scale in pspace, but I would like the attrib height to remain constant even at different scales. I have used annotative blocks in vports with much success, but I would like to do the same thing only in pspace.
i have a for example a block with one attribute and would like add a new attribute. i´m trying to read the current block and redefine - it comes a new attribute in propertieswindow but not graphical.