Civil Engineer's Forum-FORUM8 このページをスタートページに設定する スマートフォンサイト モバイルサイト QR

Facebook - FORUM8

Twitter - FORUM8

YouTube - FORUM8

 Powered by Google

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

4
 構造解析プログラミング講座(3)
フレーム構造物のコンセプト設計・構造解析と最適化が行える統合ソフトウェアMultiframeでは、COMインタフェースによるオートメーションにより、VisualBasicなどを用いてアドインプログラムを開発し、Microsoft OfficeやAutoCADに組み込むことができます。今回は、Multiframeオートメーションを利用したDelphiプログラム開発について紹介します。
 Multiframeのオートメーションサンプル

 オートメーションとは、異なるアプリケーションから利用できるようアプリケーションをオブジェクト化することです。
これにより、通常であればユーザがマウスやキーボードで処理することを、他のプログラムから制御することができるようになります。
ただし、すべてのプログラムがオートメーションによりコンロトールできるわけではなく、プログラム自体にオートメーションの機能を実装しておく必要があります。


 なお、Multiframeのオートメーションのサンプルファイルは、下記にインストールされています。

C:\Program Files\Multiframe 12\Automation Samples
  • 「Excel Samples」・・・Excel用サンプル
    「Word Samples」・・・Word用サンプル
    「Access Samples」・・・Access用サンプル
    「AutoCad Samples」・・・AutoCAD 用サンプル

 上位フォルダには、Word Samples、Access Samples、AutoCad Samplesが格納されているので、確認してみるとよいでしょう。まず、これらのサンプルが動作するかどうかを確認しておいてください。うまく動作しない場合は、アプリケーションを再セットアップするなどしてください。


 タイプライブラリの取り込み

  まず最初に、Delphi2010でオートメーションを利用できるようにしておく必要があります。次の手順にしたがって、タイプライブラリをインポートします。

  1. Delphi2010でメニューから[コンポーネント]−[コンポーネントのインポート]ー[タイプライブラリ]を選択して、表示されたダイアログで[次へ]をクリックします。

  2. 検索ボックスに「Multiframe」と入力します。一覧に表示された「Multiframe1.3 ObjectLibrary」を選択して[次へ]をクリックします。


  3. パレットページ名とファイルの取り込み先のユニットディレクトリ名を指定します。ユニットディレクトリ名は、デフォルトでは「C:\DocumentsandSettings\(ユーザフォルダ)\MyDocuments\RADStudio\7.0\Imports\」となります。

  4. [次へ]をクリックします。

  5. [ユニットの作成]にチェックを入れて、[完了]をクリックします。


  6. 指定したディレクトリに”Multiframe_TLB.pas”ユニットファイルが出力されていることを確認しておきます。


 ツールの仕様

 ここで作成するツールの仕様は、下の図の通りとします。



Multiframe入力支援ツール(半球ドーム)
  ・平面的に円を何等分するか入力により決める
  ・鉛直方向に何等分するか入力により決める


 プログラムの記述

 ここでは、具体的に以下のようなプログラムの記述を行っています。
Multiframeを起動する
 タイプライブラリをインポートすると、Delphi言語での書式に変更されたライブラリが生成されます。
なお、Multiframeアプリケーションクラスは、次の記述のように定義されています。
ここでは、サンプルプログラムで使用する入力データファイルの大まかな書式と、読み込みに使用するDelphiのクラスについて説明します。

CoApplication = class
class function Create: IApplication;
class function CreateRemote(const MachineName:
                   string): IApplication;
end;

このためMultiframeを起動するには以下のように記述します。
 IMFApp := Multiframe_TLB.CoApplication.Create;

  起動すること自体はMultiframe_TLB.CoApplication.Create;のみで行えますが、作成したオブジェクトにアクセスする手段が必要なため、Multiframe_TLB.Application型のグローバル変数IMFAppにアドレスを代入しています。

入力、座標とエレメントの設定処理
フォームで入力したパラメータを変数に代入します。

Radius := SpinEditRadius.Value;
thetaspace := SpinEditthetaspace.Value;
phispace := SpinEditphispace.Value;

(1)座標算出用角度を計算する
座標は半径と角度から計算して求めることができます。上空から見た場合には円をThetaspace 等分、横から見た場合には90度をpsispace等分する必要があるので、下記のような式で求めます。

dtheta := 2 * pi / thetaspace;
dphi := pi / 2 / phispace;

 Delphi2010では、ラジアンで角度を処理します。piはユニットSystemで定義されている定数で、πの近似値(3.1415926535897932385)が定義されています。上記の式から刻み角が算出できます。

(2)座標をセットする
 iのループとjのループを使用して、座標を計算してノードを登録します。

for i := 1 To phispace do
begin
phi := (i - 1) * dphi;
startnode := count + 1;
IMFApp.ScreenUpdating := False;
for j := 1 To thetaspace do
begin
count := count + 1;
theta := (j - 1) * dtheta;
x := Radius * Cos(theta) * Cos(phi);
z := Radius * Sin(theta) * Cos(phi);
y := Radius * Sin(phi);
IMFApp.frame.Nodes.AddNode(x, y, z);

 (3)エレメントをセットする
 同じ階層のエレメントを登録します。jのループでは、j=1の場合とj=thetaspaceの場合のノードがつながらないので、追加でAddElementしています。

      Title := Copy( Line, 11, 40 );

  頂点の座標をセットして、頂上部分のエレメントを接続しています。
(4)底面をピン接合にセットする
底面をピン接合にセットします。

for i := 1 To thetaspace do
begin
myRest := IMFApp.frame.restraints.AddRestraint(i,
       mfRestraintPinned)
end;

■ Multiframeを終了する
 終了するには、下記の関数を実行します。

IMFApp.Quit;


 デバッグ・テストを行う

 作成したプログラムを実行すると、下の【図03】のような結果が得られます。



 まとめ

 Multiframeでは、このほかにもさまざまな関数がサポートされています。これらの関数には、Windows のスタートボタンからアクセスできます。
[スタート]−[プログラム]−[Multiframe 12]−[ヘルプ]−[オートメーションのヘルプ] −[MFオートメーションのヘルプ]
なお、今回説明したプログラムでは、入力の一部の支援しか行っていません。実際に解析を行うには、エレメントの断面諸量の設定や加重条件等の入力を行う必要があります。これらの入力方法については、Multiframeのオートメーションサンプルを参考にしてください。

有償セミナーのお知らせ
 エンジニアのプログラミング入門セミナー  CPD認定6.2pt
 日時 2011 年 9 月15 日(木) 9:30 〜 17:00
 受講費 1名様 15,750円(税込)
 本会場 フォーラムエイト東京本社 GTタワーセミナールーム
TV会議システムにて東京・大阪・名古屋・福岡・仙台同時開催


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

FORUM8


お問合せ窓口




[ ユーザー紹介 ]
株式会社デンソー
エレクトロニックコントロール
コンポーネント部

[ お知らせ ]
平成29年道路橋示方書対応製品
価格発表のご案内






>> 製品総合カタログ


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

最近リリースした製品
控え壁式擁壁の設計計算 Ver.6
弾塑性地盤解析(GeoFEAS)2D Ver.4
Geo Engineer's Studio(Lite)
BOXカルバートの設計・3D配筋 Ver.16
柔構造樋門の設計・3D配筋 Ver.11

キャンペーン実施中
平成29年新道示対応準備
CIM・i-Con技術セミナースタート
レンタルライセンス買い取り
有償セミナー受講料割引

セミナー・イベントカレンダー
開催間近のセミナー
9/22  UC-1 港湾シリーズ体験
9/26  斜面の安定計算
10/3  土留め工の性能設計計算
 体験
10/4  レジリエンスデザイン・BIM系
 解析支援体験

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