24小时热门版块排行榜    

查看: 860  |  回复: 6
【悬赏金币】回答本帖问题,作者1216565504将赠送您 15 个金币
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

1216565504

铜虫 (正式写手)

[求助] 建模遇到的问题解决不了了,求助大佬们帮帮忙呀

我的模型是一个正方体内有许多球体,我想用vovlap命令进行搭接,但是里面的球体数量多了以后就会出现拓扑错误,让我修改几何形状或公差,我改了btol后还是不行。该怎么办呢?

建模遇到的问题解决不了了,求助大佬们帮帮忙呀


@wuming524 发自小木虫Android客户端
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1216565504

铜虫 (正式写手)

/clear
!****************************************************************************
!文件说明段
!****************************************************************************
/FILNAME,CM,1
/TITLE, Composite material
/REPLOT       
/units,si
!****************************************************************************
!设置材料属性
!****************************************************************************
/PREP7
ET,1,SOLID70
MP,KXX,1,0.27
MP,KXX,2,290
!****************************************************************************
!绘制分析模型
!****************************************************************************
XMAX=100
YMAX=100
ZMAX=100    !设定模型尺寸

*Create,dataread,mac  !创建宏文件,名为dataread,名称可更改
*dim,PC,array,96,4 !创建读入数据的数组
*vread,PC(1,1), G:\Matlab\data,txt,,jik,4,96 !读入文件data.txt的数据
(4f5.0)                                 !读入格式
*End                                 !结束宏文件的创建
Dataread                              !运行宏文件,读入颗粒坐标数据

*DO,I,1,96
!生成球体
WPOFFS,PC(I,1),PC(I,2),PC(I,3)
SPH4,0,0,PC(I,4)

*GET,VOLU_NUM,VOLU,0,COUNT
M= VOLU_NUM
WPROTA,30,
CSWPLA,11,1                 
CSYS,11
VGEN, ,M, , ,, 30, , , ,1

CSYS,0
WPCSYS,-1,0
*ENDDO
ALLS
VSUM,VOLUME
*GET,VOLUME_VOLU,VOLU,,VOLU
ALLS
VPLOT
BLOCK,0,XMAX,0,YMAX,0,ZMAX
!Vovlap,all
!/TRLCY,VOLU,1,74

!!!!!!!!!!!!!!!!!!!!!截掉体外面一部分的填充物!!!!!!!!!!!!!!!!
WPOFFS,0
WPROTA,,,90
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,XMAX
WPROTA,,,90
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0                        !使工作平面位置与当前坐标系平面一致

WPOFFS,,0
WPROTA,,90,
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,YMAX
WPROTA,,90,
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,,ZMAX
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,,0
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

!反选删掉四周的体
VSEL,U,LOC,X,0,XMAX
VDELE,ALL,,,1
ALLS
VSEL,U,LOC,Y,0,YMAX
VDELE,ALL,,,1
ALLS
VSEL,U,LOC,Z,0,ZMAX
VDELE,ALL,,,1
ALLS
VPLOT
这是第二种常出错的方法。思路是先用matlab算了球体的坐标和半径参数,读入到APDL中建模。
5楼2022-01-12 17:09:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

AUG突击

新虫 (正式写手)

2楼2022-01-12 16:49:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1216565504

铜虫 (正式写手)

引用回帖:
2楼: Originally posted by AUG突击 at 2022-01-12 16:49:14
试试分多次操作

好主意!我试试一个个搭接看看哪里出问题了
3楼2022-01-12 17:06:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1216565504

铜虫 (正式写手)

另外奇怪的一点是,我用另外一种算法建模出现这个问题的概率很小。对比两种方法没找到区别。希望大佬们帮我看一下。
/clear
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
XMAX=100
YMAX=100
ZMAX=100    !设定模型尺寸
RMIN=10
RMAX=10     !设定球形半径
/PREP7
NUM_TOTAL=100    !设定球个数
*DO,I,1,1000000
LOC_X=RAND(-XMAX/2,XMAX/2)
LOC_Y=RAND(-YMAX/2,YMAX/2)
LOC_Z=RAND(-ZMAX/2,ZMAX/2)
RADIUS=RAND(RMIN,RMAX)
!生成球体
WPOFFS,LOC_X,LOC_Y,LOC_Z
SPH4,0,0, RADIUS
*GET,VOLU_NUM,VOLU,0,COUNT
M= VOLU_NUM

WPROTA,30,
CSWPLA,11,1
CSYS,11
VGEN, ,M, , ,, 30, , , ,1

CSYS,0
WPCSYS,-1,0
!通过布尔运算判断球是否相交
*IF,M,GT,1,THEN            
                *DO,J,1,M-1
BOPTN,KEEP,1
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBV,J,M
*GET,VOLU_NUM,VOLU,0,COUNT
*IF,VOLU_NUM,GT,M,THEN
VDELE,M,M+1,1,1
NUMCMP,VOLU
*EXIT
                        *ENDIF
*ENDDO
*ENDIF
*GET,VOLU_NUM,VOLU,0,COUNT
M= VOLU_NUM
!判断数目如果达到一定数目停止循环
*IF,M,GT,NUM_TOTAL,THEN
*EXIT
*ENDIF
*ENDDO
BLOCK,-XMAX/2,XMAX/2,-YMAX/2,YMAX/2,-ZMAX/2,ZMAX/2,
/TRLCY,VOLU,0.5,     M+1
/REPLOT


!!!!!!!!!!!!!!!!!!!!!截掉体外面一部分的填充物!!!!!!!!!!!!!!!!
WPOFFS,-XMAX/2
WPROTA,,,90
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,XMAX/2
WPROTA,,,90
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,YMAX/2
WPROTA,,90,
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,-YMAX/2
WPROTA,,90,
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,,ZMAX/2
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

WPOFFS,,,-ZMAX/2
BOPTN,KEEP,0          !不保留原体
BOPTN,NWARN,1   
BOPTN,VERS,RV52
BTOL,1e-005,
VSBW,ALL
CSYS,0
WPCSYS,-1,0

!反选删掉四周的体
VSEL,U,LOC,X,-XMAX/2,XMAX/2
VDELE,ALL,,,1
ALLS
VSEL,U,LOC,Y,-YMAX/2,YMAX/2
VDELE,ALL,,,1
ALLS
VSEL,U,LOC,Z,-ZMAX/2,ZMAX/2
VDELE,ALL,,,1
ALLS
VPLOT
NUMCMP,VOLU
NUMCMP,KP
NUMCMP,LINE
NUMCMP,AREA

这是第一种出现错误较少的方法
4楼2022-01-12 17:08:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见