道路が標準クラウン条件、あるいは横断勾配摺り付けの場合、コンポーネント動作の違いについて検討することが必要です。側溝および中央分離帯のサブアセンブリも、通常の横断勾配摺り付けされた横断でさまざまな動作を表現できるように設計できます。
コリドー線形の横断勾配摺り付けプロパティは、道路上のすべての測点で車線と路肩の勾配を定義します。ただし、これらの勾配の適用は、サブアセンブリがレイアウト モードやサブアセンブリの内部論理でどのように操作されるかによって変わります。企業や団体などによって手法も異なります。サブアセンブリのコードでは、どんな状況下でも適応が可能になります。
最も重要なことは、横断勾配摺り付けのピボット ポイントの場所、そのポイントと設計縦断勾配線(PGL)との関係を認識することです。ピボット ポイントと PGL には、一般的に次のような組み合わせがあります。
- ピボット ポイントおよび PGL は、両方ともクラウンにある。
- ピボット ポイントおよび PGL は、分割された道路上の走行車線の内側の端にある。
- ピボット ポイントおよび PGL は、分割されない道路上の走行車線の内側の端にある。
- ピボット ポイントは曲線の走行車線の内側の端にあるが、PGL は道路の中心線にある。
- クラウンのある分割された道路上では、PGL はクラウンポイントにあり、ピボット ポイントは走行車線の内側の端にある。
- クラウンのない分割された道路上では、PGL とピボット ポイントは中心線の中央分離帯の上にある。
どのような状況であろうと、サブアセンブリは正しく動作するように設計する必要があります。
道路コンポーネントは、横断勾配摺り付け横断の中で特殊な動作をする場合があります。横断勾配摺り付け横断の特殊な動作の例を次に説明します。
- 非連続横断勾配の路盤: 企業や団体の中には、横断勾配摺り付けの高い側の路盤層にブレーク ポイントを入れているところもあります。路盤は、路肩やガードレール設置路肩リンクと交差するまで下り勾配のあるポイントまで表層に平行します。
- 路肩ブレークオーバー: 通常、最大の勾配差(すなわちブレークオーバー)は、車線と路肩の間に、あるいは舗装された路肩リンクと未舗装の路肩リンクの間に維持する必要があります。
- 街渠: 横断勾配摺り付け道路の高い側にある側溝を、低い側の方へ傾斜させることを求める企業や団体もあります。また通常の形状のままにしておく企業や団体もあります。
注:
カスタム サブアセンブリを書く際は、AutoCAD の呼び出しを行い AutoCAD Civil 3D のサブアセンブリ操作をランタイム中に中断させてしまうようなコードを書かないようにしてください。たとえば、選択セットをビルドすることは避けます。
回転軸のピボット ポイントの計算に関する注記
このセクションでは、横断勾配摺り付けを使用し、回転軸の計算をサポートするサブアセンブリの作成時に呼び出す必要のあるメソッドについて説明します。
- アセンブリ内の 1 つのサブアセンブリが潜在基点として指定されている場合、潜在基点と横断勾配摺り付けを使用する基線間のすべてのサブアセンブリは、Autodesk.CIvil.Runtime.CorridorState メソッドを次のように使用して、横断勾配摺り付けの横断勾配データをコリドーにレポートする必要があります。
Public Sub SetAxisOfRotationInformation (ByVal isPotentialPivot As Boolean, ByVal superElevationSlope As Double, ByVal superElevationSlopeType As Autodesk.Civil.Land.SuperelevationCrossSegmentType, ByVal isReversedSlope As Boolean)
superElevationSlope は、サブアセンブリで使用される横断勾配です。回転軸を正しく動作させるために、回転軸は横断勾配摺り付けテーブルの車線タイプ superElevationSlopeType から取得した値である必要があります。テーブルから取得した値が何らかの方法で調整されている場合、回転軸は正しく動作しません。
True に設定された isReversedSlope は、適用された横断勾配が、横断勾配摺り付けテーブルから取得された偽の値であることを示します。
- AutoCAD Civil 3D コンテンツで提供されている LaneSuperelevationAOR は、回転軸のピボット ポイントをサポートします。アセンブリに LaneSuperelevationAOR(ピボット ポイントをサポートするカスタム サブアセンブリ)が含まれていない場合、[横断勾配摺り付けを計算]ウィザードで指定したピボット タイプは無視され、[基線]ピボット タイプが適用されます。カスタム サブアセンブリは、SetAxisOfRotationInformation() の呼び出し時に、引数 isPotentialPivot に True を渡すことで、回転軸のピボット ポイントをサポートできます。
- 分割クラウン付き道路で[中央]ピボットを決定するには、ピボットをサポートしているサブアセンブリで指定されたクラウン ポイントを使用します。コリドーの作成時に回転軸の計算で使用されるクラウン ポイントを指定するには、Autodesk.Civil.Runtime.CorridorState メソッドを次のように使用します。
Public Sub SetAxisOfRotationCrownPoint (ByVal nCrownPointIndex As UInteger)
アセンブリ レイアウト モードでクラウン ポイントを表示するには、クラウン ポイントのインデックスを使用してサブアセンブリのプロパティ "SE AOR Crown Point For Layout" を設定する必要があります。このプロパティを設定するには、Utilities クラスの次のメソッドを呼び出します。
Public Shared Sub SetSEAORCrownPointForLayout (ByVal corridorState As CorridorState, ByVal nCrownPoint As Integer)
- 既定では、回転軸の計算は、記録された横断勾配が計算内のサブアセンブリの全幅に適用されることを前提にしています。開始オフセットは、右側に作成されるサブアセンブリでは最小オフセットになり、左側に作成されるサブアセンブリでは最大オフセットになります。サブアセンブリが、サブアセンブリの一部だけに横断勾配を適用している場合は、Autodesk.Civil.Runtime.CorridorState メソッドを使用して、コリドーを含むこの範囲の開始オフセットおよび終了オフセットを次のように記録します。
Public Sub SetAxisOfRotationSERange (ByVal dApplySE_StartOffset As Double, ByVal dApplySE_EndOffset As Double)
- アセンブリごとに、回転軸情報の 1 つのセットのみが記録されます。つまり、計算されるデルタ Y 値は、サブアセンブリ内のポイントがアタッチメント ポイントとして使用されていても同じ値になります。したがって、サブアセンブリが複数の横断勾配を利用したり、1 つの横断勾配がサブアセンブリの特定のポイントにのみ影響する場合は、ピボット位置のみが正しく計算されてコリドーに記録されます。
- サブアセンブリが横断勾配摺り付けを使用する場合に、コリドーに対して横断勾配摺り付けの横断勾配データを記録していない場合は、サブアセンブリはコリドーに通知して、回転軸が予期しない結果になる可能性があるという警告を出せるようにする必要があります。コリドーに通知するには、Utilities クラスの次のメソッドを呼び出します。
Public Shared Sub SetSEAORUnsupportedTag (ByVal corridorState As CorridorState)
サブアセンブリが条件付きで回転軸をサポートする場合、未サポートのフラグをクリアしなければならないことがあります。フラグをクリアするには、Utilities クラスの次のメソッドを呼び出します。
Public Shared Sub ClearSEAORUnsupportedTag (ByVal corridorState As CorridorState)