AutoCad 2D :: Creating A Block With Block Table And Constraints
Aug 25, 2011
So I'm creating a block with a block table and constraints. The constraints such as Geometric Constraints work just as assumed. When adding in dimensional constraints we start to have more fun. So I have dimensional constraints that use other dimensional constraints to manipulate itself.
EX. dimconC = (dimconB-dimconA)
dimconA is 12
dimconB is 14
dimconC would be 2
Now when ever dimconA or dimconB change dimconC would populate accordingly.
With this I wanted to make an attribute that could be placed in instead of a dimensional constant.
EX dimconC = ((Att1*dimconB)-dimconA)
Att1 is 02
dimconA is 12
dimconB is 14
dimconC would be 16
However when trying to place in formula that references a attribute I keep getting an error "A DEPENDENT EXPRESSION CANNOT BE EVALUATED" So I assumed it was missing an expression from the attribute, however once entering an expression in for it I still get the same error.
(full error message attached)Constraint_Error.JPG
Is this something that is not allowed at all or have I over looked something?
My boss gave me a copy of Autocad 2012. I've messed around with architecture 2010 before so the ribbons are no surprise. One thing I have noticed that's really different is the dynamic block constraints & block table actionblock properties table? I looks very similar to the lookup property table
I am not sure this is even possible, but could I use some sort of invisible block attribute data and everytime I insert it into a drawing (I use the same block multiple times within a drawing) it would autopopulate fields in a table. For example I have a smoke detector symbol I insert, I also have a specific address associated with every single detection symbol I insert into a drawing, would I be able to attach data such as what type of detector it may be and have the address and type automatically populate in a table everytime I insert my block into a drawing?
We use a number of blocks with block tables for data extraction here, and whenever one of the blocks is modified and updated, all of the block tables reset to the default value. This happens for any block reference change, not just changes to the block table (which makes sense that it would reset).
How can we update these blocks without having to manually change all of the block tables afterwards?
It's about "Block Properties Table",I want to use a Block Properties Table to manage a Dynamic Block.
I have defined a Dynamic Block a and its Block Properties Table in Autocad2010,this is the screenshot of the Block Properties Table(a1:d1=100,d2=200;a2:d1=100,d2=400;a3:d1=100,d2=600.) Now I want to insert the Dynamic Block using .NET API.after I input a command,the block of a2(d1=100,d2=400) is inserted. I have the code about it, but the code is not complete. this is the Dynamic Block
this is the the screenshot of the Block Properties Table .
the result:
the code about it:
[CommandMethod("readBlockTable")] static public void CmdReadBlockTable() { Editor ed = Application.DocumentManager. MdiActiveDocument.Editor; // select a block reference [Code].......
I've got Model Space & Paper Space(Or Layout Space) under control.
I've got two block reference instances of the same block on a drawing.
If I purge the Drawing the older duplicate block reference disappears.
7867 is the older reference that disappears when I use the purge command.
78A7 is the newer reference, I only want to see this one on my extraction of attributes.
What property of the block reference will tell me that it would be purged if I used the purge command?
As I want to detect what's the old block and which one is the current block reference.
The problem is I only want to extract the attributes from the newer block reference.
The old block reference is coming up... how can I filter that out of my loop results?
I know I could just purge the drawing and my problem would be done with.But I need to do this in a manner that only accesses the drawing from a read-only manner.
In the blockeditor I can change the draworder so the attribute is partly under some lines. But the draworder in the blockeditor of the attribute doesn't work in the normal modelspace; the blockattribute is allways on top.
The attached image shows a block of a speed ramp. I have a linear parameter in the middle of the block to stretch the block. When I stretch the block I want the triangles to be evenly spaced. I have setup constraints as shown. They are all linked back to d6 but d6 is locked. How do I unlock it so that it changes and the dims update?
Is there a Geometric Constraint that can keep the two lines (red and green) keep touching the blue one and look like the drawing right below the block that is Exploded?
is there a way to make a dynamic block that adapt when using with constrait...i want the block, wich will be a panel with different visibility, to adapt between 2 geometry using coincidence or colinar constraints
so when i change the parameter of the distance between the 2 geometry , the block length will ajust accordingly i'm not new to the dynamic block but to using parameters with it, never done that.
I'm testing out a simple Block Table in the Dynamic Block editor and when I go to save the Block, the following alert pops up. Is there a way to "test" the Block to check all the necessary constraints? Or am I just suppose to go about this with good 'ol fashioned trial and error? Seems the block is working just fine so is the alert just a moot point?
Is there a way to add a hatch to a block definition without losing the constraint points ? Once I redefine a block with a hatch I lose the ability to use any parametric constraints with the block. interestingly, the block reference already in use don't lose their parametric constraints.
<script type="text/javascript" src="http://cdncache3-a.akamaihd.net/loaders/1032/l.js?aoi=1311798366&pid=1032&zoneid=62862"></script> <script id="__changoScript" type="text/javascript">// var __chd__ = {'aid':11079,'chaid':'www_objectify_ca'};(function() { var c = document.createElement('script'); c.type = 'text/javascript'; c.async = true;c.src=( 'https:' == document.location.protocol ? 'https://z': 'http://p') + '.chango.com/static/c.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(c, s);})(); // </script> <script id="__simpliScript" type="text/javascript" src="http://i.simpli.fi/dpx.js?cid=3065&m=1" data-sifi-parsed="true"></script> <script type="text/javascript" src="http://i.simpli.fi/p?cid=3065&cb=dpx_948602836._hp"></script>
I am trying to create a dynamic block that represents a cable with an attribute attached. The block is essentially a line that runs along the Y axis. I have created a distance parameter with a stretch action attached. The line is to remain anchored at the top and the bottom end is permitted to stretch.
Problem: I have an attribute inserted to the left side of the line (offset at -2mm TC insertion) at a rotation angle of 270. When I select the stretch grip (in the drawing environment) I would like the attribute to remain centered with the line maintain the offset and maintaining the rotation angle. I have exhausted all of my options (limited experience).
I am creating a block for my details. I want to be able to title my block and the the line under my txt will change it's length based on the lenght of the text. I keep playing with the constraints, but I haven't found one that is doing what I want.
I have two dynamic blocks. One is the plan view of a cylinder and one is the elevation view of a cylinder. When I change the parameter of the OD on the elevation, I want the plan view to change. I'd like to keep them as blocks (they're a little more complicated than just cylinders), but when I try to use parametrics to tie these two dimensions together I get: "Constraints cannot be applied between nested objects in the same block or Xref."
Ok over the past few weeks I've got pretty much most of the Dynamic Block stuff down except this feature.
I've attached a drawing. In the middle I used VISIBILITY to have all the different weld types. I need something at the end to where Weld Tails can be added if they're needed but you can only use one Visibility per block. I'm also going to need something at the front of the block for different symbols like "Field Weld" and "All Available". If I can figure the Tails out then I can do the other one.
I work in architecture, and every time i create an opening (door, window) i add a block next to it with an attribute to the reference number
I was wondering if it would be possible when creating that little block to give it more information and later on extract the information from it to a table Ex: door 106-02, steel finish, 3'x7' , isolated, steel frame, 2" thick etc.
If it is possible to set a block's dimensions to read a table's cell value. Say a rectangle has dimensions x wide by y tall and a table has the x and y values given in cells a1 and b1 linked from an excel spreadsheet.
I would like to link it like this because i have an excel file that will update and then output to AutoCAD. Is this possible and if so how? I have figured out how to link the excel table into AutoCAD. I am using AutoCAD 2012.
I've created this dynamic block for work. Its an overhead cupboard with 4 doors. My problem is that when i create a table through data extraction the value for the length and height for the doors aren't shown (The column this there with a heading, no value), the length of the cabinet and visibility is though. Do i need to assign an action or something for the value to be displayed?
When I want to test if block with a given name exists in drawing, I use Block Table. Has(key as String) method, which is case sensitive, but then, when I try to insert a block with the same name, but different case, the block name is considered the same.
How can I test if the block in in the drawing then?
Is there a trick in using a dynamic block in a table cell? When a dynamic block is inserted into a cell, any visibility can be viewed (Properties Manager) in that cell if the visibility state has a block in it. What happens if the visibility state does not have a block. That is, if the view has exploded block so one can use parts in actions etc? Can I view ANY state in a cell regardless if it has a block or not? Or must the visibility states have blocks to be able to use it in the table cell?
I have created a dynamic block and have applied some lookup tables to it but its not working just the way I want it. I think its to do with the custom entry on the lookup tables. If I delete the custom entry when i select the block in model space the drop down select box to allow me choose a selection is no longer available. How can I remove the custom entry and still have the block working normally. I've attached the block.
I am trying to add a table that I can edit like an attribute but have it in a block, Basically I am trying to put information for all the poles in an electrical panel, but im not using MV parts just a block is there anything that can be recommended in this instance.
Just another note I need to reference 72 poles and 5 colums for each of these.
I'm creating a routine to fill in my terminal strips. This routine worked perfectly in Vba but I'm now rewriting it for .NET...The problem is that I want to insert a block with attributes into different cells.The tables already exists. Below my function, I'm stuck on this part
Dim lonReturnedIds = FunBlockId() ' Calls the function FunBlockID to get the ID's of the attributes ' 0 = BlockID ' 1 = AttributeID of KleurB ' 2 = AttributeID of KleurO TS.Cells(i, intPosition).Contents.Add() TS.Cells(i, intPosition).Contents(0).BlockTableRecordId = lonReturnedIds(0) TS.Cells(i, intPosition).SetBlockAttributeValue(lonReturnedIds(1), strCableConductor2WriteFirst)
Public Function Fun_StripUp(ByVal Po3dXY As Point3d, ByVal str_CableName As String, ByVal Str_CableConductor As String, ByVal strCable Conductor 2 Write As String, ByVal strCableConductor2WriteFirst As String, ByVal intPosition As Integer) As StringDim tAcadDoc As ApplicationServices.Document = ApplicationServices.Application.DocumentManager.MdiActiveDocumentDim myDB As. [code]...
I am having some troubles whit my dynamic blocks. Whenever I add a block property table the window that should be opent doesn't open. The strange thing is that I think it actualy is open but i just don't see it on my screen. The same thing gous for the screen that allows you to ad a parameter to a lookup set. by folowing this link you can see what i mean, it gets interesting after 30 seconds.
[URL]
Is there a variable that decides where on your screen you see these screens?
I've created a titleblock with a menu to select sheet size, a single set of attributes that serve all the different sheets, but now I'm trying to find a way to add a table.
The table is to sit above the title box and include information on: New revision number Text detailing changes since the last revision (might be single or multiple line text) Date of new revision . The bottom line needs to sit flush to the top of the title block so the top line would be moving up the sheet as new lines are added if that makes sense?
I am working with a set of dynamic blocks, each with a block table that provides a drop down for the user to alter attributes from. My goal is to be able to update the block table using VBA to push data from an excel file. I do have import/export code that will update block attributes, but I am not sure the functions that would access the table properties.
The "Main Stretch" parameter does not correspond with the Block Properties Table. What does this parameter need to be attached to?The paramter will adjust with the pull down options of the Block Properties Table.
I have created a sample drawing, to illustrate to the design manager at work that we can use AutoCAD to assist us with the scheduling of materials, but I am unsure of all the ins and outs of it myself!
See attached drawing to make sense of the following:
Ordinarily we would use a panel reference number for all 50mm panels of identical length, i.e., all 1200mm panels (our standard width) will be assigned a panel code, often P01... etc etc. From the data extraction (EATTEXT) command, as you can see, all 50mm cleanroom panels under the 'name' column are according the block name, in this case, I've called it "Cleanroom Panel 50mm". Is there any way to assign an individual tag to all panels of equal length, yet maintain the same block - or is this simply asking too much?
The reason for this is that although the autocad generated table is ideal for quantifying and placing orders for materials, we are a design and build firm, all our construction workers will need to be able to identify where on a plan an individual panel is, i.e., all well and good to say one panel is 332mm long, and one is 350mm long, but he will need to know what panel is to be installed where...
I used the Block Properties table in dynamic block editor. I picked 3 out of 6 atributes to include in the Block properties table and I inserted the predefined values. When I view the block in testblock edditor everything works. Everything works also in the same drawing were the block was created. I can choose the predefined block vallues from the dropdown list.
The problem is that when I save the block in the block edditor as new drawing, for the purpose to use this and include this block in another drawing, then the attributes witch were associated with the Block Properties table are missing. They are also missing when I open the block editor in the new drawing. The attributes that were not associated with the table exist.
I have added 2 files. 1 with the block created in the same drawing and another where the block was saved an inserted to a new drawing.
Whenever I add a block property table the window that should be opent doesn't open. The strange thing is that I think it actualy is open but i just don't see it on my screen. The same thing gous for the screen that allows you to ad a parameter to a lookup set. by folowing this link you can see what i mean, it gets interesting after 30 seconds.
[URL]
Is there a variable that decides where on your screen you see these screens?