ANSYS Mechanical APDL节点坐标导出至Excel问题及管道腐蚀模拟需求
含全面腐蚀管道爆破压力分析的ANSYS建模问题
正在开展含全面腐蚀管道的爆破压力影响研究,建模方案为:生成管道几何模型并划分网格,导出节点坐标至Excel/TXT文件,修改外侧节点径向坐标以模拟随机全面腐蚀,再通过NMODIF命令修改节点坐标。当前使用*VWRITE命令导出时,生成的Excel文件数据量远超预期,且出现一系列警告/错误。
ANSYS命令流
FINISH /CLEAR, START /PREP7 /VIEW, 1, 1, 2, 3 /ANG, 1 /REP, FAST ET, 1, SOLID185 !-----------------------------------------! !----------PARAMETERS DEFINITION----------! !----------------------------------------- *SET, E, 2.09322E11 *SET, PR, 0.3 *SET, DENSITY, 7850 *SET, R, 42.06/2/1000 *SET, s, 420/1000 *SET, t, 2.76/1000 *SET, arc1, 10 *SET, l1, 5 *SET, r1, 1 !--------------------------------------------------! !----------MATERIAL PROPERTIES DEFINITION----------! !-------------------------------------------------- MPTEMP, , , , , , , , MPTEMP, 1, 0 MPDATA, EX, 1, , E MPDATA, PRXY, 1, , PR TB, MISO, 1, 1, 60, 0 TBTEMP, 0 TBPT, , 264000000.000/E, 264000000.000 TBPT, , 0.0110, 264307757.463 TBPT, , 0.0120, 266504626.867 TBPT, , 0.0130, 268834065.978 TBPT, , 0.0140, 269364344.799 TBPT, , 0.0150, 271087750.970 TBPT, , 0.0160, 273758083.609 TBPT, , 0.0170, 276466293.306 TBPT, , 0.0180, 279950982.707 TBPT, , 0.0190, 283683965.696 TBPT, , 0.0200, 287337083.014 TBPT, , 0.0210, 290368921.876 TBPT, , 0.0220, 293810804.519 TBPT, , 0.0230, 296295918.340 TBPT, , 0.0240, 298892862.284 TBPT, , 0.0250, 301638913.056 TBPT, , 0.0260, 304931688.870 TBPT, , 0.0270, 306919779.927 TBPT, , 0.0280, 309628553.992 TBPT, , 0.0290, 311653921.757 TBPT, , 0.0300, 314114184.440 TBPT, , 0.0310, 316301084.603 TBPT, , 0.0320, 318587389.318 TBPT, , 0.0330, 320438799.115 TBPT, , 0.0340, 322228081.067 TBPT, , 0.0350, 324191320.986 TBPT, , 0.0360, 325819070.539 TBPT, , 0.0370, 327720182.612 TBPT, , 0.0380, 329745550.377 TBPT, , 0.0390, 331584534.605 TBPT, , 0.0400, 332963772.775 TBPT, , 0.0410, 334740629.158 TBPT, , 0.0420, 336052272.336 TBPT, , 0.0430, 337763888.357 TBPT, , 0.0440, 339186669.175 TBPT, , 0.0450, 340748518.794 TBPT, , 0.0460, 342102481.229 TBPT, , 0.0470, 343300886.365 TBPT, , 0.0480, 345045503.365 TBPT, , 0.0490, 346406956.819 TBPT, , 0.0500, 347765062.623 TBPT, , 0.0625, 360951890.467 TBPT, , 0.0750, 370351012.442 TBPT, , 0.0875, 377271758.970 TBPT, , 0.1000, 382345414.364 TBPT, , 0.1125, 386016215.732 TBPT, , 0.1250, 388751781.083 TBPT, , 0.1375, 390669014.918 TBPT, , 0.1500, 392212154.347 TBPT, , 0.1625, 393007104.962 TBPT, , 0.1750, 393544865.672 MPTEMP, , , , , , , , MPTEMP, 1, 0 MPDATA, DENS, 1, , DENSITY !---------------------------------------! !----------GEOMETRY MODULATION----------! !--------------------------------------- CYL4, , , R, 0, R-t, 180, s CYL4, , , R, 180, R-t, 360, s VGEN, ,ALL, , , , ,-s/2, , ,1 !-----------------------------------------------------------! !----------LINE DIVISION (PREPARATION FOR MESHING)----------! !----------------------------------------------------------- CSYS, 1 LPLOT !----------END FACES LINES----------! CM, _Y, LINE LSEL, S, LOC, Z, s/2 LSEL, A, LOC, Z, -s/2 LSEL, R, LOC, Y, 1, 180-1 CM, _Y1, LINE CMSEL, , _Y LESIZE, _Y1, , , arc1, , , , , 1 CM, _Y, LINE LSEL, S, LOC, Z, s/2 LSEL, A, LOC, Z, -s/2 LSEL, R, LOC, Y, 180+1, 360-1 CM, _Y1, LINE CMSEL, , _Y LESIZE, _Y1, , , arc1, , , , , 1 CM, _Y, LINE LSEL, S, LOC, Z, s/2 LSEL, A, LOC, Z, -s/2 LSEL, R, LOC, Y, 0 CM, _Y1, LINE CMSEL, , _Y LESIZE, _Y1, , , r1, , , , , 1 CM, _Y, LINE LSEL, S, LOC, Z, s/2 LSEL, A, LOC, Z, -s/2 LSEL, R, LOC, Y, 180 CM, _Y1, LINE CMSEL, , _Y LESIZE, _Y1, , , r1, , , , , 1 !----------LONGITUDINAL LINES----------! CM, _Y, LINE LSEL, S, LOC, Z, -s/2+1E-6, s/2-1E-6 CM, _Y1, LINE CMSEL, , _Y LESIZE, _Y1, , , l1, , , , , 1 !---------------------------! !----------MESHING----------! !--------------------------- /UI, MESH, OFF CM, _Y, VOLU CM, _Y1, VOLU CHKMSH, 'VOLU' CMSEL, S, _Y VSWEEP, _Y1 CMDELE, _Y CMDELE, _Y1 CMDELE, _Y2 ALLSEL, ALL /REPLOT !---------------------------! !------MESH DETACHMENT------! !--------------------------- MODMSH,DETACH ALLSEL, ALL *GET, N_COUNT, NODE, 0, COUNT *DIM, NODES, ARRAY, N_COUNT, 4 *VGET, NODES(1,1), NODE, , NLIST *DO, I, 1, N_COUNT NID = NODES(I,1) *GET, XN, NODE, NID, LOC, X *GET, YN, NODE, NID, LOC, Y *GET, ZN, NODE, NID, LOC, Z NODES(I,2) = XN NODES(I,3) = YN NODES(I,4) = ZN *ENDDO *CFOPEN, node_coordinates, csv *VWRITE ('Node_ID,X[m],Y[m],Z[m]') (A8,A1,A10,A1,A10,A1,A10) *DO, I, 1, N_COUNT *VWRITE, NODES(I,1), NODES(I,2), NODES(I,3), NODES(I,4) (I8, ',', F15.5, ',', F15.5, ',', F15.5) *ENDDO *CFCLSE
警告/错误信息(翻译后)
- *** 警告 *** CP = 33.547 TIME= 01:36:42
形状检测显示100个新生成或修改的单元违反形状警告限制,如需查看检测结果,请查看输出文件或执行CHECK命令。 - *** 警告 *** CP = 35.188 TIME= 01:36:57
在图形用户界面中,*VWRITE命令仅能从外部文件(如/INPUT或*USE)执行,该命令已被忽略。 - *** 警告 *** CP = 35.219 TIME= 01:36:57
NODE_ID,不是可识别的PREP7命令、缩写或宏,该命令将被忽略。 - *** 警告 *** CP = 35.219 TIME= 01:36:58
(A8,A1,A不是可识别的PREP7命令、缩写或宏,该命令将被忽略。 - *** 警告 *** CP = 35.219 TIME= 01:36:58
在图形用户界面中,*VWRITE命令仅能从外部文件(如/INPUT或*USE)执行,该命令已被忽略。 - *** 警告 *** CP = 35.219 TIME= 01:36:58
格式错误,数据格式说明符不足。 - *** 警告 *** CP = 35.234 TIME= 01:36:58
(I8,',',不是可识别的PREP7命令、缩写或宏,该命令将被忽略。
问题修正建议
1. 解决*VWRITE执行限制
ANSYS GUI环境不支持直接运行*VWRITE,需将命令流保存为.txt或.mac文件,通过/INPUT命令导入执行:
/INPUT, your_command_file.txt, txt
2. 修正*VWRITE格式语法错误
原代码中*VWRITE的格式定义与数据输出逻辑不匹配,修正后的导出代码如下:
*CFOPEN, node_coordinates, csv ! 写入表头,直接用字符串输出格式 *VWRITE (1X, 'Node_ID,X[m],Y[m],Z[m]') ! 批量写入节点数据,无需DO循环(*VWRITE支持数组批量输出) *VWRITE, NODES(1,1), NODES(1,2), NODES(1,3), NODES(1,4) (I8, ',', F15.5, ',', F15.5, ',', F15.5) *CFCLSE
注:*VWRITE可直接遍历数组,无需手动*DO循环,既简化代码又避免循环带来的性能问题。
3. 减少导出数据量
仅选择外侧节点(径向坐标等于管道外径R的节点)导出,避免导出所有节点:
ALLSEL, ALL ! 筛选外侧节点(添加容差避免浮点误差) NSEL, S, LOC, X, R-1E-6, R+1E-6 *GET, N_COUNT, NODE, 0, COUNT *DIM, NODES, ARRAY, N_COUNT, 4 *VGET, NODES(1,1), NODE, , NLIST *DO, I, 1, N_COUNT NID = NODES(I,1) *GET, XN, NODE, NID, LOC, X *GET, YN, NODE, NID, LOC, Y *GET, ZN, NODE, NID, LOC, Z NODES(I,2) = XN NODES(I,3) = YN NODES(I,4) = ZN *ENDDO
4. 解决单元形状警告
执行CHECK命令查看具体单元的形状缺陷,调整网格划分参数:
- 优化
LESIZE命令的单元尺寸,增加关键区域的网格密度 - 使用
SMRTSIZE, 5(中等网格质量)命令自动优化网格 - 检查几何模型是否存在微小面或边,提前清理几何缺陷
内容的提问来源于stack exchange,提问作者Vasco Nuno Pereira Moura




