[toc]
---
**关键命令**:
- INQUIRE
- *VREAD
- LSEL
- LESIZE
- LMESH
- NODE
# 1. 问题描述
预期通过几何建模的方式建立如下的简单桁架模型:
![mark](http://ohg8hplbf.qnssl.com/blog/20170120/152245788.png)
# 2. 技术背景
本例中的坐标数据通过读取txt数据文件导入:
![mark](http://ohg8hplbf.qnssl.com/blog/20170120/152721364.png)
数据格式如:
```
0.0 0.0
6.0 0.0
12.0 0.0
18.0 0.0
24.0 0.0
6.0 8.0
12.0 8.0
18.0 8.0
```
# 3. 解决方案
本例的技术要点包括:
- 数据文件读取(坐标、定位编号)
- 截面参数设置
- 元素选择
- 有限元网格划分
- 结点编号提取
# 4. 实施示例
## 初始化
```
FINI
/CLEAR
/FILNAME,TRUSS,1 ! 定义工作标题
/TITLE,PRACTICE OF GEOMETRY MODELLING
```
## 数据读取
```
!------------------------------数据读取-------------------------------
/PREP7
/INQUIRE,N_KP,LINES,b01_KP,TXT ! 读取KP坐标
*DIM,XY_KP,,N_KP,2
*VREAD,XY_KP(1,1),b01_KP,TXT,,JIK,2,N_KP
(2F5.0)
/INQUIRE,N_L,LINES,b01_L,TXT ! KP组合
*DIM,KP_PAIRS,,N_L,2
*VREAD,KP_PAIRS(1,1),b01_L,TXT,,JIK,2,N_L
(2F5.0)
```
读取外部文件中的坐标数据:
- 获取文件的数据行数
```
/INQUIRE,N_KP,LINES,b01_KP,TXT
```
- 读取数据到内部变量
```
*DIM,...
*VREAD,...
(2F5.0)
```
## 几何建模
```
!------------------------------节点, 线段-------------------------------
*DO,ILOOP,1,N_KP ! 建立KP
K,ILOOP,XY_KP(ILOOP,1),XY_KP(ILOOP,2)
*ENDDO
*DO,ILOOP,1,N_L ! 建立LINE
L,KP_PAIRS(ILOOP,1),KP_PAIRS(ILOOP,2)
*ENDDO
```
- 建立kp
![mark](http://ohg8hplbf.qnssl.com/blog/20170120/153308069.png)
- 连接line
![mark](http://ohg8hplbf.qnssl.com/blog/20170120/153341802.png)
## 单元材料设置
```
ET,1,LINK180 ! cable element
SECTYPE,1,LINK
SECDATA,0.01
SECTYPE,2,LINK
SECDATA,0.02
SECTYPE,3,LINK
SECDATA,0.03
MP,EX,1,2.1E11
MP,PRXY,1,0.3
```
- 单元类型为LINK180
- 利用`SECDATA`设置杆件截面参数
## 几何模型特性设置
```
!------------------------------有限元网格划分-------------------------------
!LATT, MAT, REAL, TYPE, --, KB, KE, SECNUM
LSEL,S,TAN1,Y ! 选择水平杆件, 垂直于Y
LATT,1,,1,,,,1 ! LATT,MAT,,TYPE,,,,SECNUM
LPLOT
LSEL,S,LOC,X,6,18 ! 选择腹杆
LSEL,R,LOC,Y,1,7
LATT,1,,1,,,,2 ! SECNUM 3
LSEL,S,LOC,Y,1,7 ! 选择腹杆
LSEL,U,LOC,X,6,18 ! 去除内腹杆, 选择边杆
LATT,1,,1,,,,3
LSEL,ALL
/PNUM,LINE,1
/PNUM,KP,1
LPLOT
```
- 分别选择水平杆、腹杆、竖杆,赋予特性;
- 通过几何位置选择特性的line
## 网格划分
```
!------------------------------网格单元-------------------------------
! LESIZE, NL1, SIZE, ANGSIZ, NDIV, SPACE, KFORC, LAYER1, LAYER2, KYNDIV
LSEL,S,TAN1,Y ! 水平竖直杆件选择集
LSEL,A,TAN1,X ! 增加垂直杆件, ADD TO CURRENT SET
LESIZE,ALL,1 ! SIZE = 1
LSEL,S,LOC,Y,1,7 ! 斜杆选择集
LSEL,U,TAN1,X ! 除去竖杆
LESIZE,ALL,,,3 ! NDIV = 3
LSEL,ALL ! 全选, 划分网格
LMESH,ALL ! GENERATES NODES AND LINE ELEMENTS ALONG LINES.
LPLOT
```
网格划分两种基本方式:
- 段数
- 每一段的长度
## node编号提取
```
!------------------------------获取NODE-------------------------------
! NODE(X,Y,Z)
*DIM,NODE_KP,,N_KP,2 ! 获取KP对应的NODE编号
*DO,ILOOP,1,N_KP ! 第一列为序号, 第2列为NODE编号
NODE_KP(ILOOP,1) = ILOOP
X = XY_KP(ILOOP,1)
Y = XY_KP(ILOOP,2)
NODE_KP(ILOOP,2) = NODE(X,Y,0)
*ENDDO
```
网格划分后,模型的单元号难以直接确定,通过`node`命令,根据坐标提取相应的node编号。
# 5. 常见问题
程序下载:https://coding.net/u/frank0449/p/ANSYS/git/tree/master/1605_toolBox/b001
> 本文用时 30 m