gnurob Posted November 8, 2012 Posted November 8, 2012 AutoCAD 2012 QUESTION: Is it possible to add the value of one ATTDEF to another ATTDEF where the second ATTDEF obtains one value from a BlockPlaceholder? E.g. A dynamic block width Parameter named "Width" = 300 ATTDEF1 named "Pocket" = 25 ATTDEF2 = BlockPlaceholder ("Width" selected) + ATTDEF1 ("Pocket" selected) ATTDEF2 = 325 BACKGROUND: This may seem a little convoluted, so let me explain the application. We currently use a dynamic block of a simple rectangle which is STRETCHed to fit the daylight opening of a curtain wall frame (those aluminum/glass walls on many commercial buildings). By inserting this block into every opening of a building it is possible to visually confirm a complete take off as well as verify all sizes are exact (and many many sizes are typical). Glass sizes, however, differ from the daylight opening. The pockets of the frame differ depending on the specific design: resulting in typically 16 mm, 19 mm , and 25 mm larger glass sizes. On the other hand, some frames use a fin retention and may result in glass sizes being 13 mm smaller, not larger. BEST WORKING SOLUTION: Create a dynamic block of a rectangle that has a "Width" and a "Height" Parameter Place a multi-line ATTDEF centered in the rectangle Insert a Formula in the default value of the ATTDEF Right-click in the Formula to add a BlockPlaceholder for "Width" Set units to decimal with 0 precision (forces Metric) and "+ 25" to Formula add new line, then "x", then another new line Right-click in the Formula to add a BlockPlaceholder for "Height" Set units to decimal with 0 precision (forces Metric) and "+ 25" to Formula As you can see, this results in a result like the following: 325 x 400 WHATS WRONG WITH BEST WORKING SOLUTION: Unfortunately it does not offer flexibility: Dynamic block permanently set to add a 25 mm pocket Requires multiple dynamic blocks for each frame type Forces all units to be Metric IMPROVEMENTS: GOOD: Ask user the pocket size (e.g. -13, 16, 19, or 25 mm) when inserting the block and use that value in the Formula field. BETTER: Allow user to select a pocket size from a list: e.g. Flush Glazed frame: 16 mm Curtain Wall frame: 25 mm Window frame: -13 mm ULTIMATE: BETTER + works in Metric and Imperial Quote
gnurob Posted November 8, 2012 Author Posted November 8, 2012 P.S. Whoever can solve this is officially the ultimate AutoCAD guru IMHO! Quote
gnurob Posted November 13, 2012 Author Posted November 13, 2012 Can I do a better job explaining this, or is it unlikely this is possible? Thanks! Quote
Mike_Taylor Posted November 13, 2012 Posted November 13, 2012 Sorry, missed the thread. Are you wanting the dimensions of both the glass and the frame to show up? Do they have to be in the form of an attribute? The reason I ask is that you can use actual dimension and include those in the stretch parameter. The dimnsion will the update. If you are using an attribute extraction to grab what you are asking to be an attdef this will not work. Also, you are still using ACAD 2008 right? Juts makeing sure I dont come up with something you can't use or make yourself. Quote
gnurob Posted November 14, 2012 Author Posted November 14, 2012 (edited) Thanks for checking this thread out Mike! Only the dimension of the glass is required. The catch is the glass is larger than the frame but only the frame is drawn and available for snap to points. The idea is to place rectangular dynamic blocks into what is referred to as the "daylight opening" and add the additional dimension of the glass residing in the pocket, or nosing. The amount the glass extends beyond the daylight opening varies, therefore a fixed solution such as over-sizing the Length parameter doesn't offer that flexibility. It is also possible to insert a Formula in an attribute and add a fixed value to a block reference to the Length parameter. The challenge is creating a block that can have a variable added/subtracted to the daylight opening without hard coding that amount. The user will define the amount when the block is inserted: attribute ask, drop down, etc. P.S. If a version upgrade is absolutely necessary than its wouldn't be ruled out. Edited November 14, 2012 by gnurob afterthought Quote
Mike_Taylor Posted November 15, 2012 Posted November 15, 2012 If the oversized offset is a list of standard sizes that you use it would be quite simple to have a dimension and stretch that to either side using a lookup paramter (ie have a 25mm lookup that would stretch the dimension to 25mm on all sides). If it is not a list of standared offset I will try and figure out something over lunch. This is not exaclty what you had requested, but if I understand your request correctly this is a viable alternative. Also, I apologize for not responding, but we had some server work done here and my webpage permissions were reset. Quote
gnurob Posted November 15, 2012 Author Posted November 15, 2012 I think I follow what you're saying and you're on to something. It is preferable to enter and exact figure because an exhaustive list is not possible. However, five dimensions are very common. I'll test and post results. Quote
Mike_Taylor Posted November 15, 2012 Posted November 15, 2012 Add 4 linear parameters (one on each end of the dimension) that will stretch the ends of dimensions. Chain all of them together with noe grips except one of them. Make the one with the grip scale the other three paramters themselves. This allows for your dynamic offset. The add a stretch parameter on the rectangle that will stretch the rectangle, the dimensions AND the move the fisrt parameter you had added. This will allow you to adjust the size of your window. Voila exactly what you need. If you want an example ill whip something up sometime today. Quote
Mike_Taylor Posted November 15, 2012 Posted November 15, 2012 Made a quick sample. Didnt work exactly as expected but it will workj with tweakeing Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.