Bài giảng Chuyên đề thiết kế đường trong Civil 3D

PHỤC LỤC KHẮC PHỤC MỘT SỐ LỖI TRONG CIVIL

1. Subassembly Names Disappear on Copy, Move or Mirror

Do your Subassembly names disappear whenever you use the subassembly commands

“Copy to”, “Move to”, or “Mirror”?

After the jump learn how to resolve this issue.

The issue lies with the subassembly naming template. I don’t know if others out there in

blog land knew this but using “<[subassembly local="" name]="">” is no good.Chuyên đề thiết kế đường trong Civil 3D

To fix the issue change your naming template to use “<[macro short="" name]="">” (see below).

The same name is provided but now when you copy, move, or mirror the names don’t

disappear.Chuyên đề thiết kế đường trong Civil 3D

BQT diễn đàn www.kythuatdothi.com Trang 42

2. Magic Corridor Boundary

So you have a corridor surface which needs a boundary. You’re used to using Civil 3D

2009 and you know about the Automatic boundary, say, from the daylight lines.

You also know that the Automatic boundary doesn’t always happen depending on certain

conditions. So you installed Civil 3D 2010 because you heard about this new fantastic

boundary method known as “Corridor extents as outer boundary”. You opened your

corridor properties only to discover that the option isn’t where it’s supposed to be. Follow

the jump to find it.

This option only exists when your corridor has multiple baselines. CRUD! Enter the

workaround.

Just add another baseline to your corridor. That’s it. Don’t add any regions to it, just an

empty baseline. Go back to your boundaries tab and voila, you can add the extents

boundary.

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 1

Trang 1

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 2

Trang 2

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 3

Trang 3

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 4

Trang 4

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 5

Trang 5

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 6

Trang 6

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 7

Trang 7

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 8

Trang 8

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 9

Trang 9

Bài giảng Chuyên đề thiết kế đường trong Civil 3D trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 55 trang xuanhieu 4740
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Chuyên đề thiết kế đường trong Civil 3D", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Chuyên đề thiết kế đường trong Civil 3D

Bài giảng Chuyên đề thiết kế đường trong Civil 3D
o be visible in the Part List. This is an 
BQT diễn đàn www.kythuatdothi.com Trang 43 
 Chuyên đề thiết kế đường trong Civil 3D 
important step, because we can still create the custom variable in Part Builder, but if this 
option is not checked then certain information for that variable will never come through 
after editing the xml files and then never be available in the Parts List. 
Step Two, create the initial variable. In the Content Builder go to Model Parameters right 
click and select Edit. 
In the Model Parameters click New and you will get the following dialog box. 
In this example I am creating a parameter that I will use for an inline reducer structure I 
created. I am already using SID, the Inner Structure Diameter for the diameter coming 
BQT diễn đàn www.kythuatdothi.com Trang 44 
 Chuyên đề thiết kế đường trong Civil 3D 
into the structure. So I need another parameter for the reducing diameter coming out of 
the structure so that I will be able to create multiple part sizes in Parts List from a single 
structure. Make sure you keep in mind or write down the exact name and description of 
the new parameter just created, because we will need to add that exactly as it is here in one 
of the xml files. For now just use a constant value for the Equation because we will modify 
this in the Size Parameters. 
Step three, modify the size parameters. Right click on Size Parameters, as show below, and 
select Edit Configuration. 
In the Parameter Configuration dialog box, shown below, find your new variable. We will 
want to modify this variable here as much as we can to be what we want so there will be 
less to do in the xml files 
In my variable RID, the Reducing Inner Diameter, I have changed the Data Storage type 
from a constant to a List, that way I can go into the values for this variable and add all the 
sizes that I will use to create this part in Parts List. We also want to change the Visible 
attribute from False to True; this is part of what will allow us to see this variable in the 
BQT diễn đàn www.kythuatdothi.com Trang 45 
 Chuyên đề thiết kế đường trong Civil 3D 
Parts List when adding sizes. Now look at the Context and Index Attributes for this 
variable, shown above in the box, these are the pieces of information that we will need to 
modify in the xml files that will allow the variable to pass to the Parts List. You’ll notice 
that in the context of this variable that it is calling it a Model Distance Parameter, where 
the other variables have a specific context matching the variable itself. This is because the 
context for this variable does not exist in the xml file, so we are going to have to add it. Also 
you will notice the Index of this variable is set to 1, were the others that pass to the Parts 
List are 0, we will have to modify this as well in the xml file. 
Step four, edit the xml files. Make sure you save your structure and exit Part Builder, and 
close Civil 3D before we edit the xml files. Once everything is saved and closed there are 
two xml files we need to edit. The first will be the xml file for the structure itself which will 
be located in /Pipes Catalog/US Imperial Structures/Your Chapter/Reducer.xml, where 
 is the location on your system for the Pipes Catalog and Your Chapter is the chapter 
you created at the time you created or saved the initial structure. The second xml file to 
edit will be /Pipes Catalog/Aecc Shared Content/AeccPartParamCfg.xml, this is the xml 
file that will read the context of the structure and eventually allow us to pass this variable 
to the Parts List. 
Open the structure xml file with notepad. 
Find your new variable as shown highlighted above. Then find the context and index for 
this variable also shown highlighted above. Change the context to be something similar to 
the description with no spaces, for this variable I used “StructReduceDiameter”. Then 
change the index to “0”. Remember to keep the parenthesis on these attributes. Save and 
close the xml file. 
BQT diễn đàn www.kythuatdothi.com Trang 46 
 Chuyên đề thiết kế đường trong Civil 3D 
Now open the AeccPartParamCfg.xml file. 
In this xml file the new variable does not exist, so we have to create it in two places. In this 
case the easiest thing to do is find a variable that is similar to the one you created; the RID 
variable is similar to the SID variable. Do a search for SID copy the line and paste into a 
new line as shown highlighted above. Edit the variable name, description and context to 
match what is in the structure xml file. 
Now we need to add the context to the Structure Domain. 
BQT diễn đàn www.kythuatdothi.com Trang 47 
 Chuyên đề thiết kế đường trong Civil 3D 
Find the Structure Domain towards the bottom of the xml file or do a search for the 
context of the variable that is similar to the one you created. It is very important in this 
step to make sure we add the context of the new variable in the appropriate Domain type. 
In the case of the inline reducer, I created it as a Junction Structure, so I added the context 
of “StructReduceDiameter” in the Junction Structure category, as highlighted above. Save 
and close the xml file. 
The final step is to verify that everything works. Reopen your structure in Part Builder and 
go to the Size Parameters, Edit Configuration. 
BQT diễn đàn www.kythuatdothi.com Trang 48 
 Chuyên đề thiết kế đường trong Civil 3D 
ou will see by the highlighted information above that the Context and Index of the variable 
is now reading the information that we edited in the xml files. Exit Part Builder and go to 
your Parts List in Civil 3D add the Part Family for the structure if not already in your list 
and go to Add Part Size. 
You will see by the highlighted information that our custom variable is now available in 
Parts List. 
Microsoft XML Notepad 2007 ~ this is a full-featured XML editor 
Download: 
4118-ba5f-4f30fe913628&displaylang=en 
Detailed Info:  
NotePad++ ~ this is a Notepad or Wordpad replacement that has good xml editing tools 
Download: (choose npp.5.4.5.Installer.exe) 
plus/files/ 
Detailed Info:  
BQT diễn đàn www.kythuatdothi.com Trang 49 
 Chuyên đề thiết kế đường trong Civil 3D 
4. Modifying Cover and Slope Rule 
H 
ave you ever started laying out a pipe network using the cover and slope pipe rule or Pipe Cover 
and found the pipes down near the zero elevation? Well if your like me you don’t really 
appreciate having the pipes down at the zero elevation. Here’s a way to change the rule to put the 
elevation at a place which would be more desirable without having to move the pipes later on. 
NOTE: Before you start make sure you save a copy of the C3DPipeRules.dvb to another location 
to easily go back to the original state. 
To do this open up the Visual Basic Editor after you have worked with a pipe (working with a 
pipe should load the C3DPipeRules.dvb file automatically). This post has more information on 
how to load Visual Basic files. Go to the CoverAndSlope Module and scroll down to the Public 
Sub ApplyWithoutSurface routine, to the part that is below: 
1 ‘ If the last elevation is equal to our double max, 
2 ‘ then the last elevation has not been set in the network state 
3 ‘ and we will set the starting elevation to the minimum cover 
4 ‘ 
5 If dLastElevation = c_DBL_MAX Then 
6 dNewPipeZ = 0 
7 If eFlowDir = aeccPipeFlowDirectionStartToEnd Then 
8 dNewPipeZ = dNewPipeZ – dMinimumCover 
9 oPipe.StartPoint.Z = (dNewPipeZ – oPipe.OuterDiameterOrWidth * 0.5) 
10 
11 ElseIf eFlowDir = aeccPipeFlowDirectionEndToStart Then 
12 dNewPipeZ = dNewPipeZ – dMinimumCover 
13 oPipe.EndPoint.Z = (dNewPipeZ – oPipe.OuterDiameterOrWidth * 0.5) 
14 End If 
15 ‘ otherwise set the starting elevation to the last elevation 
16 ‘ 
17 Else 
18 
19 If eFlowDir = aeccPipeFlowDirectionStartToEnd Then 
20 oPipe.StartPoint.Z = dLastElevation 
21 ElseIf eFlowDir = aeccPipeFlowDirectionEndToStart Then 
22 oPipe.EndPoint.Z = dLastElevation 
23 End If 
24 End If 
You can change the dNewPipeZ = 0 (Line 5), to a new value or we can change it to prompt the 
user for the elevation they want to use. The new line could be the following: 
dNewPipeZ = ThisDrawing.Utility.GetReal(vbCrLf & “Surface not found, enter invert elevation 
to use:”) 
If you then create a pipe network you will see that we have two problems with the change of 
prompting the user for the invert elevation. The first is the invert elevation of the first pipe is not 
the same as the one we entered into the program and the second is that it asks you again to enter 
the invert elevation at the end of laying out the network. 
BQT diễn đàn www.kythuatdothi.com Trang 50 
 Chuyên đề thiết kế đường trong Civil 3D 
The first problem is explained in the code shown above, it is setting the starting elevation to the 
minimum cover as told in the programming notes. To correct this remove lines 8 and 13 from the 
code above and change the negative sign and the word outer in lines 9 & 14 to a positive and 
Inner. I suggest using a ‘ before the line to remove it and adding a note to explain why you did 
the change so you can easily go back at a future date and reverse the revision. The 
oPipe.Endpoint.Z and oPipe.StartPoint.Z refer to the center of the pipe. 
The next change we have to make is to get the program to not ask you what the invert elevation 
is the second time. To accomplish this we are going to add an If Then statement around where it 
is setting the starting elevation. So right after line 5 add: 
If oPipe.StartPoint.Z = 0 Then 
After line 16 put End If. So the finished code should look something like this: 
1: ‘ If the last elevation is equal to our double max, 
2: ‘ then the last elevation has not been set in the network state 
3: ‘ and we will set the starting elevation to the minimum cover 
4: ‘ This portion was revised to allow the user to input the starting elevation instead of 
5: ‘ setting the starting elevation to the minimum cover. 
6: ‘ 
7: If dLastElevation = c_DBL_MAX Then 
8: ‘ To get the program to not ask us for the elevation again we will check to see if the start point 
z is zero 
9: If oPipe.StartPoint.Z = 0 Then 
10: dNewPipeZ = ThisDrawing.Utility.GetReal(vbCrLf & “Surface not found, enter invert 
elevation to use:”) 
11: 
12: If eFlowDir = aeccPipeFlowDirectionStartToEnd Then 
13: ‘ Line below removed to allow the user to provide the invert elevation. 
14: ‘ dNewPipeZ = dNewPipeZ + dMinimumCover 
15: ‘ The + was a negative sign and Inner was Outer to get invert of the pipe instead of the top 
of pipe. 
16: oPipe.StartPoint.Z = (dNewPipeZ + oPipe.InnerDiameterOrWidth * 0.5) 
BQT diễn đàn www.kythuatdothi.com Trang 51 
 Chuyên đề thiết kế đường trong Civil 3D 
17: 
18: ElseIf eFlowDir = aeccPipeFlowDirectionEndToStart Then 
19: ‘ Line below removed to allow the user to provide the invert elevation. 
20: ‘ dNewPipeZ = dNewPipeZ + dMinimumCover 
21: ‘ The + was a negative sign and Inner was Outer to get invert of the pipe instead of the top 
of pipe. 
22: oPipe.EndPoint.Z = (dNewPipeZ + oPipe.InnerDiameterOrWidth * 0.5) 
23: 
24: End If 
25: End If 
26: 
27: 
28: ‘ otherwise set the starting elevation to the last elevation 
29: ‘ 
30: Else 
31: 
32: If eFlowDir = aeccPipeFlowDirectionStartToEnd Then 
33: oPipe.StartPoint.Z = dLastElevation 
34: ElseIf eFlowDir = aeccPipeFlowDirectionEndToStart Then 
35: oPipe.EndPoint.Z = dLastElevation 
36: End If 
37: 
38: End If 
If you want to go back to the old way just copy over the changed C3DPipeRules.dvb and it 
should be back to the original state. You can download a hacked version here if you’d like to 
review. 
Lệnh SDI để chỉnh lại mở khung nhiều cửa sổ. 
BQT diễn đàn www.kythuatdothi.com Trang 52 
 Chuyên đề thiết kế đường trong Civil 3D 
Advanced Daylighting Design and a farewell... 
Hi all - this design scenario came up a few weeks ago, funny enough from two different sources, 
in Europe and North America. How do you design an Assembly that in cut conditions daylights 
from the hinge point and has two parts (see below); first a variable dimension (x) and then a 
second part with a fixed dimension (y)? As you may know, at first glance Assemblies can only 
have a variable dimension on the "last" daylight portion, where you just tell the Subassembly to 
find the surface wherever it is. This seems impossible - how could we achieve this? 
To understand the solution we will quickly review the definition of a parallelogram. It is a 
rectangle in which the opposing sides have equal length, like this: 
Look at the X and Y portions in the first graphic and compare - any ideas? We DO need to start 
with a fixed variable and end with a link to find the surface, but here's another hint - you can 
create Links as construction items and use the "Omit Link" property. Stumped? Let's take the 
design criteria and combine it with the parallelogram concept to get a solution! 
Part 1 
Use a LinkWidthAndSlope to create a fixed daylight offset 
Then add a LinkSlopeToSurface 
This is exactly opposite of what we want, right? On to Part 2... 
BQT diễn đàn www.kythuatdothi.com Trang 53 
 Chuyên đề thiết kế đường trong Civil 3D 
Part 2 - now we are going to go "backwards" to get the links we actually want. 
From the daylight point at the surface, create the same LinkWidthAndSlope, but in the opposite 
direction 
Then add a MarkedPoint to the end (give it a name when creating) 
Now from the original hinge point, attach a LinkToMarkedPoint and provide the MarkedPoint 
name 
See what you have done, you have created a parallelogram! Now you need to go back to the two 
subassemblies you created in Part 1, right-click and Edit Subassembly. In the Subassembly 
Properties, just turn the "Omit Link" property to "Yes." Now those subassemblies are just 
construction pieces and will not be drawn when you create your corridor. Perhaps now your 
horizons have opened up to other possibilities - my thanks to Tomas Lendvorsky, Autodesk's 
Solutions Engineer from Prague (he's a whiz with Expressions too!). 
BQT diễn đàn www.kythuatdothi.com Trang 54 
 Chuyên đề thiết kế đường trong Civil 3D 
A farewell: this will be my last post on the BeingCivil blog, as I have accepted the position of 
Social Media Manager in Product Support. I would like to thank you all for joining us here on 
the BeingCivil blog, following us on Twitter and YouTube. BeingCivil lives on, with the critical 
support of our other great authors: Almas, Jason, Justin and Seth. My congratulations as well to 
Joshua Coombs, who takes over as the Technical Lead for Civil in Product Support. I wish you 
all success and happiness in the coming holiday season and beyond, and finally, don't forget to 
"Be Civil"! 
BQT diễn đàn www.kythuatdothi.com Trang 55 

File đính kèm:

  • pdfbai_giang_chuyen_de_thiet_ke_duong_trong_civil_3d.pdf