在 ANSYS APDL(ANSYS Parametric Design Language)中,输出数组参数主要通过以下几种方式实现,具体选择取决于数组规模、格式需求和使用场景。
常用命令与方法
*VWRITE:适用于小规模数据或需精细控制格式的场景,一次最多输出19个参数。
*MWRITE:适合大规模数组(如矩阵)的批量输出,支持按行或按列顺序导出。
*DMAT + *EXPORT:适用于大型数组(如维度 >10000),效率高且避免格式烦恼,推荐用于现代 ANSYS 版本
1. 使用 *VWRITE 输出数组(适合小数组)
适用于需自定义输出格式、混合标量与数组元素的情况。
apdl
*CFOPEN, 'output', 'txt' ! 打开文件
*VWRITE, 'Node', 'Temp' ! 标题行
*VWRITE, (A6, F10.2) ! 格式说明
*DO, i, 1, 5 ! 假设输出前5个节点温度
*VWRITE, i, Temp(i) ! 输出节点号和温度
*VWRITE, (F6.0, F10.2)
*ENDDO
*CFCLOS ! 关闭文件
⚠️ 注意:*VWRITE 必须在宏(.mac)中执行,不能直接在命令行输入
2. 使用 *MWRITE 输出大型数组(推荐用于矩阵)
按指定顺序(列优先或行优先)批量导出整个数组。
apdl
*DIM, stress, , 5, 3 ! 定义 5×3 数组
*DO, i, 1,
*DO, j, 1,
stress(i,j) = i + j*0.
*ENDDO
*ENDDO
*MWRITE, stress, 'stress_data', 'dat', , JIK, 5, 3 ! 按行优先导出
(2F10.4) ! 格式:每行2个浮点数,宽10位,4位小数
Label=JIK:行优先(C/Python 风格)
Label=IJK(默认):列优先(Fortran/MATLAB 风格)
3. 使用 *DMAT + *EXPORT 处理超大数组(推荐用于 ≥10000 元素)
高效处理大型数组,避免 *VWRITE/*MWRITE 的性能瓶颈
apdl
*DIM, AA, , 10000, 10 ! 创建 10000×10 数组
! ... 填充数据 ...
*DMAT, AA_Mat, D, IMPORT, APDL, AA ! 转为矩阵对象
*EXPORT, AA_Mat, CSV, MyTest ! 导出为 CSV 文件
生成的文件 MyTest 需手动添加 .csv 后缀,可用 Excel、MATLAB 或 Python 直接读取
关键注意事项
文件路径:避免中文或特殊字符,使用英文路径并加引号(如 'D:\MyData\result.txt')
格式控制:使用 FORTRAN 风格格式符,如 F10.3(浮点)、I8(整数)、A15(字符串)
文件操作闭环:必须配对使用 *CFOPEN 和 *CFCLOS,否则数据可能未写入磁盘
宏执行要求:所有涉及 I/O 的命令(*VWRITE, *MWRITE, *CFOPEN)必须封装在宏中执行
推荐实践流程
定义数组:使用 *DIM 定义数值型、字符型或表格型数组
填充数据:通过循环、*GET 或计算赋值。
选择输出方式:小数组(<1000 元素)→ *VWRITE
中大型矩阵(≥1000 元素)→ *MWRITE
超大数组(≥10000 元素)→ *DMAT + *EXPORT
验证输出:用外部工具(如 Excel、Notepad++)检查文件内容是否正确
如需完整示例代码,可参考 CSDN ANSYS APDL 数据导出实战
武汉格发信息技术有限公司 | 许可分析,许可优化,许可管理,许可授权,软件授权