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

[二次开发] 照着《Python语言在Abaqus中的应用》练习的一个实例提示错误

[复制链接]
发表于 2016-11-10 12:58:42 | 显示全部楼层 |阅读模式 来自 河南郑州
本帖最后由 cs1a2wer3tte 于 2016-11-10 13:34 编辑

求高手看看这是怎么回事?
错误提示在图片上用的是pycharm编辑器
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. ---文件名:A-PART.py
  5. ---功能:创建三维变形体A形部件,划分单元网格后在视口中显示阴影图
  6. '''
  7. #导入模块
  8. from abaqus import *                         #导入abaqus模块中的所有对象
  9. from abaqusConstants import *                #导入符号常数模块
  10. from caeModules import *                     #导入caeModules模块中的所有对象
  11. #创建模型数据库
  12. Mdb()
  13. myModel = mdb.Model(name='Model A')
  14. #绘制草图
  15. mySketch = myModel.ConstrainedSketch(name='Sketch A', sheetSize=200.0)
  16. #创建A形部件内部控制点坐标和外部控制点坐标
  17. xyCoordsInner = ((-5, 20), (5, 20), (15, 0), (-15, 0), (-5, 20))
  18. xyCoordsOuter = ((-10, 30), (10, 30), (40, -30), (30, -30), (20, -10), (-20, -10),
  19.                                  (-30, 30), (-40, -30), (-10, 30))
  20. #使用for...in循环连线绘图
  21. for i in range(len(xyCoordsInner) - 1):
  22.         mySketch.Line(point1=xyCoordsInner[i], point2=xyCoordsInner[i+1])
  23. for i in range(len(xyCoordsOuter) - 1):
  24.         mySketch.Line(point1=xyCoordsOuter[i], point2=xyCoordsOuter[i+1])
  25. #创建part
  26. myPart = myModel.Part(name='Part A', dimensionality=THREE_D, type=DEFORMABLE_BODY)
  27. #拉伸创建part
  28. myPart.BaseSolidExtrude(sketch=mySketch, depth=20.0)
  29. #创建装配体
  30. myAssembly = myModel.rootAssembly
  31. myInstance = myAssembly.Instance(name='Part A-1', part=myPart, dependent= OFF)
  32. #设置网格种子
  33. partInstances = (myInstance, )
  34. myAssembly.seedPartInstance(regions=partInstances, size=5.0)
  35. #生成网格
  36. myAssembly.generateMesh(region=partInstances)
  37. #创建新视口
  38. myViewport = session.Viewport(name='Viewport for Model A', origin=(20, 20), width=150, height=100)
  39. myViewport.assemblyDisplay.setValues(renderStyle=SHADED, mesh=ON)
  40. myViewport.setValues(displayedObject=myAssembly)
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2016-11-10 19:41:25 | 显示全部楼层 来自 安徽铜陵
Simdroid开发平台
本帖最后由 sxbmm 于 2016-11-10 19:46 编辑

你是第18行的INDENTATION 有错误 空了太多的空格了
另外你36行region应该是 regions


02.zip 是我把你的程序和书上的程序做的对比  对比一下 18行 和36行 你就可以看到了文件大了 只能压缩之后传了 造成不便 不好意思啊
我在我的电脑上把这两个改了就可以运行了 你试试看吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-11 14:38:38 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-10 19:41
你是第18行的INDENTATION 有错误 空了太多的空格了
另外你36行region应该是 regions

谢谢你的回答。
你说的第一个问题我觉得不是错误,因为有左右括号,应该能识别是同一行代码
第二个问题确实是比较难发现


最后还是运行不了,我用的是abaqus2016, ide用的是python3.4的,不知道是不是因为这个原因,但是其他的脚本我用这个运行是成功的
回复 不支持

使用道具 举报

发表于 2016-11-11 15:08:08 | 显示全部楼层 来自 安徽铜陵
本帖最后由 sxbmm 于 2016-11-11 15:22 编辑
cs1a2wer3tte 发表于 2016-11-11 14:38
谢谢你的回答。
你说的第一个问题我觉得不是错误,因为有左右括号,应该能识别是同一行代码
第二个问题确 ...

第一个问题:python 用INDENTATION(简单理解就是空格的数量  你用的那本书里第一章PYTHON语言基础里面有讲到过 可以回去再看一下 )来定义程序块 不像C 用{} ,所以如果空格数量不对的话 是有问题的

我用的是ABAQUS6.14  我个人觉得问题出在第18行 (我说的18行 是包括整个那一句程序语句 并不仅仅是18行 更确切一点说是19行前面的空格数量可能有错误)
有一个方法可以试验是不是出在18行:
你把书里附的例子的同样的行 COPY到你的程序的同样的位置 看看能不能运行 如果通过了那多半就是18行的问题了
第二个问题: 你的程序第一个问题解决之后 ABAQUS 会提示你36行有问题的 这个你不用太担心说不好找到

我个人的一点建议 希望对你有帮助
谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-11 15:41:12 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-11 15:08
第一个问题:python 用INDENTATION(简单理解就是空格的数量  你用的那本书里第一章PYTHON语言基础里面有 ...

第一个问题:我之所以会这么说是因为我把其他脚本改成一样多的空格或者直接顶头写都能成功运行,
python的核心思想是缩进,为了区别一个函数的作用范围,等同于C语言花括号的作用。我想你可能是理解错了,你看看书上第二十八页第一条提示
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-11 15:44:50 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-11 15:08
第一个问题:python 用INDENTATION(简单理解就是空格的数量  你用的那本书里第一章PYTHON语言基础里面有 ...

下面这两个,很多空格和顶格,在abaqus上都能运行
  1. #!/usr/bin/env python3  
  2. # -*- coding: utf-8 -*-
  3. from abaqus import *
  4. from abaqusConstants import *
  5. reply = getWarningReply(message = 'Would you like to close the windows',
  6. buttons = (YES, NO))
  7. if reply == YES:
  8.         print('clicked YES')
  9. elif reply == NO:
  10.         print('clicked NO')
复制代码

  1. #!/usr/bin/env python3  
  2. # -*- coding: utf-8 -*-
  3. from abaqus import *
  4. from abaqusConstants import *
  5. reply = getWarningReply(message = 'Would you like to close the windows',
  6.                                                 buttons = (YES, NO))
  7. if reply == YES:
  8.         print('clicked YES')
  9. elif reply == NO:
  10.         print('clicked NO')
复制代码

回复 不支持

使用道具 举报

发表于 2016-11-11 15:45:15 | 显示全部楼层 来自 安徽铜陵
cs1a2wer3tte 发表于 2016-11-11 15:41
第一个问题:我之所以会这么说是因为我把其他脚本改成一样多的空格或者直接顶头写都能成功运行,
python ...

喔 哈哈 那是我搞错了 运行成功就好
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-11 15:47:08 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-11 15:45
喔 哈哈 那是我搞错了 运行成功就好

没有啊,这个程序还是没成功,仍然提示拉伸失败
回复 不支持

使用道具 举报

发表于 2016-11-11 15:48:30 | 显示全部楼层 来自 安徽铜陵
cs1a2wer3tte 发表于 2016-11-11 15:47
没有啊,这个程序还是没成功,仍然提示拉伸失败

我给你的那个方法你试了没
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-15 15:49:17 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-11 15:48
我给你的那个方法你试了没

都试过了,不行
回复 不支持

使用道具 举报

发表于 2016-11-15 16:06:32 | 显示全部楼层 来自 安徽铜陵

喔 这样啊 我这几天可能没什么时间看你的程序了 不过我会尽快抽时间看的 不好意思 没能帮忙到你
回复 不支持

使用道具 举报

 楼主| 发表于 2016-11-15 16:49:52 | 显示全部楼层 来自 河南郑州
sxbmm 发表于 2016-11-15 16:06
喔 这样啊 我这几天可能没什么时间看你的程序了 不过我会尽快抽时间看的 不好意思 没能帮忙到你 ...

好的,多谢。
我想问下你用的是什么编译器,我用的pycharm,但是打开书上的源码中文老是乱码
回复 不支持

使用道具 举报

发表于 2016-11-15 17:06:44 | 显示全部楼层 来自 安徽铜陵
cs1a2wer3tte 发表于 2016-11-15 16:49
好的,多谢。
我想问下你用的是什么编译器,我用的pycharm,但是打开书上的源码中文老是乱码 ...

我用的是EDITPLUS
回复 不支持

使用道具 举报

发表于 2016-11-15 17:08:05 | 显示全部楼层 来自 安徽铜陵

你在你程序的开头要加
#!/user/bin/python
# -* - coding:UTF-8 -*-
回复 不支持

使用道具 举报

发表于 2016-11-15 17:09:33 | 显示全部楼层 来自 安徽铜陵
sxbmm 发表于 2016-11-15 17:08
你在你程序的开头要加
#!/user/bin/python
# -* - coding:UTF-8 -*-

这样可以保证注释的中文不会变成乱码 至于程序里的中文 我一般就全部换成英文了 没办法谁让这些编程语言都是说英语的人写的呢 哎
回复 不支持

使用道具 举报

发表于 2016-11-15 17:32:37 | 显示全部楼层 来自 甘肃兰州
你代码中的坐标错了,这个可以查看草图的,
xyCoordsOuter = ((-10, 30), (10, 30), (40, -30), (30, -30), (20, -10), (-20, -10),
                                 (-30, 30), (-40, -30), (-10, 30))
下面一行应该为第一个坐标应为 (-30, -30)
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 18:06 , Processed in 0.039054 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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