Not quite working in 2011 either, but I will bring these to the lisp forums and see if I can get it perfected. If I can find someone to work on it, I will repost it here.
I'm going to add you as the author to the lisp before I post it for others to work on it.
I posted your lisp in the lisp forums, but not much back. Someone actually posted another lisp that you wrote as well doing nearly the same thing as the previous lisp you attached.
I did however find this thread and took a lisp from Tim Decker (tweaked the name a bit).
With that, I was able to create an Action Macro that pretty much automates the process of getting the points.
So basically, after you extract the triangles of a surface, just copy and paste them into a new drawing by themselves, run the action and use mapclean to clean up the point clusters.
*EDIT - Hmm, seems strange that Autodesk won't allow action files to be included.
after having a look at the rest of the threads discussing "Surface Offset",
and mainly inspired by your approach,
I ended up achieving an offset surface with an acceptable accuracy
(maximum 2cm tolerance in a 1.30m offset for a 65000sq.m. area surface)
with a lot easier workflow,
and specifically avoiding "Solid creation", ""tedious" selection and delete", "Lines to Polylines convsersion", "Points & MAPCLEAN".
Instead, I created "ACAD Surfaces", which I offset, explode to Lines and add to Surface as Drawing Objects.
and it goes like this (step by step optimized workflow):
a. Create a data shortcut of the surface to be offset and create a reference in an empty dwg file
b. apply a "triangles only" style to the surface
c. extract the triangles so as to get 3dfaces in the drawing, and
d. with the surface still selected apply a "no display" style to turn it off completely (no borders, nothing visible)
a. from the 3dfaces make Planar Surfaces using the PLANESURF command
(use a filter in case you have other objects visible, but i would suggest that you leave only the 3dfaces on, as it would make the whole procedure much easier to go through. Should you have created a new dwg file you will not have such problems to deal with)
- type SELECT -> P(revious) to delete the 3dfaces, as they're not needed anymore
b. offset the Surfaces(planar) by the distance desired using the SURFOFFSET command (make sure you offset them at the correct direction as displayed when in an isometric view)
- type SELECT -> P(revious) to delete the Surfaces(planar), as they're not needed anymore too
c. explode the Surfaces so as to get Lines
a. now you may build the new "Offset" surface by adding the lines as Drawing Objects (.
- in order to be able to delete the Lines afterwards, set the "Copy deleted depedent objects" to YES in the SurfaceProperties - Definition tab - Build
- SELECT -> P(revious) to delete the Lines, as they're not needed anymore too
b. check for undesired triangulation & define Boundaries if needed (you may find it wise to create the Polylines to add as boundaries before deleting the Lines)
I tested it first in a surface produced by a grading, and then in a much more complex Surface, an ExistingGround as produced by a topographic survey.
In the latest, my PC (see below for my specs) needed "some" time during the OFFSET, DELETE, and SAVE operations (I saved after each step).
The procedure is very straightforward, and I plan to make a LISP for it, or maybe a simple ActionRecorder macro,
which should be handy for someone using it often or even daily like I do (It's not that you can't do without it though)
but the delay time needed by the processor to complete the commands may be misunderstood as a "freeze", which may not actually be the case... so I'll give it a little bit more time so as to try it some more, gain confidence with it, and perhaps even optimize it as far as it goes.
feel free to comment on it,
thanks to all for the inspiration
I think that the Snap Clustered Nodes in MAPCLEAN is still required to resolve the conflicts at the "triangle vertices" caused by the offsetting
I like your method of doing it. That's what I love (and hate) about Autocad: the numerous ways of doing a task.
If you do create a lisp for it, please post it for us. I've created an action macro using the method I posted, although cleaned up and a bit more efficient than what was posted, but actions don't seem to work on other peoples workstations here at work. I don't know what settings I have set up that allows it to work on mind but not on theirs, but I believe a lisp would allow it to work more smoothly across multiple workstations.
I wish I knew how to write lisp, but my brain and my body shut down while looking at any type of code.
I believe a mapclean does need to be added though like the previous commenter posted. I would have to run the method to be sure though.
I don't know much about MAPCLEAN, so I'll have to look that up, and add it in my "arsenal"
I have noticed big file size and a difficulty in processing the 'offset" surface
Hopefully it shall take care of these matters.
I haven't noticed inaccuracies in the surface itself though but I'll take a closer look again.
and to be honest, I focused more on avoiding/simplifying the "selecting&deleting" procedures.
No worries - the problem is more pronounced the steeper the topography is - perhaps the attached will be clearer...
Assume looking at a section through a landfill cell where the blue represents the formation level and a 1m thick (perpendicular) layer of clay has to be placed over.
The triangular faces are offset and the angle of the slope causes overlapping lines (dashed magenta Lines) which will cause some errors in the final offset TIN surface. Obviously the more irregular and steep the site then the more overlaps there'll be but I've not done any sort of analysis to see what magnitude the error is.
In concave areas there will be minimal overlaps and probably none at all but I do like the method as described though
If I remember correctly. The magnitude of the error depends on the offset. Trying to deal with the gaps and overlaps is one of the things that put a halt to my attempts to solve this. I think in areas where the grade change is small that MapClean would not introduce much error. With a large grade change it would be more pronounced.
The problem is that the solution would be the intersection of the 3D Faces. In convex areas they would have to be extended to intersect and in concave areas the intersection of the planes could be the solution. Not the average of the endpoints.
I've never tried this since the newer AutoCAD commands were available. So I don't know how the SURFOFFSET handles this.