Jump to content
Squirltech

Best way to achieve

Recommended Posts

Squirltech

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

Share this post


Link to post
Share on other sites
Squirltech

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. ;)

Share this post


Link to post
Share on other sites
Dana W

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.

Share this post


Link to post
Share on other sites
BIGAL

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.

Share this post


Link to post
Share on other sites
CyberAngel

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).

Share this post


Link to post
Share on other sites
Squirltech

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.

Share this post


Link to post
Share on other sites
BIGAL

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×