Author Topic: Offset Existing Surface Profile  (Read 19102 times)

0 Members and 1 Guest are viewing this topic.

Willie

  • Swamp Rat
  • Posts: 958
  • Going nowhere slowly
Offset Existing Surface Profile
« on: September 30, 2009, 09:40:06 PM »
Is it possible to offset an existing surface profile?  I think my method is not the correct way of doing it.
This is what I am doing now.

1.  Explode profile view with the existing surface profile in it.
2.  Copy the explode profile view with the existing profile that I would like to offset.
3.  Undo to get the profile view back.
4.  Paste the copied profile view and explode the blocks.
5.  Create a polyline from exploded profile.
6.  Superimpose the polyline profile unto the profile view and move it to the required height.

My question:
Is there not a better way to offset existing surface profiles is Civil 3D?
Soli Deo Gloria | Qui Audet Adipiscitur
Windows 8  64-bit Enterprise | Civil 3D 2015 and 2016| ArcGIS 10.1
Yogi Berra : "I'd give my right arm to be ambidextrous."

jugglerbri

  • Guest
Re: Offset Existing Surface Profile
« Reply #1 on: September 30, 2009, 11:50:00 PM »
Yup, change the profiles update status to static and move it.  Check out the video.

http://screencast.com/t/SaZ8Kffq


Willie

  • Swamp Rat
  • Posts: 958
  • Going nowhere slowly
Re: Offset Existing Surface Profile
« Reply #2 on: October 01, 2009, 12:20:07 AM »
Cool!!!

Thanks for that!!!
Soli Deo Gloria | Qui Audet Adipiscitur
Windows 8  64-bit Enterprise | Civil 3D 2015 and 2016| ArcGIS 10.1
Yogi Berra : "I'd give my right arm to be ambidextrous."

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #3 on: October 01, 2009, 08:54:45 AM »
Willie,

it think you would be happier with the 'easy way' to offset a(n) existing ground profile
Export the alignment and Profile using XML
Edit the XML file, change the alignment and profile name, and the profile type (LAYOUT)
then reimport and raise or lower at will...

or you can strip out ONLY the profile information from that Exported XML file (save it as TXT), and then use the Create Profile From File option, and then raise or lower the resultant

I do this as I would rather NOT sample my exisitng ground twice, and I do not want one of those resultant profiles to be Static for any purpose.  It would be too easy to forget the need to update the static ones; and then folks would think something was wrong with the data.
« Last Edit: October 01, 2009, 09:10:47 AM by mjfarrell »
Be your Best


Michael Farrell
http://primeservicesglobal.com/

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #4 on: October 01, 2009, 09:22:24 AM »
also Willie, may I ask why you are doing this?

because there is probably another way
Be your Best


Michael Farrell
http://primeservicesglobal.com/

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #5 on: October 01, 2009, 09:51:56 AM »
Yup, change the profiles update status to static and move it.  Check out the video.



What I find interesting is that you accept the DEFECT in the application that will NOT allow the user to define the profile as STATIC at the time it is sampled (created). 
Be your Best


Michael Farrell
http://primeservicesglobal.com/

Willie

  • Swamp Rat
  • Posts: 958
  • Going nowhere slowly
Re: Offset Existing Surface Profile
« Reply #6 on: October 02, 2009, 01:51:16 AM »
also Willie, may I ask why you are doing this?

because there is probably another way

I am dong a widening on a road and the widening is to go between 1.5% and 4.5% below the profile on the edge of the bitumen. The road is in a residential area.

This is what I do.
1.  Create a alignment and profile on the saw joint where the bitumen is going the be cut and the widening is going to start.
2.  Then I create two profiles below the saw joint profile.  One profile is 1.5% lower than the saw joint profile and the other is 4.5% lower.
3.  Then I create a new design profile between the 1.5% and 4.5% profiles.  The idea is to get a smooth kerb line, which is between the 1.5% and 4.5% grades.
4.  My assmebly then targets the new designed profile.
Soli Deo Gloria | Qui Audet Adipiscitur
Windows 8  64-bit Enterprise | Civil 3D 2015 and 2016| ArcGIS 10.1
Yogi Berra : "I'd give my right arm to be ambidextrous."

Willie

  • Swamp Rat
  • Posts: 958
  • Going nowhere slowly
Re: Offset Existing Surface Profile
« Reply #7 on: October 02, 2009, 01:52:37 AM »
Willie,

it think you would be happier with the 'easy way' to offset a(n) existing ground profile
Export the alignment and Profile using XML
Edit the XML file, change the alignment and profile name, and the profile type (LAYOUT)
then reimport and raise or lower at will...

or you can strip out ONLY the profile information from that Exported XML file (save it as TXT), and then use the Create Profile From File option, and then raise or lower the resultant

I do this as I would rather NOT sample my exisitng ground twice, and I do not want one of those resultant profiles to be Static for any purpose.  It would be too easy to forget the need to update the static ones; and then folks would think something was wrong with the data.

Thanks Micheal.  I give it a shot.
Soli Deo Gloria | Qui Audet Adipiscitur
Windows 8  64-bit Enterprise | Civil 3D 2015 and 2016| ArcGIS 10.1
Yogi Berra : "I'd give my right arm to be ambidextrous."

ChristopherF

  • Newt
  • Posts: 55
Re: Offset Existing Surface Profile
« Reply #8 on: October 02, 2009, 02:01:47 AM »
What I find interesting is that you accept the DEFECT in the application that will NOT allow the user to define the profile as STATIC at the time it is sampled (created). 

I find it interesting that people accept training from people who do NOT know all the capabilities of the program.  :-)
Check out the video: http://screencast.com/t/ncSskblnb0LU

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #9 on: October 02, 2009, 09:51:59 AM »
What I find interesting is that you accept the DEFECT in the application that will NOT allow the user to define the profile as STATIC at the time it is sampled (created).  

I find it interesting that people accept training from people who do NOT know all the capabilities of the program.  :-)

Me too.....


I do know it's annoying that you can't Name the surface that is being sampled until after....perhaps that is what I was really hating on...
« Last Edit: October 02, 2009, 10:07:23 AM by mjfarrell »
Be your Best


Michael Farrell
http://primeservicesglobal.com/

butzers09silverado

  • Guest
Re: Offset Existing Surface Profile
« Reply #10 on: November 15, 2012, 01:52:48 PM »
i've attached an xml file, but i can't figure out what part i need, can somebody clip it out this first time so i can figure it out myself next time.  I want to make a profile from a file, i.e. text.  thanks

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #11 on: November 15, 2012, 11:09:09 PM »
way down near the bottom of the XML file you will find the profile data.
take that and place it in space delimited file...
Be your Best


Michael Farrell
http://primeservicesglobal.com/

enderprime

  • Guest
Re: Offset Existing Surface Profile
« Reply #12 on: November 22, 2012, 10:39:23 AM »
i've attached an xml file, but i can't figure out what part i need, can somebody clip it out this first time so i can figure it out myself next time.  I want to make a profile from a file, i.e. text.  thanks

Trying to write a custom command to solve this exact problem is how I stumbled into theswamp.. Without writing code though, the only real option we have is to <create profile from file..> since we can't create one from a polyline (thanks Autodesk). After some trial and error I figured out that the file needs to be *.txt with only 2 columns, station and elevation, separated by a space.

The easiest way to get this data is to run a <sta-elev> or <vPI> report on the profile you want to copy/offset (depending on your C3D version) and then dump it into a text file. Just keep in mind the station-elevation text file used to make the new profile should only include numeric values with no special formatting, so do a <find..replace> on the data you get from the report and remove any [ + ] or [ ' ] characters if needed.

The new profile will be static, and not dynamic, and this is because the new profile is not tied to any surface or other data source. But this is still a decent method because that station-elevation text file can be kicked to another user so he can do the same thing even though he may not have any of the same alignment or surface data in his drawings.

If you want to tackle this problem with code instead and streamline things a bit let me know, I couldn't rest until I solved it with LISP  :kewl:


mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: Offset Existing Surface Profile
« Reply #14 on: November 22, 2012, 01:15:29 PM »
If you want to tackle this problem with code instead and streamline things a bit let me know, I couldn't rest until I solved it with LISP  :kewl:
If you 'solved' this with LISP, why do you not simply post the code for others to use right here?

Although there is a way to use a polyline, if I think about it one would need to draw that profile in a side view,
then use a MAP query to extract the coordinates of the vertices. (this is untested at this time)
Be your Best


Michael Farrell
http://primeservicesglobal.com/

enderprime

  • Guest
Re: Offset Existing Surface Profile
« Reply #15 on: November 22, 2012, 04:16:33 PM »
Unfortunately I wrote it at work so I can't post the code directly I can only point in the right direction.. which is a real shame it's one of the cooler things I've done with CAD.
The basic process for creating a polyline out of a dynamic profile:

  • Get selection of a profile and a profile view from user, convert using (vlax-ename->vla-object)
  • (getreal) offset distance from user, which could be 0 for a direct trace, and if not 0 also (getpoint) for offset side from user
  • Use vlax-get-property and vlax-invoke-method to drill down a few levels into the profile until you find station-elevation properties of sub-entities
  • Use vlax-get-property to get profile view properties such as start station, start elevation, bounding box, and vertical scale
  • Combine data above into formulas that convert station-elevation pairs into a list of (x,y) coordinates
  • Use the calculated (x,y) coordinate list to create a polyline (command .. , entmake, whatever you prefer)
  • Issue native autocad offset command on (entlast)

If we just want an offset polyline then we're done at this point. But my boss also wanted an option to create a new profile instead, so then:
  • Compile a vertex list from the new polyline (dxf group code = 10), and converted these (x, y) back into station-elevation
  • Use (open) and (write-line) to create a local text file
  • Issue the civil 3D command (CreateProfileFromFile)

The hard part is getting to the profile sub-entities, since there is really no documentation on using LISP to interact with civil 3D objects. The Autodesk forums won't even acknowledge your intent unless you are using .net now.. However, you can use (vlax-dump-object) to get all the properties and methods you can access for any object type. From there it's a little bit of blind coding.

enderprime

  • Guest
Re: Offset Existing Surface Profile
« Reply #16 on: August 14, 2013, 02:06:21 PM »