MIDAS/Civil MCT TOOLS 工具软件: 快速生成 MCT 数据格式, 程序语言+数据命令, 功能类似 ANSYS 的 APDL. 比较喜欢 MIDAS 的功能, 工作之余, 开发了 针对 MIDAS MCT 数据格式的工具软件, 以弥补其数据参数化/程序化方面的不足. 数据文件 具有 常数、普通变量、数组变量定义/函数/赋值语句/循环语句/条件语句/子程序(*SUB) 近100条命令及语句, 对于大型模型的建立, 可大大减少手工操作, 提高效率. 目前尚缺少 移动荷载 设置命令, 将在近期补充.
比较喜欢 MIDAS 的功能, 工作之余, 开发了 针对 MIDAS MCT 数据格式的工具软件, 以弥补其数据参数化/程序化方面的不足. 数据文件 具有 常数、普通变量、数组变量定义/函数/赋值语句/循环语句/条件语句/子程序(*SUB) 近100条命令及语句, 对于大型模型的建立, 可大大减少手工操作, 提高效率. 目前尚缺少 移动荷载 设置命令, 将在近期补充.
更新内容: 上传了专用 MCTOOLS 程序, 文件小( 600kb), 便于下载使用.
(推荐)如果系统 已经有 .NET Framework, 则直接执行 MCTOOLS.EXE 程序即可, 注意将 MIDAS 目录与 MCTOOLS.EXE 程序放在同一个目录下. 使用方法:
1. 下载 MCTOOLS.ARJ, 解压缩.
2. 执行 MCTOOLS.EXR
3. 在窗口中点击鼠标右键, 弹出菜单中 可选择 示例文件、打开文件、转换即可。
4. 运行 MIDAS, 在 MCT 窗口中打开生成的 .MCT 文件, 即可建立模型.
如果系统没有 .NET Framework, 则需要 下载安装版本, 在 本栏目下 查询 10月28日上传的 4 个压缩文件. 使用方法:
1. 解压缩 集成化桥梁工程CAD系统.ARJ
2. 安装 集成化桥梁工程CAD系统
3. 运行桌面上的 "集成化桥梁工程CAD系统" 图标
4. 点击第3个菜单"结构计算" -> "MIDIS 结构分析"
5. 在上面的窗口中点击鼠标右键, 在弹出的菜单中 可选择 示例文件、打开文件、转换即可。
本程序完全免费使用, 希望此工具软件能为大家 建立大型的 MIDAS 模型提供一些帮助. 并恳请提出宝贵意见. 本人不胜感激! email: liwo@dlut.edu.cn 大连理工大学 交通学院 道路研究所.
命令及数据格式 简要说明如下:
; MIDAS TOOLS 语句、语法说明
; 2011-10-12, 2011-10-26
; liwo@dlut.edu.cn
; 大连理工大学 交通学院 道路研究所
Pi=3.1415926535897932
e=2.71828182845905
; 简单变量可不定义, 数组变量必须定义
*DIM, VAR1[, VAR2][, VAR3, ...,] ASDOUBLE[/ASINTEGER/ASSTRING]
*DIM VAR1[, VAR2][, VAR3, ...,] ASDOUBLE[/ASINTEGER/ASSTRING]
*DIM myAR(), myComVar, ASDOUBLE
SYS_NodeNum 取当前节点数量
SYS_ElemNum 取当前单元数量
*SET, VARi,StrExp
VARi = StrExp
*NODEMAX, sysNdMax 设置结构可能的最大节点号
*ELEMMAX, sysNeMax 设置结构可能的最大单元号
; sysNC=0, 笛卡尔直角坐标系(默认); sysNC=1 柱坐标系(r,sita,z)
*COORD, sysNC 默认为直角坐标系(0)
; sysNA=0, 角度单位为度(默认); sysNC=1 角度为弧度。
*ANGLE, sysNA 默认为度(0)
*STEPDS1, n1*Dx1, n2*Dx2, n3*Dx3, ...
*STEPDS2, n1*Dy1, n2*Dy2, n3*Dy3, ...
*STEPDS3, n1*Dz1, n2*Dz2, n3*Dz3, ...
*N/N, Nd, X, Y, Z
*K/K, KdName, X, Y, Z
*NSEL, ALL/NONE/CLEAR
*NSEL, ADD, Nd1a, Nd1b, Nd1c, Nd2a, Nd2b, Nd2c, ...
*NSEL, DEL, Nd1a, Nd1b, Nd1c, Nd2a, Nd2b, Nd2c, ...
*NSEL, XADD/YADD/ZADD/XDEL/YDEL/ZDEL, valMin, valMax
*NSEL, XADD/YADD/ZADD/XDEL/YDEL/ZDEL, valMid 在选择集中增加/删除 与坐标 valMid 距离最近的节点
*NDEL, SEL[/Nd1, Nd2, Nd3]
*NSELCOPY, NumRPT, XAdd, YAdd, ZAdd[, XAddTM][, YAddTM][, ZAddTM]
*NLMESH, Nd1, Nd2, Nd3
*KLMESH, KdName1, KdName2[, KDivNum[, NdBeg,[NeBeg]]]
*NRMESH, Nd1, Nd2, Nd3, Nd4, NdAdd1, NdAdd2
*NRMESH, Nd1, Nd2, Nd3, 0, NdGen1, NdGen2
*KRMESH, Kd1, Kd2, Kd3, Kd4[,KDivN1[,KDivN2[,NdBeg[,NeBeg[,IfgBP]]]]]
*N3DMESH, NdOrg, Nd1, Nd2, Nd3, NdGen1, NdGen2, NdGen3
*WELD, NSEL/ALL, ZeroEPS, Ifg
*SWAP, ALL/NSEL, X/Y/Z, X/Y/Z 节点坐标互换
*D, "111111"/"000000", Nd11, Nd12, Nd13, Nd21, Nd22, Nd23, ...
*D, "111111"/"000000", ALL/NSEL/SEL
*F, FX/FY/FZ/MX/MY/MZ, LoadVal, Nd11, Nd12, Nd13, Nd21, Nd22, Nd23, ...
*F, FX/FY/FZ/MX/MY/MZ, LoadVal, ALL/NSEL/SEL
*ETNAME, Ne, ElementName, TypeInfo
*ETYPE, Ne
*MAT, 序号, 类别名称(混凝土/CONC/钢材/STEEL/USER/...), 识别名称(模型识别符), 详细类型(C15-C80,Q235-Q420,Stand1470-Stand1860)
*EMAT, Nm
*SECT, 序号, 类别名称(矩形/SB/圆形/SR/管/P/T形/箱形/B/...), 识别名称(模型识别符), 详细尺寸(H, B, t... 最多10个)
*ESECT, Ns
*THICK, t
*E, Nd1, Nd2[, Nd3][, ... ][, Nd8]
E, Name, NMat, NSec, Nd1, Nd2, ..., Nd8
*ESEL, ALL/NONE/CLEAR
*ESEL, ADD, Ne1a, Ne1b, Ne1c, Ne2a, Ne2b, Ne2c, ...
*ESEL, DEL, Ne1a, Ne1b, Ne1c, Ne2a, Ne2b, Ne2c, ...
*ESEL, BEAM/PLATE/SOLID, Ne1a, Ne1b, Ne1c, Ne2a, Ne2b, Ne2c, ...
*EDEL, SEL[/Ne1, Ne2, Ne3]
*ESELCOPY_BEAM, NumRPT, NdIadd, NdJadd, NdType
*ESELCOPY_PLANE, NumRPT, Nd1Add, Nd2Add, Nd3Add, Nd4Add
*ESELCOPY_SOLID, NumRPT, Nd1Add, Nd2Add, Nd3Add, ..., Nd8Add
*ELMESH_BEAM, NdI, NdJ, NumGEN[, NdAddI[, NdAddJ]]
*ERMESH_BEAM, NdOrg, Nd1, Nd2, NumGEN1, NumGEN2
*ERMESH_PLANE, Nd1, Nd2, Nd3, Nd4, NumGEN1, NumGEN2
*EPRESS,Val,GX/GY/GZ, Ne1a, Ne1b, Ne1c, Ne2a, Ne2b, Ne2c, …
*EPRESS,Val,GX/GY/GZ, ALL/ESEL/SEL
*LOFT,DataFileName, KeyWord, NdX, NdY, NdZ[, IfgDIR]
*LOFT, SYSPATH, IdX, IdY, IfgDIR 根据系统定义的路径进行放样, (IdX, IdY) 为被放样截面的坐标序号
; 清除路径记录
*PATHX/*PATHY/*PATHZ/*PATHT, CLEAR/NEW/NULL 清除路径记录
; 按绝对值 ABS 或 相对值 STEP 设置路径数据
*PATHX/*PATHY/*PATHZ/*PATHT, STEP, n1*d1, n2*d2, n3*d3, ...
*PATHX/*PATHY/*PATHZ/*PATHT, ABS, d1, d2, d3, ...
; 数据文件 DataFileName 数据格式
Nd, X, Y, Z[, IfgLoft[, SectFN/ ScaleX[, DataKW/ ScaleY]]]
*GROUP, Name, NODE, Nd11, Nd12, Nd13, Nd21, Nd22, Nd23, …
*GROUP, Name, NODE, ALL/SEL/NSEL
*GROUP, Name, ELEM, Ne1, Ne2, Ne3, Ne21, Ne22, Ne23, …
*GROUP, Name, ELEM, ALL/SEL/ESEL
*NSIDE, NumSide, Rc[, DisRc[, NDiv]]
*BOXSECT, NdBeg, NeBeg, 箱室数n, 箱梁高h, 顶板宽wT/顶板全宽wT, 底板宽wD/底板全宽wD, 顶板半宽/半顶板宽wTLb|wTRb, 底板半宽/半底板宽wDLb|wDRb, 单元类型BEAM/PLATE, 单元长s, 臂板长wxbL|wxbR, 悬臂板厚txbL1|txbL2, 左悬臂板厚txbL1|txbL2, 右悬臂板厚txbR1|txbR2, 顶板横坡pdTL/pdTR, 底板横坡pdDL/pdDR, 边腹板厚tbfL/tbfR, 边腹板倾角AbfL/AbfR, 箱室宽wBox1/wBox2/…/wBoxN, 顶板厚tBoxT1/tBoxT2/…/tBoxTN, 底板厚tBoxD1/ tBoxD1/…/tBoxDN, 中腹板厚tFb1/tFb2/…/tFbN-1
*PATHXY, PathName, NdBeg, NeBeg, IfgRC=0/1, DsLN, DsCV, x1, y1, R1, Ls11, ls12, x2, y2, R2, Ls21, lS22, X3, y3, R3, Ls31, Ls32, …
*BEAM, NdBeg, NeBeg, NSpan, P01+#1, a11*b11+a12*b12+...+a1n*b1n, P01+#2, a21*b21+a22*b22+...+a2n*b2n, P01+#n-1, ..., P01+#n
; 节点坐标 旋转, AngRotate 默认为 度
*ROTATE, ALL/NSEL, XY/YZ/XZ/, AngRotate, xBas, yBas
*SLOPE, ALL/NSEL, XY/YX/YZ/ZY/XZ/ZX, AngSlope, CenY
*SUB, SubFileName, Val1=A1, Val2=A2, Val3=A3, ... 执行子程序
; 程序语句
*INPUTBOX, PromptMsg, PreSettingStr, Var1, Var2, ... 第3项为默认数据
*REPEAT, NRpt, Add1[, Add2][, Add3][, ...]
*IF, Var1,EQ/NE/GE/GT/LE/LT, Var2, 赋值语句1(条件为真)[,赋值语句2(条件为假)]
*IF, Var1,EQ/NE/GE/GT/LE/LT, Var2, THEN, 赋值语句(条件为真)
*IF, Var1, EQ/NE/GE/GT/LE/LT, Var2, THEN ... *ELSE ... *ENDIF
*DO, VarI, VarBeg, VarEnd, VarAdd ... *EXITDO, Var1, EQ/NE/GE/GT/LE/LT, Var2 ... *IF, Var1, EQ/NE/GE/GT/LE/LT, Var2, THEN ... *ELSE ... *ENDIF ... *ENDDO
; 数学函数
ABS(x)、SIGN(x)
FIX(x)、INT(x)、Floor(x)、Round(x)
EXP(x)、SQR(x)、SQRT(x)
Log(x)、Log10(x)
COS(x)、SIN(x)、TAN(x)
ACOS(x)、ASIN(x)、ATN(x)、ATAN(x)
Cosh(x)、Sinh(x)、Tanh(x)
ACosh(x)、ASinh(x)、ATanh(x)
RND() 产生范围为 [0, 1.0] 的随机数
NODEX(N) 取节点 N 的 X 坐标
NODEY(N) 取节点 N 的 Y 坐标
NODEZ(N) 取节点 N 的 Z 坐标
NEARX( x ) 在选择集合中获取 距离 x 最近的节点号
NEARY( y ) 在选择集合中获取 距离 y 最近的节点号
NEARZ( z ) 在选择集合中获取 距离 z 最近的节点号
ELEM_1(N) 取单元 N 的第1个节点
ELEM_2(N) 取单元 N 的第2个节点
ELEM_3(N) 取单元 N 的第3个节点
ELEM_4(N) 取单元 N 的第4个节点
ELEM_5(N) 取单元 N 的第5个节点
ELEM_6(N) 取单元 N 的第6个节点
ELEM_7(N) 取单元 N 的第7个节点
ELEM_8(N) 取单元 N 的第8个节点
*ACADSCR/*ACAD, FNSCR, HTXT
*NLIST
*ELIST
*NSAVE, SaveDataFileName[, SEL/NSEL]
*ESAVE, SaveDataFileName[, SEL/ESEL]
;从文件中读取 部分节点 坐标数据
; 如果 NdBeg = -1, 则按 实际节点号 读取, 如果 NdBeg = 0, 则从当前最大节点号开始; 如果 NdBeg >= 1, 则从 NdBeg 开始读取
*NREAD, DataFileName[, KeyWord[, NdBeg[, NdCol[, xNCol[, yNCol[, zNCol]]]]]]
; 从文件中读取 部分节点 坐标数据
; 如果 NeBeg = -1, 则按 实际单元号 读取, 如果 NeBeg = 0, 则从当前最大单元号开始; 如果 NeBeg >= 1, 则从 NeBeg 开始读取
*EREAD, DataFileName[, ElemName[, KeyWord[, NeBeg[, NeCol[, K1, K2, K3, K4, K5, K6, K7, K8]]]]]
*MSGBOX, ON/OFF/YES/NO/TRUE/FALSE/1/0
*MSGBOX, Prompt1, Prompt2, Prompt3, Prompt4, ...
*VARLIST
; 文件操作
*GETSAVEFN/*GETSAVEFILENAME, FileName, PromptMsg
*GETOPENFN/*GETOPENFILENAME, FileName, PromptMsg
*OPEN, FileName[, Read/Write/Append]
*CLOSE, R/W/A or READ/WRITE/APPEND
*READ, Var1[, Var2[, Var3, …]]]
*READLINE/*READLN, VarCC
*WRITE/*WRITELN[, Var1[, Var2[, Var3, … ]]]
*APPEND/* APPENDLN[, Var1[, Var2[,Var3, … ]]]
*GET, Var, NODE/ELEM, X/Y/Z/F/1-8/MAT/TYPE/SECT/THICK, Nd
*EXIT/*ENDDATA
[ 本帖最后由 liwto 于 2011-11-21 15:48 编辑 ]