CIVIL 3D 2018 LINE LABEL ROUNDING

CIVIL 3D 2018 LINE LABEL ROUNDING

Anonymous
Not applicable
3,521 Views
13 Replies
Message 1 of 14

CIVIL 3D 2018 LINE LABEL ROUNDING

Anonymous
Not applicable

Hello, first post here so I hope this is the right area.

 

This is a problem that I have experienced for some time and none of my peers in a surveying company 150 people strong know how to fix.

 

I have brought in line work done by another company, I am using this line work to create a replat of their same subdivision. The line work comes in fine, same units, no coordinate zone setup or any scaling issues possible. Civil 3D incorrectly labels the bearings and distances. Let me show you:

 

In this case the record plat shows the line to have a distance of 338.89'. When I label the line it comes to 338.88'. If I dimension this line and bring the precision to the ten thousandths place you can see that the line is precisely 338.8850' long, however, Civil 3D does not round that up to 338.89' which can be seen also in the properties of the line. I do not want to and will not label a line to the thousandths place.

 

Civil 3D Rounding Issue.PNG

 

My question is how can I get Autocad to Round any distance's hundredths by the thousands digit?

 

This also happens with bearings, they will be 1 second off because there is a decimal second throwing it off. In this case how can I get the program to round the seconds based on tenths of a second?

 

Any Help would be so appreciated by many people here in the Denver Surveying Community.

0 Likes
Accepted solutions (1)
3,522 Views
13 Replies
Replies (13)
Message 2 of 14

Anonymous
Not applicable

Also, I know that I can select certain line tags and simply ask them to round up, but that would be very time consuming on this large of a plat. Also, I have line tags as well which you cannot round up in the first place. Having said this, I really just need a way to force any properties or labels in autocad to round based on the thousandths place.

0 Likes
Message 3 of 14

WarrenGeissler
Advisor
Advisor

This is how Civil 3D does rounding:

Round Normal: If the last displayable digit is even, and the next digit is exactly 5, the program rounds down. If the last displayable digit is odd, and the next digit is exactly 5, the program rounds up. An input value of 100.12345 with precision of 4 would be displayed as 100.1234.

If the next digit after the last displayable digit is greater than 5, the program rounds up. If the next digit after the last displayable digit is less than 5, the program rounds down.

 

In order to get an flat 5 to round up all the time, you will need to use expressions.


Warren Geissler
Drafting Manager Denver Water
_____________________________________________

Please ACCEPT AS SOLUTON if this works
(...and doesn't melt your computer or cause Armageddon)

Message 4 of 14

Jowennl
Advisor
Advisor

Hi Kwalker,

 

I agree with Warren's comment that is how Civil 3D calculates rounding and you might want to consider expression.

 

I saw similar topic about Civil 3D rounding few days ago and Garrett, Brian and Chris talks about it and I think it is worth your time reading them as they explain rounding really well. See this <Thread Link>

 

Hope it gives more clarity.

 

Cheers,

Jowenn

Message 5 of 14

MMcCall402
Mentor
Mentor

338.8850000000 rounds to 338.88

 

338.8850000001 rounds to 338.89

 

So, if the next digit beyond the precision is a 5 followed by 0s, it rounds down.

Mark Mccall 
CAD Mangler


EESignature


VHB - Engineering, Inc.

Message 6 of 14

Anonymous
Not applicable

Thanks for the explanantion. Do you know of a place where I can find such an expression? Also can an expression help with line and curve tags? There is no option to round tags in general so I am not sure that will work.

0 Likes
Message 7 of 14

BrianHailey
Mentor
Mentor
Accepted solution

Hi and welcome to the forums! We're just up the interstate from Denver in Thornton.

 

First off, if you always round where the last digit goes up, you will compound errors more than if you round the way Civil 3D rounds. The reason is, 5 is exactly half way between 0 and 10. It's not slightly closer to one or the other so technically, it can round either directly. To minimize rounding errors, half the time this situation should round up and the other half, it should round down. When the value after the place being rounded to is exactly 5, Civil 3D will round to the nearest even number. 100.225 will round to 100.22 and 100.215 will also round to 100.22. This attempts to round half the time up and half the time down.

 

My recommendation, do it correctly and don't always round 5 up.

 

With that out of the way, if you still decide that you must always round 5 up, here's how you can do it.

 

 

 

The expression isn't too difficult. Basically, you would check to see if the truncated value of the length (I'll use length as an example but it should work for any value), is the same as the actual value. If it is, then add a small value to the original value, if not, leave it as is.

 

Basically, the expression would do this (assuming the display of the label is out to the 100th place):

  • Multiple the value by 1000
  • Truncate the value 
  • Compare this value to the original value multiplied by 1000
  • If they are the same, add 0.001 to the original value
  • If they are different, just return the original value

For an original value of 100.765000, Civil 3D will round this to 100.76 (which is not what you want). If the value is 100.765001, it will round to 100.77, which is what you want. If the value is 100.764999, it will round to 100.76, which again is what you want. Let's walk all three of these through the expression:

 

  • 100.765000*1000=100765.000         100.765001*1000=100765.001       100.764999*1000=100764.999
  • 100765                                               100765                                             100764
  • 100765=100.765000*1000                100765100.765001*1000              100764100.764999*1000
  • 100.765000+0.001=100.766000
  •                                                             100.765001                                      100.764999

Round each value to the nearest 100th

  • 100.77                                                  100.77                                             100.76

 

The expression (so you can copy paste) goes something like this: 

IF(TRUNC({General Segment Length}*1000)={General Segment Length}*1000,{General Segment Length}+0.001,{General Segment Length})

 

image.png

 

And here it is being used in a drawing.

 

image.png

 

Since we are local, if you need any additional help, feel free to reach out to us here at CAD-1. Just message me here or shoot me an e-mail. I have a gmail account that starts with C3Dplus...

Brian J. Hailey, P.E.



GEI Consultants
My Civil 3D Blog

Message 8 of 14

BrianHailey
Mentor
Mentor

As for the table, if you create the expression for a parcel segment instead of a line segment, the expression will show up when you edit a parcel line table.

 

image.png

Brian J. Hailey, P.E.



GEI Consultants
My Civil 3D Blog

0 Likes
Message 9 of 14

BrianHailey
Mentor
Mentor

@MMcCall402 wrote:

338.8850000000 rounds to 338.88

 

338.8850000001 rounds to 338.89

 

So, if the next digit beyond the precision is a 5 followed by 0s, it rounds down.


No, both 338.885 and 338.875 will round to 338.88. if the next digit beyond the precision is a 5 followed by 0s, it rounds to the nearest even number.

Brian J. Hailey, P.E.



GEI Consultants
My Civil 3D Blog

0 Likes
Message 10 of 14

Anonymous
Not applicable

It's funny that you responded Brian, I work for a company that has a contract with Cad-1 (Aztec Consultants) and didn't even realize it. I was told early this morning to give them a call and ask for you. 

Message 11 of 14

rl_jackson
Mentor
Mentor

@Anonymous

 

While @BrianHailey expression will fix you issue the truth is its always going to happen when doing a Land Survey and you run a meets and bounds description. That includes a lot that you may have created. The error you getting is from someone just forcing a boundary closed, Its just the nature of the beast.

 

Now if you want a solution that really works and removes the error you getting. Turn the boundary into a Polyline, Import it into the Coordinate Geometry Editor, set the POB and Closing Point to match coordinates, and use a Crandall Rule adjustment.

 

Your done there no more issues unless the closure is a large error, in which case that most likely why your surveying it to begin with.


Rick Jackson
Survey CAD Technician VI

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 12 of 14

MMcCall402
Mentor
Mentor

Revision:

 

If the next digit beyond the precision is a 5 followed by 0s, and the last digit in the precision is even, it rounds down.

 

If the next digit beyond the precision is a 5 followed by 0s, and the last digit in the precision is odd, it rounds up.

Mark Mccall 
CAD Mangler


EESignature


VHB - Engineering, Inc.

Message 13 of 14

dabramaitysRSA
Observer
Observer

I understand the concept but Civil3d 2018 is not performing as described.

I have a line that is 296.03500001 and the line label shows 296.03'

I have another line that is 426.43500000 and the label shows 426.43'

 

in both cases Civil3d should have rounded up but it did not.

any thoughts?

0 Likes
Message 14 of 14

dabramaitysRSA
Observer
Observer

ambient settings for distance, dimension and coordinate all set to Rounding Normal.

FYI

0 Likes