本书是作者结合自己多年Abaqus 使用经验,在汲取国内外大量资料的基础上编写的一本Python 二次开发知识点笔记。内容涉及开发环境的搭建、Python 基础语法知识、Abaqus Python API 讲解,并以实例展示的方式详细阐明了二次开发的流程和方法。本书可以帮助正在使用Abaqus 进行仿真分析工作的工程师或者科研人员学习Abaqus Python 二次开发方法,同时对熟悉Abaqus 二次开发流程的读者也有一定的借鉴价值。
及时部分 引言
第1章 Abaqus二次开发简介 12
1.1 为什么是Python 12
1.2 Python、FORTRAN与Abaqus 13
1.3 基于Python二次开发 14
第2章 Python能力确认 17
2.1 测试程序 17
2.2 程序运行结果 22
第3章 脚本的运行与开发环境 23
3.1 Abaqus中脚本的运行 23
3.1.1 命令区KCLI(Kernel Command Line Interface) 23
3.1.2 CAE-Run Script 24
3.1.3 Abaqus Command 24
3.1.4 Abaqus PDE 25
3.2 选择自己的Python开发环境 26
3.2.1 Abaqus PDE 26
3.2.2 IDLE 27
3.2.3 Notepad 28
3.2.4 EditPlus 29
3.2.5 选择合适的编程环境 32
第二部分 Python基础
第4章 Python数据类型与操作符 34
4.1 基本数据类型 34
4.2 列表、元组和字符串 36
4.2.1 列表(list) 36
4.2.2 元组(tuple) 38
4.2.3 字符串(str) 40
4.2.4 列表、元组和字符串的关系 42
4.3 字典 43
4.4 集合 45
4.5 操作符 46
4.5.1 赋值操作符 46
4.5.2 数字类型的操作符 46
4.5.3 序列类型的操作符 48
4.5.4 字典和集合的操作符 50
第5章 表达式和流程控制 51
5.1 表达式和程序执行流程 51
5.2 分支语句if-else 52
5.3 循环语句 54
5.3.1 while循环语句 54
5.3.2 for循环语句 55
5.4 中断和退出 58
5.4.1 break语句 58
5.4.2 continue语句 59
5.5 特殊语句pass 60
第6章 函数 61
6.1 定义函数 61
6.2 函数中的参数传递与调用方法 63
6.3 几个特殊的函数关键字 64
6.3.1 Lambda关键字与匿名函数 64
6.3.2 Map关键字与批量化函数操作 66
6.3.3 Reduce关键字和求和 67
6.3.4 Filter关键字和条件选择 67
第7章 对象和类 69
7.1 对象 69
7.2 类 70
7.2.1 如何定义类 70
7.2.2 如何使用类 71
7.2.3 子类、父类和继承 72
7.2.4 几个特殊的实例属性和类方法 74
7.3 模块和包 75
7.3.1 模块 75
7.3.2 模块的路径搜索 76
7.3.3 名称空间 77
7.3.4 包 78
第8章 文件和目录 79
8.1 文件读写操作 79
8.2 目录操作 82
8.3 文件的压缩和备份 85
8.4 综合实例 87
第9章 异常处理 89
9.1 Python中常见的异常 90
9.2 自定义异常 92
9.3 使用异常 93
9.4 再看异常处理的作用 95
第10章 常用Python扩展模块介绍 96
10.1 NumPy和高效数据处理 97
10.1.1 创建数组 98
10.1.2 数组操作 99
10.1.3 数组运算 100
10.1.4 线性代数 100
10.2 SciPy与数值计算 101
10.2.1 插值 101
10.2.2 拟合 101
10.2.3 极值问题 102
10.3 Matplotlib和图表绘制 103
10.3.1 二维点线数据绘制 104
10.3.2 辅助散点和线图绘制 105
10.3.3 简单三维数据可视化 107
10.4 Xlrd/xlwt与读写Excel 109
10.4.1 读取Excel文件 109
10.4.2 写入Excel数据 109
10.5 Reportlab和PDF 110
10.6 联合使用类库 111
第11章 Python编程中的效率问题 114
11.1 时间成本优化 114
11.1.1 使用内建函数(built-in Function) 114
11.1.2 循环内部的变量创建 115
11.1.3 循环内部避免不必要的函数调用 117
11.1.4 使用列表解析 118
11.1.5 尽量减少IO读写 118
11.1.6 使用的第三方库 119
11.1.7 其他 120
11.2 空间成本优化 120
11.2.1 使用xrange处理长序列 120
11.2.2 注意数据类型的使用 121
11.2.3 使用iterator 12