找回密码
 注册
Simdroid-非首页
查看: 74|回复: 9

[建模和网格划分] 怎样用命令流建边数大于4的面,急!!!

[复制链接]
发表于 2012-4-28 09:55:23 | 显示全部楼层 |阅读模式 来自 武汉大学
RT,我想用ansys命令流实现建面,但是有些面的边数大于4,用‘A’总是报错,有什么好的办法没??求指导,急!!!
发表于 2012-4-28 11:10:15 | 显示全部楼层 来自 欧洲
Simdroid开发平台
把形成面的线选出来,然后
al,all
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-28 11:25:31 | 显示全部楼层 来自 武汉大学
本帖最后由 kunpeng0920 于 2012-4-28 11:28 编辑
njweiwei2 发表于 2012-4-28 11:10
把形成面的线选出来,然后
al,all

      OPEN(13,FILE='2ANS.LOG')

        

        WRITE(13,*) "FINI"
        WRITE(13,*) "/CLEAR,START"
        WRITE(13,*) "/FILENAME,EXERCISE2"
        WRITE(13,*) "/TITLE,GENBLOCK"
        WRITE(13,*) "/PREP7"
        WRITE(13,*) "ET,1,SOLID45"
        WRITE(13,*) "MP,KXX,1,70"

        DO I=1,NP  !点数
                WRITE(13,111)(COP(I,J),J=1,3) !格式:K,点的坐标(X,Y,Z)
        END DO

        DO IEDGE=1,NEDGE !边数
        WRITE(13,112)(MEDGE(IEDGE,I),I=1,2)  !格式:LSTR,端点1,端点2
        END DO

      DO IPLAN=1,NPLAN !面数
        WRITE(13,*)'!',IPLAN !面编号
        IF(MPLAN1(IPLAN,1).GT.4)THEN
        PSTR=MPLAN1(IPLAN,3)
        IP1=MPLAN2(PSTR+1)
        IP2=MPLAN2(PSTR+2)
        
        V1=COP(IP2,1:3)-COP(IP1,1:3) !IP1到IP2的矢量
        DO IT=MPLAN1(IPLAN,3)+3,MPLAN1(IPLAN+1,3)-1
                IP3=MPLAN2(IT)
                V2=COP(IP3,1:3)-COP(IP1,1:3)  !IP1到IP3的矢量
                DU=DOT_PRODUCT(V1,V2) !V1和V2的点积
                DD=SQRT(SUM(V1**2))*SQRT(SUM(V2**2))
                ANGLE=DU/DD !矢量V1,V2的夹角
                IF(ANGLE.GE.1.0) THEN
                        ANGLE=0.0
                ELSE IF(ANGLE.LE.-1.0) THEN
                        ANGLE=180.0
                ELSE
                        ANGLE=ACOSD(ANGLE)
                END IF
                IF(ANGLE.GT.30) GOTO 40
        ENDDO

40        WRITE(13,*)"KWPLAN,-1,",IP1,",", IP2,",",IP3            
        WRITE(13,*)"CSWPLA,11,0,1,1,"
        WRITE(13,*)"CSYS,11,"
        ENDIF
        WRITE(13,113)MPLAN1(IPLAN,1),MPLAN1(IPLAN,1)
                DO IT=MPLAN1(IPLAN,3)+1,MPLAN1(IPLAN+1,3)-1
                        WRITE(13,114)MPLAN3(IT)
                ENDDO
                WRITE(13,115)
        IF(MPLAN1(IPLAN,1).GT.4)THEN
        WRITE(13,*)"CSYS,0"
        ENDIF
        ENDDO        

111        FORMAT("K, ,",3(F35.15,","))
112        FORMAT("LSTR,",2(I8,","))
113        FORMAT("FLST,2,",I5,",   4,   NOOR,", I5)
114        FORMAT("FITEM,2,",I8)
115        FORMAT("AL,P51X")

        CLOSE(13)
这是别人用fortran写的一段程序,因为点线面都是用程序生成的,运算过程中存在误差,造成导入ansys时出现点不在同一面上的情况,提示出错,这段程序有什么问题??
回复 不支持

使用道具 举报

发表于 2012-4-28 14:54:15 | 显示全部楼层 来自 欧洲
看着像是APDL。但是里面又有不少不是APDL的命令。请确认是否原文就是这样
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-28 15:16:52 | 显示全部楼层 来自 武汉大学
njweiwei2 发表于 2012-4-28 14:54
看着像是APDL。但是里面又有不少不是APDL的命令。请确认是否原文就是这样

原文就是这样,这确实是APDL里面的,我查了一下
回复 不支持

使用道具 举报

发表于 2012-4-28 16:03:13 | 显示全部楼层 来自 湖北武汉
kunpeng0920 发表于 2012-4-28 15:16
原文就是这样,这确实是APDL里面的,我查了一下

这个是fortran程序,不是APDL。
可能是有软件调用吧。
回复 不支持

使用道具 举报

发表于 2012-4-28 16:32:12 | 显示全部楼层 来自 欧洲
不会fortran,所以看不懂命令流了。如果是APDL的就好了
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-28 17:21:12 | 显示全部楼层 来自 武汉大学
senja 发表于 2012-4-28 16:03
这个是fortran程序,不是APDL。
可能是有软件调用吧。

嗯,是用fortran形成的命令流
回复 不支持

使用道具 举报

发表于 2012-4-28 18:21:57 | 显示全部楼层 来自 湖北武汉
kunpeng0920 发表于 2012-4-28 17:21
嗯,是用fortran形成的命令流

楼主怎么还不明白呢,fortran和APDL命令流不一样,fortran是通用编程语言,APDL命令流是ansys特有的软件自身的编程语句。
要么是调用,要么就用fortran运行。
ansys中使用APDL命令流,或者直接界面操作
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-29 09:42:10 | 显示全部楼层 来自 武汉大学
senja 发表于 2012-4-28 18:21
楼主怎么还不明白呢,fortran和APDL命令流不一样,fortran是通用编程语言,APDL命令流是ansys特有的软件 ...

可能误解我的意思了,我想表达的是这部分apdl命令流是用fortran编程输出来的,并不是在文件里面一个个直接敲出来的
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-21 22:18 , Processed in 0.044074 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表