Hi, so here's my problem, i have lots of points taken on the field that represent portions of lands where we had to fill with top soil. I need the area of those portions in square meters. My problem is that i can't use survey figure or parcels because it gives me a 2d surface area... and i need the 3d surface area.. there's not a lot of difference between one protion... but i have like over a hundred little patches.
Is there a way to get those area quick and easy without having to build one surface for each of them and going to the stats screen ?
Thank you
Solved! Go to Solution.
Solved by tcorey. Go to Solution.
I have no Civil, but...
If you create a big C3D surface passing thru the points, then you explode it, you'd get a bunch of 3D faces.
And every single 3D face could be querable with the _Area command.
Anyone can check this technique out..?
How would i do that ? I've create a big surface using my points and without a lot of editing, i can't get the right boundaries for each portion of land.
If they are surfaces, both 2D and 3D areas are a part of the statistics from the surface properties.
I've include the drawing.
Thank you
I do know about the 3d area of a surface, what i want to do is get the surface area of multiple portions of a survey without having to create a surface for each and one of them... In the pictures red circles are some of those area i need... i used to get them in simple 2d area with a survey figures or a pline around them, but we recently had some difference with one of our sub contractor on a project with big slopes.
Thank you
Sorry for the english... not my first language
Monsieur,
as just said, I've not Civil, so please share with us the TEXT file, merci beaucoup.
ohhh sorry ! i don't know if you will be able to understand how parts are seperate due to the fact that my surveyor didn't use codes to process lineworks. Anyway here it is !
Danny.Gaudet wrote:
my surveyor didn't use codes to process lineworks
Well, seems like he did use them, I mean the D part of your PNEZD list: ask him which ones are the ground points, thx.
Oh those are juste codes... the PLL ones are for the grass and the ENT ones are private driveway... both must be calculate separately. What i meant by linework was codes like b, end or c to determine start end and the shape of each idividual portions. In civil 3d those codes draw survey figures based on those codes. We skip a lot of point connecting and editing this way.
Danny,
Your english is fine. I understood exactly what you're looking for.
The following LISP code will do what you ask. For each polyline area you pick, one at a time, it will bring up a dialog with the 3d surface area within that polyline. You can copy them down or take screenshots or whatever. If you need the data attached to the polyline or a piece of text added, I could probably add that pretty easily when I get more time. Let me know what else you want this to do.
Best regards,
Tim
;copyright (c)2014 by Timothy Corey
;Delta Engineering Systems, Redding, CA
;Autodesk Authorized Value-Added Reseller
;permission is hereby granted for free use of this program as-is
;This program or any portion may not be sold or combined with any
;for-sale software.
;It is the responsibility of the user to debug the software
;to determine its usability and accuracy.
(defun c:go (/ cosn surf vsurf bdy vbdy what surf2 bdys answer ) (vl-load-com) (setq cosn (getvar "OSMODE")) ;get surface object (setq surf (car (entsel "\nSelect surface: ")) vsurf (vlax-ename->vla-object surf) ) (setq bdy (car (entsel "\nSelect sub-boundary polyline for 3d surface area calculation: "))) (setq vbdy (vlax-ename->vla-object bdy)) (while (and bdy) (if (or (= (cdr (assoc 0 (entget bdy))) "LWPOLYLINE")(= (cdr (assoc 0 (entget bdy))) "POLYLINE")) (get3darea) (setq what (getstring "\nBoundary object must be polyline, press any key to continue: ")) ) (setq bdy (car (entsel "\nSelect sub-boundary polyline for 3d surface area calculation: "))) (setq vbdy (vlax-ename->vla-object bdy)) ) (setvar "OSMODE" cosn) (princ) ) ;end defun go (defun get3darea() (setq Surf2 (vlax-invoke-method vsurf 'copy )) (setq bdys (vlax-get-property surf2 'boundaries)) (vlax-invoke-method bdys 'add vbdy "NewBdy" 4 T 1.0) (vlax-invoke-method surf2 'rebuild) (setq stats (vlax-get-property Surf2 'Statistics)) (setq Answer (strcat "3d surface area inside this polyline is: " (rtos (vlax-get-property stats 'area3d) 2 2))) (vlax-invoke-method Surf2 'delete) (alert answer) (princ) )
Well thank you Tim !
I will try this a the office tomorrow morning and i will give you feedback on the results.
Thanks again
In the attached file, here's your .CSV converted in a Delaunay 3D mesh (made by Map2006, no matter of codes).
Unfortunately, neither the AREA nor the LIST commands work on 3Dfaces, but maybe someone will have a trick for that...
Hi Tim, your LISP code is exactly what i needed.
Do you think that adding a label of the area or maybe something like the add option in the original area command would be possible? It really works fine right now but i'd like to be able to know that i didn't miss any area. That way the risk of errors would be almost eliminated while greatly reducing calculation times !
Still it really does the trick and i really appreciate your help.
Thank you.
Thank you for trying Antonio, really appreciate it !
Another situation where having the surface stats available in labels would be incredibly useful.
Need a star to wish upon...
John Mayo
Can't find what you're looking for? Ask the community or share your knowledge.