Jump to content

Recommended Posts

Posted

I work in road design and the majority of our work is on road overlay and widening schemes. As part of the design we prepare proposed cross sections (see attached image). We usually mark the extent of the existing road on the cross sections which is a very labour intensive job. The exsiting road width varies for eache cross section and we have to read it from a list that was measured on site. I have included an image of one of our cross sections. I am wondering if anyone can help by creating a lisp that will read in a text file, search the dxf for the correct cross section and then draw lines at the correct offset and put in the dimensions as shown on the cross section. Sounds like a big job I know but would help us out a lot and would prove to be a good challenge I'm sure.

 

Thanks....

cross1.jpg

cross.PNG

Existing Road.txt

Posted

Hi Woodman,

 

Im not too sure about the approach you are mantioning, but I do something similar using MX, basically I just create a new model with just the strings that represend the boundary (usually the highway boundary in my case.) Then I construct a vertical wall over every string. This extra model is cut along with the rest of the sections as you have done in your example, but it gives two vertical lines in the section. (We use this purely as an indication of clearence to the Highway boundary), but a similar method could be used to save you a bit of time, unless anyone can think of a better solution?

 

Brin

Posted

I want to set this up for users of vanilla and I don't really have control over how the surveying is carried out so I'm stuck with trying to get something like this to work.

 

Thanks anyway.

Posted

Does anybody have any ideas on how to get this moving....even just to get a start...

Posted

It looks like text file has just 2 numbers at each station, that only defines one point. I assume there would be more data, like station & offsets to define existing ground?

-in the cross-section detail, elevations & offsets are called out only where the proposed section breaks?

-OK reading closer, all you want read from the file is the road width, and offsets from centerline, to be used to draw the blue lines & "existing road" label with arrows?

Posted

I would do the following

 

Pick the CH label and find its ch eg 930 (else make txt file CH 930) then pick road center point. Read the offset values and calculate using polar left and right for the dim command.

 

The reason to pick the c/l point is that looking at your cross sections and having various datums it would be a nightmare to do all in one go automatically. this gives the same vertical spacing then on every cross section dont forget horizontal scaling.

 

I appreciate this is still manual but you would be suprised how quick it will work. Also create your text file as 930 4.256 5.123 ie use a fixed number of characters spacing then you can read the file once into a list and use the substr command to read CH left & right and find match within a loop. (there is also read comma seperated files lisps here search for them)

Posted

Forgot the vertical lines you need an extra couple of picks the bottom line and the surface (as a polyline) as I said before major task to do automatically because of the number of variations.

 

Also are you dims backwards on the example ?

 

I would also investigate further perhaps plotting your cross sections twice with other levels turned on and copying and pasting the vertical lines in one go.

Posted

Bigal, I'm not sure what you mean by plotting the cross sections twice ..... it still won't give me the existing road.

 

If I find the text 930 with a lisp how would i then go about locating the 0 point or cl?? The distance to this from the 930 text will vary from section to section.

Posted

How about a change of tack so....I can generate a list of the chainages and offsets quite quickly from a Lisp that LeeMac wrote for me. Can that text file then be used to create a "charged" offset command that will work down through the list so that I do not need to read the dist from a separate document. When the lisp would start it would pick the first chainage and start the offset command with the first offset distance. Then I would just select the centre line and the side to offset to and it would then load the offset to the right so I could again just select the centre line and the side. And I would go back later and put in the dimensions.

Posted

There is a couple of flaws in what you suggest the offset command would offset the cl and if its lower or higher than the natural surface then the line would not meet nicely hence why I suggested a extend command to make it work perfect.

 

I wrote a lisp like this that trimmed the excess's off cross sections and it was pretty easy just a case of replicating autocad commands.

 

The task your asking if your happy to do a pick pick pick style can be acheived. I would do the dim part first as its easier than the vertical lines.

 

say some like

 

(setq pt1 (getpoint "\nPick c/l point "))

(setq above 5.0) ; this height above c/l for dim ask

 

read left and right offset here from list match picked ch

 

(setq pt2 (polar pt1 right 0.00))

(setq pt3 (polar pt2 left 3.1416))

(setq pt5 (polar pt1 above 1.5708

(command "dim" "hor" pt2 pt3 pt5 "")

 

follow this with the vertical lines drawn short and then use the extend command (you need to pick bottom line at cl to get correct offset starting point but draw lines dont use offset

 

something like

(setq pt6 ("\n select natural surface"))

(command "Extend" "L" "" pt6 "") ;this extends the last line drawn repeat for second vertical line done

 

Just set a loop going use "repeat" say with limit set to 50 pick cross section do again etc then just crash out press ESC or Break key do the fancy end later.

 

This would be a good starting point for learning lisp

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...