Civil Engineer's Forum-FORUM8
このページをスタートページに設定する QR

Facebook - FORUM8

Twitter - FORUM8

YouTube - FORUM8

 サイトマップ | ご利用条件 | お問い合わせ | 英語翻訳サイト | Japanese | English | Korean | CHS/CHT | Vietnam | Francais | Europe

8
 3次元CAD連携プラグイン
UC-win/Roadと他の3次元CADなどのアプリケーションとでデータ交換を行うには、UC-win/RoadのSDKを使用して開発したプラグインを利用します。現在、すでに多くの連携プラグインが開発され活用されています。この節では、サンプルソースコードを用いて連携プラグインの作成方法を説明します。
 データ連携の基本

 3D・VRソフトUC-win/Roadは、さまざまなCADアプリケーションとの間で3次元データの連携が可能となっています。SDKを用いた開発によってすでに製品に搭載されている連携プラグインでは、Autocad Civil 3D【注1】、InRoads【注2】などに対応しています。また、LandXMLやShapeFileなどのファイル形式の読み込み/書き込みプラグインも備わっています。

 通常、CADアプリケーションとの連携機能を開発する場合は、UC-win/Roadで用意されている3つのオブジェクトを対象にします。

 ひとつは3Dモデルです。UC-win/Roadでは3Dモデルで一般的な3D情報を扱うことができ、これらはポリゴンの三角形の頂点情報、色の情報および画像に関する汎用性のある情報が保存されています。これによって、他のさまざまなCADソフトとの間で幾何学データを交換することが可能となっているのです。

 次に、道路オブジェクトがあります。3Dモデルと異なり、最終的な形状情報ではなく大元となる設計データを持ち、3D描画を行う前に3D形状を自動的に生成します。この機能によって、道路設計アプリケーションとの双方向データ交換が可能となっています。

 最後に、UC-win/Roadの地形オブジェクトは地盤の標高データを保存しています。これは、3Dモデルよりさらに簡単に扱うことのできるオブジェクトで、道路の法面の生成も考慮されたものになっています。

 また、CADデータをプラグインのプログラム側で管理し、一般的なOpenGL関数でUC-win/Roadの画面に描画させることもできます。この後は、道路のデータ連携を中心に説明していきます。


 UC-win/Roadの道路データ構造

 UC-win/RoadのRoadオブジェクトは1本の道路の線形情報と横断面の変化情報を持ち、3次元モデルの生成および描画関数を持つオブジェクトです。

 線形情報としては平面線形と縦断線形があり、平面線形情報と横断面の変化情報は、Roadオブジェクトの直下に保存されています。縦断線形の情報は、RoadオブジェクトのメンバーであるVerticalCurveオブジェクトで保存されています。


図1


道路の平面線形
 Roadオブジェクトの下にある各TurningPointは、平面線形のIP点(Intersection Point)を定義します。これは道路直線空間の延長線が交差する点になります。平面線形はTurningPointの配列で定義され、その配列はRoadオブジェクトのturningPointプロパティからアクセスします。

図2

 各IP点において直線空間を結ぶ曲線のパラメータを定義し、曲線の計算をする関数も用意されています。UC-win/Roadでは、次のような5種類のIP点があります。
  1. 円:円形のカーブ
  2. 緩和曲線・円・緩和曲線:カーブが急に円形になることを防ぐために緩和曲線から入り、緩和曲線から出るカーブ
  3. 緩和曲線・円 : 緩和曲線から始まる、あるいは終わるカーブ
  4. 円・緩和曲線 :上記と同じカーブですが、線形の進行方向に対して緩和曲線と円の順を入れ替えたカーブ
  5. 緩和曲線:緩和曲線のみのカーブです

 上記のようなカーブは、別のカーブと組み合わせた形でよく用いられます。TurningPointの主なメンバーは図3の通りです。TurningPointの種類によって使用されるパラメータと使用されないパラメータがあります。

 たとえば、Circle(円)の種類であれば緩和曲線に関するパラメータは使用されません。データ構造上では_CircleTransitionCircle (円・緩和曲線・円)の種類が宣言されていますが、実際は使用されていません。なお、_RoadVertexはスプライン道路に使用されています。

道路の横断面の変化
 道路の横断勾配はSection(横断面)オブジェクトで定義され、1本の道路の中で横断勾配を変えることができます。起点または途中の横断勾配を設定するには、Sectionオブジェクトを適用します。1つのSectionオブジェクトは複数箇所への適用や、別の道路への適用が可能です。

 Sectionオブジェクトを適用するには、RoadThingというオブジェクトを使用します。RoadThingオブジェクトは道路の変化を定義します。横断面の変化の場合は道路線形上で変化を適用する追加距離を保存し、適用するSectionオブジェクトを参照します。

 RoadThingを使用して、横断面の変化のほかにTransition、橋梁、トンネル空間なども設定できます。Transitionは2つの横断面変化の間に追加し、横断面の形状が急に変化しないように補間処理を設定するために使用します。RoadThingのクラス構造は図4の通りになります。

図3 RoadThingのクラス構造


道路の縦断線形
 道路の縦断線形は平面線形と同様に方向変化点の配列を持ち、縦断線形の直線空間を結ぶ曲線のパラメータを設定します。

 VerticalCurveオブジェクトのcurvePointプロパティからIP点にアクセスします。縦断線形の場合は2次曲線を使用し、設定できるパラメータは曲線の延長、所謂VCL(Vertical Curve Length)になります。

図4 縦断線形


横断面オブジェクト
 Section(横断面)オブジェクトが道路に適用されることで道路の横断勾配が定義されます。Sectionオブジェクトのリストは道路のリストから独立し、ProjectForRoadオブジェクトのSectionプロパティからアクセスできます。1つの横断面は4つの断面を定義する必要があり、それらは路面・歩道等を含む断面、橋梁空間で適用される橋梁断面、トンネル断面路面、道路付属物に使用する路面の標高プロファイルとなります。

 それぞれの断面形状は点の配列で定義され、各点に属性が保存されています。2つの点の間に線分があり、描画方法は設定した属性で決まります。

 また、線分の属性は2つの点のうち先の点の属性を使用します(図5)。属性の中では、縁石、歩道、植樹帯、ガードレール、車道、その他」などの線分の種類があります。「車道」の場合は車線数および左側か右側かという設定も必要になります。


 道路APIに関するサンプルコード

 このサンプルで道路を新規に作成し、IP点の設定を行います。作成する道路は引数で渡されるプロジェクトに追加されます。横断面としては、UC-win/Roadの地域設定に設定されたデフォルトの横断面が適用されます。

図5 横断面


function MakeOneRoad
   (project : IF8ProjectForRoad) : IF8Road;
var
 //道路オブジェクトのインタフェース変数
road : IF8Road;
 //道路平面方向変化点(IP点)オブジェクトのインタフェース変数
turningPoint : IF8TurningPoint;
 //道路縦断線形オブジェクトのインタフェース変数
verticalCurve : IF8VerticalCurve;
 //縦断方向変化点のインデックスを保存する変数
index :integer;

begin
 //プロジェクトオブジェクトで新規道路オブジェクトを生成します。
road := project.CreateNewRoad;

 //これから道路の平面線形を定義
 //道路の起点座標を定義
 //平面座標とIP点の種類を指定
 //道路の起点と終点に
 //「_TransitionCircleTransition」を使用

road.CreateTurningPoint(1000, 1000,_TransitionCircleTransition);
 //道路に1つのカーブを定義

turningPoint := road.CreateTurningPoint(2000, 1000,
_TransitionCircleTransition);
 //IP点のパラメータを設定
 //起点側の緩和曲線の曲率半径
turningPoint.p_R1 := 1000;
 //円弧の曲率半径
turningPoint.p_R0 := 500;
 //円弧の長さ
turningPoint.p_Lr := 400;
 //終点側の緩和曲線の曲率半径_TransitionCircleTransitionでは
 //0を設定すると無限大の半径になる(曲率=0)
turningPoint.p_R4 := 0;
 //起点側と終点側の緩和曲線が同等の定数を使用
 //下記のパラメータを設定
turningPoint.p_TPParam := _AaAb;
 //道路の終点座標を定義
road.CreateTurningPoint (2000, 2000, _TransitionCircleTransition);
 //平面線形の計算を実行
road.CalculateEverything;

 //ここから道路の縦断線形を定義
 //縦断線形を生成。内部では道路の起点と終点の
     //平面座標で地盤の高さを計算し縦断線形の
     //初期化を行うので、この関数は平面線形を設定した      //後に実行させた方がよい。この関数を呼んだ後
     //縦断線形の起点と終点が設定される
road.MakeVerticalCurve(false);
verticalCurve := road.verticalCurve;
 //起点と終点の高さを設定
verticalCurve.curvePoint[1].iSaveData. point.Y := 0;
verticalCurve.curvePoint[2].iSaveData. point.Y := 0;
 //縦断線形に1つのIP点を追加
if verticalCurve.InsertTurningPoint (1000, 100, index) = true then
begin
 //曲線の長さを設定
verticalCurve.curvePoint[index]. iSaveData.leftL := 200;
verticalCurve.curvePoint[index]. iSaveData.rightL := 200;
end;
 //縦断線形の計算を実行させる
verticalCurve.CurveSlopes;

result := road;
end;

体験セミナーのお知らせ
 エンジニアのプログラミング入門セミナー
日時 2012年 6月13日(水) 13:30〜17:00
受講費 ¥15,750(税込)
本会場 フォーラムエイト東京本社 GTタワーセミナールーム
TV会議システムにて東京・大阪・名古屋・福岡・仙台同時開催

     
前ページ    インデックス    次ページ
(Up&Coming '12 春の号掲載)
戻る
Up&Coming

FORUM8


お問合せ窓口




[ ユーザー紹介 ]
櫻井工業株式会社
株式会社TEAM IWAKIRI PRODUCTS
[ 開催報告 ]
第17回FORUM8デザインフェスティバル






>> 製品総合カタログ


>> プレミアム会員サービス
>> ファイナンシャルサポート

最近リリースした製品
3次元鋼管矢板基礎の設計計算(部分係数法・H29道示対応) Ver.4
UC-1・UC-1 Cloud 統合版 BOXカルバート
電子納品支援ツール Ver.17
柔構造樋門の設計・3D配筋 Ver.17
建築杭基礎の設計計算 Ver.10

キャンペーン実施中
地方創生・国土強靭化 FORUM8セミナーフェアキャンペーン
レンタルアクセス同時購入キャンペーン・過去レンタルキャンペーン
Shade3D・F8VPS 20%OFFキャンペーン

セミナー・イベントカレンダー
開催間近のセミナー
4/2  ブロックUIプログラ
  ミングツールで学ぶ
  ジュニア・プログラミング
4/3  動的解析
4/4  下水道耐震設計体験
4/5  Shade3D-F8VPS
  メタバース入門

ソフトウェア/支援サービス
VRソフト(バーチャルリアリティ)
《UC-winシリーズ》
・道路・シミュレータ
・ドライブ・シミュレータ
・マイクロ・シミュレーション
・避難解析・シミュレーション
>>その他VRソフト
FEM解析ソフト
・3次元プレート動的非線形解析
・2次元動的非線形解析
・総合有限要素法解析システム
>>その他FEM解析ソフト
土木・建築・設計ソフト
《UC-1シリーズ》
・構造解析/断面
・橋梁上部工
・橋梁下部工
・基礎工
・仮設工
・道路土工
・港湾
・水工
・地盤解析
・CAD/CIM、建設会計
・維持管理・地震リスク
・建築
・船舶/避難
>>その他土木・建築・設計ソフト
クラウド
《スパコンクラウド®》
・スパコンクラウドサービス
《VR-Cloud®》
・リアルタイムVRシステム
解析支援サービス/サポート
・UC-win/Roadサポートシステム
・設計成果チェック支援サービス
・Engineer's Studio®解析支援
・地盤解析支援サービス
・EXODUS/SMARTFIRE解析支援
・xpswmm解析支援サービス
・建物エネルギーシミュレーション
・3Dレーザスキャン・モデリング
・3D模型サービス
・3D報告書・図面サービス
>>その他支援サービス
各種ソリューション
・耐震診断/解析
・鋼橋設計
・橋梁新工法
・建築設計
・自治体
・医療系VRシステム
・パーキングソリューション
・ECOソリューション
>>その他ソリューション