Sunday, June 28, 2009

Chilis Bring Back Ribs to the Kids Menu

This post is for my four year old daughter who is disappointed that the ribs have been taken off the kids menu at Chilis. In the past  when ever she goes to Chilis she asks for the ribs from the kids menu. Whenever we are deciding on where to go and Chilis is mentioned she brings up the ribs as a reason to select Chilis. She’s even taken money out of her piggy bank so she can convince us she really wants to go to Chilis for the ribs. Tonight we visited Chilis and found that the menu item has been removed from the kids menu and she was really disappointed.

If you know anyone who works at Chilis please convey my daughter’s wish that the ribs be added back to the kids menu.

Thank you.

Surface Subgrade Surface – Finished

The Surface Subgrade Surface has been finished, you can download the finished product here:

Here’s a brief video of the final product:

Thursday, June 25, 2009

Civil 3D 2009 Hotfix

It's been 1,324 days since the last Civil 3D specific Hotfix and today one is finally available. The hotfix fixes the following:

"After installation of AutoCAD Civil 3D/Civil 2009 Update 2.1, if you open a
drawing which contains materials displayed in section views, some of the materials may not display correctly and may not be included in the volume calculations. This Hotfix will resolve the display of materials in section views, and will correctly calculate the material volumes."
The hotfix may be found here:

Hopefully this will be a sign of the times and more issues that pop up will be fixed with hotfixes instead of waiting for service packs to come out.

The last Civil 3D specific hotfix was Autodesk Civil 3D 2006 Hotfix 2 released on November 9, 2005.

Wednesday, June 24, 2009

Adjust Structure Sump Depth

For some reason Civil 3D occasionally sets the structure sump depth to something other than 0. I don’t come across many structures that have a sump depth of something other than 0, but I find Civil 3D sets it to 2’. Unfortunately I usually catch the wrong sump depth after I’ve placed numerous structures.

Instead of going through each structure and changing the properties or applying rules I’ve written this short VBA macro to quicken the process. I’ve started with the pipe sample that comes with Civil 3D located here:

C:\Program Files (x86)\AutoCAD Civil 3D 2010\Sample\Civil 3D API\COM\Vba\Pipe\PipeSample.dvb

I’ve deleted all of the items I don’t need from the sample. Next I added a prompt for the user to select a sump depth and then another line to set the sump depth. The complete code is below.


There may be a need for some for some error catching, the link below has the completed code set up for Civil 3D 2010:

Sunday, June 21, 2009

Surface Subgrade Creator – Fixes

Below is a video of the surface created using the code as it is now. You can tell from the subgrade surface created that the subgrade doesn’t have a crisp boundary and additional TIN lines along the boundary are needed to show it crisply. (Press link to view video)

To fix this I’m going to move the creation of the subgrade surface to after the polylines are selected. This way I can add hide boundaries to the subgrade surface. This should allow a crisper boundary. Unfortunately it’s not a easy as it sounds. To this I had to add a Function to offset the polyline. First I passed the Handle and area of the polyline to the new Function. I then converted the Handle to an ObjectID, then used the ObjectID to get the polyline. To get the offset of the polyline I had to use the curves and offset the polyline. Not I’m not quite sure where the Curves comes in, but it allows you to do various operations on various objects.

I then have to see if the polyline was offset the correct direction. I choose to check by seeing if the area of the offseted polyline is larger than the original polyline. If it was then I created the polyline in ModelSpace and passed the ObjectID.


I then added code to add the offset polyline to the “FGSurface Subgrade” surface as hide boundaries.


So now running the code creates nice crisp edges, although because I used Hide boundaries I have gaps with not surface information. If I wanted the area filled I should change it from a polyline boundary to a 3DPolyline breakline, which should give the same result. (Press link to view video)

I get a fatal error when Civil 3D closes, so I need to fix that and add some more error catching to get the routine to work better.

Saturday, June 20, 2009

Surface Subgrade Creator – Steps 10 & 11 & 12

This post will cover the last three steps in the surface subgrade creator. Step 10 checks to see if a “FGSurface Subgrade” exists in the drawing. If it does then the “FGSurface-Type” is pasted into it. If it doesn’t exist then Step 11 is needed and the surface is created and the "FGSurface” and “FGSurface-Type” is pasted into it.


Step 11:


The last step is to end the command.


Well the last step is to make sure that the program works as required, and I’ll do that in the next post.

Friday, June 19, 2009

Surface Subgrade Creator – Steps 8 & 9

For steps 8 and 9 the polylines that were selected will be added as boundaries to the subgrade surfaces. The first polyline will be added as an Outer Boundary and the remaining boundaries will be added as Show boundaries. All of the boundaries will Trim the triangles. To use the polylines as boundaries they need to be converted to general AcadEntity objects.


In the next post I’ll add this surface to SubgradeSurface the user chooses or let the user create a surface.

Thursday, June 18, 2009

Surface Subgrade Creator – Steps 6 & 7

Steps 6 and 7 are pretty quick so I’ve combined them into one post. To paste the FG surface into the subgrade surface just use the PasteSurface Method.


Next I’ll move the surface down the required distance. I’ll use the negative distance since I prompted the user for the subgrade depth.


In the next post I’ll add the polylines to the surface as boundaries.

Wednesday, June 17, 2009

Surface Subgrade Creator – Step 5

Nearly half way done with this Surface Subgrade Creator program. Step five in this series is to create the subgrade surface. To create a surface I need to collect a bunch of information and stuff it in an AECCTINCreationData object. This will be the information used to create the surface.

For the layer names I’m going to use the Default Object layers for the TIN Surface Layer. For the surface style I’m using the first one in the list. If you have a particular name of a style that you want, this would be the place to change it.


So now all of the pieces are available we can put the pieces together in future steps.

Tuesday, June 16, 2009

Surface Subgrade Creator – Step 4

In this post I’ll do the fourth step of prompting the user for the subgrade depth. This depth will be used later on to lower the subgrade surface a set amount. Since the user may want to lower the surface an amount that isn’t a whole integer, I’m going to use GetDouble. Since I want a subgrade surface different than the finish grade surface I won’t allow a zero value or no value. The code to prompt the user is below.


I used ft or m in the prompt to let the code work for either a metric or English units.

Monday, June 15, 2009

Surface Subgrade Creator – Step 3

In this post I’ll do step 3, prompting the user for the type of subgrade. This will be string value and will be used to name the subgrade surface. For this first version I won’t be allowing spaces. Mainly because I’m at a repair shop for my car and without internet access to convert the C.Net code to vb.NET that I do have access to which shows how to allow spaces.


Sunday, June 14, 2009

Surface Subgrade Creator – Step 2

In the last post a finish grade surface was selected. In this post I’ll do step 2 which is to select the polylines to be used to outline the areas for the subgrade to be applied to. To do this post I downloaded the ObjectARX code available the Autodesk website. The ObjectARX has some examples on how to select objects. The sample code I used is located at C:\ObjectARX 2010\samples\dotNet\SelectionSet\SelectionSet.vbproj. I copied the filter selection set example and modified it to meet my needs. As in the previous post I put the code in the Utilities class in case I have to use it for another feature.


Now in the SurfaceSubgrade class I’ll call the GetPolylines function to have the user select the polylines. At this point I added some code to make sure it worked. Once I need to use the polylines I’ll remove that portion of code.


In the next post I’ll do step 3 and have the user define the subgrade type.

Saturday, June 13, 2009

Surface Subgrade Creator – Step 1

As discussed in the previous post, the first step is to select a FG surface. I figure I’m going to have to select an object more then once, so I’m going to create a new class called Utilities. This way when I need to select an object I can just reuse the code. I’m also going to create a class to hold the program in the Civil3DReminders pack named SurfaceSubgrade.


In the utilities class I’m going to copy the code from the ToggleTIN and remove the portions I don’t need and make the select surface more general. It also needs to be able to pass information back and forth. In this case the prompt that should be used and returning the ObjectId of the object selected.


For the SurfaceSubgrade I’m using the code from the ToggleTIN code in the Civil3DReminders pack. I removed the part where the user selects the object and replaced it with a call to the Utilities Class.


That’s all the time I have right now. Next time I’ll cover step 2.

Thursday, June 11, 2009

Surface Subgrade Creator Part I

Occasionally I build surfaces for projects. To get somewhat accurate earthwork numbers you have to account for the material that makes up the sidewalk, pavement and topsoil (ie. the material that usually comes from offsite). To do this I usually create a subgrade surface or datum surface. This is usually labor intensive and I’ve been thinking about automating it. This will be the first in a series of posts of creating a program that does goes through my thought process and steps in creating it.

The first thing I have to decide is how to accomplish it. I’ve thought of various ways to accomplish the task, but have decided to go the easy route. I’m thinking the program will do the following steps:

  1. Have the user select the finish grade surface, “FGSurface”.
  2. Have the user select a collection of closed polylines that represent a single type of subgrade.
  3. Prompt the user for the name of the subgrade, “Type”.
  4. Prompt the user for the depth of the subgrade.
  5. Create a surface with the original surface name hyphenated with the subgrade name, “FGSurface-Type”.
  6. Paste the “FGSurface” into the “FGSurface-Type” surface.
  7. Move the “FGSurface-Type” surface down the the required amount.
  8. Add the first polyline as an outer boundary.
  9. Add the remaining polylines as show boundaries.
  10. Prompt the user to select the subgrade surface to paste the “FGSurface-Type” into or let the user create it.
  11. If the user opts to create it a surface named “FGSurface-Subgrade” will be created and the “FGSurface” will be pasted into it.
  12. End the command.

This is going to be version 0.1. Possibly in version 1.0 I’ll add a dialog box so the user can fill in a the information for multiple subgrade surfaces. As time is available I’ll do a post on each of the 11 steps and hopefully in the end I’ll have a working program.

Wednesday, June 10, 2009

Microsoft Word – Templates

Just like in Civil 3D MS Word uses templates to store document information including styles. Once you create the styles you will probably want to add it to the normal template that Word uses as the default document when you open Word. To do this click on the Manage Styles on the Styles fly out.


Pressing Import/Export… button will bring up the Organizer dialog box that will enable you to transfer styles from the current drawing to the template. Just select the styles you want to copy and then press the copy button.


So now when you open a new drawing your new styles will be in the drawing. You can also add the styles to existing drawings by closing the Normal template and choosing a different file. You may need to change the file format on the open dialog box.

Monday, June 08, 2009

Quick Superelevation Post

Subassemblies that may be used. Other subassemblies will also use the superelevation from the Alignment Properties.


Depending on the subassembly used, change the values in the Alignment properties to match the diagram on the plans:


I only showed the left side in the picture above, you’ll need to do it also for the right side. If you have a design speed set up and a superelevation table you can also set the superelevation based on the Caltrans superelevation data. But based on the type of road, I don’t think that would work in this case.

Grade to Target

Grade to Target isn’t an option when creating grading, but we can get the same result by manually drawing the feature lines for the grade to target affect. The first thing we need to do is draw, or extract, a feature line at the location where we want the target to be.


Next we need to draw two feature lines from the feature to the Target Feature Line.


Next we need to create infill in the area of the enclosed feature lines.


So that’s one way to Grade to a Target, it also has the extra benefit of not having to grade perpendicular from the feature, since we can easily move the feature line to what ever angle we want.


Sunday, June 07, 2009

Microsoft Word – Paragraph Spacing

In the a previous post I covered Styles. Sometimes you want lines of text together, such as when you are creating lists. Rather than creating a new style you can use a Shift+Enter, otherwise known as manual line break, to get the list look.


Once added the line spacing is single.


This works only if the spacing in the paragraph style before is set to 0 pt. Any other value and the spacing will be used between the lines.


Tuesday, June 02, 2009

Microsoft Word – Styles

Just like Civil 3D Microsoft Word has styles also. One of the benefits of using Styles in Word is having a uniform look throughout documents. Another benefit is being able to change how text looks like throughout the document in one shot instead of going through the document and having to select all of the text to modify. The screen shot below shows the styles name of the styles used in the document.


The Style Set above is called Modern, and comes with Word. You can easily change the style using the Change Styles button on the Ribbon. In the screenshot below I’m changing the style from Modern to Fancy.


It’s also easy to change the individual styles of the style set using the styles window. In the screen shot below I’m changing the Body Text 2 from double spaced to single spaced.


If I had more than one location, all of the Body Text 2 styles would be changed. Also note that the styles control the spacing between the different types of text. I find this easier than the double return option that I see in lots of Word documents from other sources.


While you are typing and you want the text to be a different style all you need to do is select the style from the Style Window or from the ribbon.


As a bonus you get to see a preview of what the text is going to look like as you hover over the Style in the ribbon.

So please use styles, it not only will improve your work life, but others who have to deal with your unruly formatted documents.


Blog Widget by LinkWithin