このTclModelBuilderでは、
OpenSees の node, element, fix 等のデータも読み込んでいます。
<Opensees コマンド>
node 1 0.0 0.0
node 2 144.0 0.0
node 3 168.0 0.0
node 4 72.0 96.0
<Opensees コマンド>
fix 1 1 1
fix 2 1 1
fix 3 1 1
<Opensees コマンド>
element Truss 1 1 4 10.0 1
element Truss 2 2 4 5.0 1
element Truss 3 3 4 5.0 1
これらOpenSeesコマンドは、すべてTcl_CreateCommand( )ファンクションを起動することによって、
その内容を読み込んでいます。
読み込む作業を行っているファンクションも、Tcl_CreateCommand( )に下記の様に書かれています。
Tcl_CreateCommand
(interp, "<Openseesコマンド>",
<OpenSeesコマンドを読み込むファンクション>,
(ClientData)NULL, NULL);
たとえば
Tcl_CreateCommand(interp, "node", TclCommand_addNode, (ClientData)NULL, NULL);
は、 OpenSeesコマンドのnodeを読み込みますが、
読み込むファンクションは、TclCommand_addNode( )です。
このTclCommand_addNode( )の中で、
Nodeクラスに OpenSeesコマンドのNodeのデータをセットします。
--------------
他のコマンドも同じようにして、データをセットしていきます。
セットしたデータをつかっての構造計算は、
<Opensees コマンド> analyze 1
で、行いますが、これは、
C:\OpenSees-work\OpenSees5621\OpenSees\SRC\tcl\commands.cpp
または
tclプロジェクトのcommands.cpp
の中の
int OpenSeesAppInit(Tcl_Interp *interp)
の中で定義されていた
Tcl_CreateCommand(interp, "analyze", &analyzeModel,
(ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
における
&analyzeModel( )
で、計算が行われます。
(&がついているので、同じファイルの中に、ファンクションが定義されています)
----------------
そして
0 件のコメント:
コメントを投稿