Squirltech Posted November 27, 2017 Share Posted November 27, 2017 Howdy everyone! Hope everybody had a nice holiday weekend and that everyone is doing well. I'm needing some assistance with figuring out the best way to achieve the end result for a technician here in our office. Here's the thing, we do elevation certifications for landfills and we have to label the "cover", "clay" and "subgrade" then show the difference between the cover and clay and the difference between the clay and subgrade. At this point, it is all hand entered information at each location (100s per area). The previous technician (no longer employed here) was using a block with attributes and hand entering the elevations then doing the math manually. The question is, is there a way to do the math auto-magically? I'm not sure there's a way around hand entering, at least part of, the information required. I've attached a drawing of the existing block with attributes for reference. Any help is greatly appreciated! ElevCert_DynBlk.dwg Quote Link to comment Share on other sites More sharing options...
Squirltech Posted November 27, 2017 Author Share Posted November 27, 2017 Ok...so I've figured out how to do the math auto-magically BUT I've heard of a way to "insert a REGEN" into the field so the values populate. Am I misunderstanding the phrase "insert a REGEN"? If that's just a way of saying, REGEN your drawing, then I've got this. Otherwise, please explain. Also, if anyone has a better way of doing this overall step, I'm all ears.....well, and feet. Quote Link to comment Share on other sites More sharing options...
Dana W Posted November 27, 2017 Share Posted November 27, 2017 The command you may be looking for is ATTSYNC. The block needs to be selected and then the command issued. You may need some code, and I don't know how to do that. Quote Link to comment Share on other sites More sharing options...
BIGAL Posted November 28, 2017 Share Posted November 28, 2017 You have not mentioned how you get the 3 values to start with. Ok my $0.05 I have 3 surfaces drop a point on each surface ie 3points it auto assigns a Z a function of CIV3d, just get each points detail as you make the point 3 z's so just fill in your block now placed at the point with the correct z1-z2 z2-z3 etc Post a dwg with some more actual detail ie some z stuff to get a better idea of what your actually doing. Quote Link to comment Share on other sites More sharing options...
CyberAngel Posted November 28, 2017 Share Posted November 28, 2017 With Civil3D and some data you should be able to build three surfaces, as Big Al says. There is a surface property that lets you define a grid with X and Y for each component. You can then create two volume surfaces to calculate the differences for each grid component (I assume that's what the blocks are for). You can print the grid with a volume label in each component. QED I guess. Make sure you set your compaction adjustment to zero (unless there's a value you're supposed to use). Quote Link to comment Share on other sites More sharing options...
Squirltech Posted November 28, 2017 Author Share Posted November 28, 2017 The three elevations on the left are hand entered based on the existing conditions (SG), elevations collected on the clay added to bury the trash (CLAY), and dirt cover to bury it all (Cover) based on design elevations. There is only a single surface and the multiple surfaces are adding a lot more difficulty than what I'm looking for. In short, I want a dynamic block that takes the three hand entered elevations and does the math automatically (with a regen) to populate the two "numbers" on the right. Using MTEXT and FIELDS I can get it to work but the moment I make it a block with attributes, the math and formulas don't work. Quote Link to comment Share on other sites More sharing options...
BIGAL Posted November 29, 2017 Share Posted November 29, 2017 If hand entered then the proceedure is enter Z1 enter Z2 Enter z3 H1= z2-z1 h2 = z3-z2 insert block pt 1 1 0 h1 h2 Just do the maths and create the block as you type in the values it does not make sense to type in the values then do some maths on the result (defun c:elevblk ( / val1 val2 val3 h1 h2) (if (not ah:getval3)(load "getvals3")) (setq val1 "1") ; dummy line to start (while (/= val1 "0.0") (ah:getval3 "Enter 1st Z value" 5 4 "0.0" "Enter 2nd Z value"5 4 "0.0" "Enter 3rd Z value" 5 4 "0.0") (setq h1 (- (atof val2) (atof val1))) (setq h2 (- (atof val3) (atof val2))) (if (/= val1 "0.0") (progn (setq pt (getpoint "\nPick insertion pt")) (command "-insert" "CERT-ELEV" pt 1 1 45 (atof val1) (atof val2) (atof val3) h1 h2) ) ) ) ) GETVALS3.lsp Quote Link to comment Share on other sites More sharing options...
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.