caDesign 设计

Version 2021

编程让设计更具创造力!

《学习PYTHON—做个有编程能力的设计师》

caDesign

摘要: 工作的目的也许是对产值的追求,而那句害人的“真理”说是什么最好的方法就是自己最熟悉的方法,也只是一种懒惰的借口,但是在快速追求产值的紧逼下,其成为了既定思考的方式,却殊不知那只是避免转换思维,学习新事 ...

书名:学习PYTHON—做个有编程能力的设计师
出版社:江苏凤凰科学技术出版社
价格:138.00元
出版时间:2015年6月
装帧:平装
纸张:120克胶版纸
印刷时间:2015年6月
版次、印次:第1版,第1次印刷
页数、字数:288页,144千字
上架建议:建筑/建筑设计
册包数:2500册/包
[最终销售价格由经销商确定]

豆瓣读书:查看评论

沐本学堂:点击进入

学习Python,做个有编程能力的设计师!

推荐:工作的目的也许是对产值的追求,而那句害人的“真理”说是什么最好的方法就是自己最熟悉的方法,也只是一种懒惰的借口,但是在快速追求产值的紧逼下,其成为了既定思考的方式,却殊不知那只是避免转换思维,学习新事物与深度思考的又一种重复性与思维惰性的“手工”劳作。

《学习PYTHON—做个有编程能力的设计师》从编程设计角度阐述利用Python脚本语言辅助设计的方法。在广大设计师从来没有想过设计行业与编程会发生关联时,编程设计已经对传统设计方法产生了影响,甚至变革。编程语言通过图形程序与设计构建了最为直接的联系,使得设计的过程更加智能化,以利用语言的魔力实现更复杂设计形式的创造和各类设计以及分析问题的解决途径。

设计者也开始以编程语言的逻辑思维方式,一种与直观的设计关照截然不同的思维方式,思考设计形式这个在理性逻辑思维与感性设计思维之间不断跳跃的过程,两者之间不断地影响与融合,这正是使用编程语言来辅助设计带来的影响,更是一种设计者乐此不疲的新设计过程的游戏,因为编程让设计过程更具创造力!

内容简介:《学习PYTHON—做个有编程能力的设计师》不是纯粹的Python编程学习,而是在学习基本Python编程语言时阐述辅助设计的方法,从Python Shell到RH_Python再到GH_Python,将Python真正作为设计者从事设计辅助的编程语言;同时,这又不是纯粹几何形式编程的说明,而是包括Python编程数据结构、基本语句、函数与类的学习过程。

在掌握Python语言的数据结构、基本语句、函数、类与异常,并通过具体案例阐述深入了解实践应用的方法之后,在“项目”部分探索与详细阐述了十个案例,包括:

“折叠的过程- 圆柱体V 形与Mesh 顶点排序”,结合Kangaroo动力学模块模拟折叠的过程,使用Python编写符合建立Mesh格网输入条件的点组织模式;

“盒体的展开”,讲述了如何把一个盒体连续展开在一个平面上,并获取多个解的方法;

“解读蚁群算法与TSP 问题以及在GH_Python 中的实现”,蚁群算法是一种用来在图中寻找优化路径的机率型算法,灵感来源于蚂蚁在寻找食物过程中发现路径的行为。本部分详细阐述蚁群算法并探索将其在Grasshopper平台中的Python脚本中实现和解决TSP旅行商问题;

“最短路径与Dijkstra 算法”,最短路径问题是图论研究中经典算法问题,旨在寻找图中两节点之间最短的路径,本部分使用Dijkstra 算法在GH Python中实现;

“探索性研究适宜分析方法GH_Python 下的实现”,适宜性分析的方法一般是在地理信息系统平台中实现,例如ArcGIS。适宜性分析在城乡规划和风景园林中经常被用到,根据应用的范畴又可以细分为城市建设用地的评价、环境影响评价、自然保护区及旅游区用地评价、区域规划和景观规划等。本次项目主要的研究目的是如何将适宜性分析在GH_Python 中实现;

“使用递归解决八皇后问题与满足特定间距要求的建筑布局”, 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后。为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上;

“解读生命游戏_ 元胞自动机与建立生长模型”, 元胞自动机(Cellular Automaton),是一个时间和空间都离散的动力系统。散布在规则格网(Lattice Grid) 中的每一元胞(Cell) 取有限的离散状态,遵循同样的作用规则,依据确定的局部规则做同步更新。大量元胞通过简单的相互作用而构成动态系统的演化;

“GoogleEarth.KML 文件的调入程序”,规划设计过程中经常借助于Google Earth来寻找和定位地标和路径,那么如何将地标和路径直接加载到Gasshopper平台中,是本部分需要解决的问题; “解读粒子群(PSO) 算法与建立点运动程序”,粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为PSO,模拟鸟群的捕食行为,通过追随当前搜索到的最优值来寻找全局最优解

“城市土地利用结构信息熵”,在信息论中,熵是接收的每条消息中包含信息的平均量,又被称为信息熵、信源熵等。消息往往代表来自分布或数据流中的事件、样本或特征。在规划设计领域引入信息熵,研究土地利用结构,分析功能的融合程度,信息熵的高低可以反映城市土地利用的均衡程度,熵值越高,表明不同职能的土地利用类型数越多。本部分案例主要通过Python 程序,阐述信息熵和均衡度公式计算过程。

  • 目录:

9 Python+PythonScript+GhPython
17 数据结构
18 1 列表(List)
19 1.1 索引
25 1.2 列表的基本操作
32 1.3 列表的方法
43 2 元组(Tuple)
43 3 字典(Dictionary)
44 3.1 Python 的字典与Grasshopper 的树型数据结构
48 3.2 Python 字典的方法
50 3.3 GhPython 与树型数据结构
66 4 字符串(String)
66 4.1 用Python 替代Grasshopper 处理字符串的方法
72 4.2 字符串格式化
84 4.3 re(regular expression) 正则表达式
95 基本语句
96 1 print() 与import
96 1.1 print() 97 1.2 使用import 导入模块或者函数
97 2 赋值的方法
98 3 循环语句
105 4 条件语句
117 函数
118 1 创建函数
136 2 随机模块
141 3 递归
155 4 时间模块
163 类
165 1 创建类
169 2 迭代器
172 3 生成器
177 异常
181 项目
183 Case_1: 折叠的过程- 圆柱体V 形与Mesh 顶点排序
191 Case_2: 盒体的展开
199 Case_3: 解读蚁群算法与TSP 问题以及在GH_Python 中的实现
211 Case_4: 最短路径与Dijkstra 算法
221 Case_5: 探索性研究适宜分析方法GH_Python 下的实现
251 Case_6: 使用递归解决八皇后问题与满足特定间距要求的建筑布局
257 Case_7: 解读生命游戏_ 元胞自动机与建立生长模型
265 Case_8:GoogleEarth.KML 文件的调入程序
276 Case_9: 解读粒子群(PSO) 算法与建立点运动程序
283 Case_10: 城市土地利用结构信息熵

设计师为什么要学习python编程语言

为什么( 建筑、景观、规划)设计师也要学习编程语言? 为什么学习编程语言会选择Python ?设计者在没有接触过任何编程语言辅助设计情况下,面对突然的“新”领域,必然会质疑。然而没有任何事物的出现是一下子的,为什么要学习Python 也是从逐渐产生的需求开始。大部分设计者已经开始使用节点可视化编程语言Grasshopper 来协助设计,为设计的创新性带来无限的可能,并解决各类设计过程中遇到的问题,但是由于节点可视化编程本身的特点,静态的数据处理方式在一定程度上限制了编程语言对数据结构处理的能力,然而这完全可以从Python 动态、更加自由处理数据的方法中获得弥补;另外Grasshopper 逐渐扩大的组件群体虽然尽可能满足各类设计的需求但是仍然无法与Python 的模块库相比,从math、random、decimal、numbers、fractions 到abc、array、bisect、Collections、functools 等为Python 编程语言带来无限的潜力,同时包括Python 作为脚本语言嵌入到三维模型软件从软件平台获取的模块;再者Python 从1989 年底发明,第一个公开发行版发行于1991 年以来,因为受到广泛应用领域的支持,日益完善并持续不断地发展,相对Python语言,Grasshopper 节点可视化编程语言在2000 年之后开始发展起来的,面对的主要是细分的设计领域,同时Grasshopper 出现的目的是为了减少设计者学习纯粹语言的负担,能够快速使用组件连线编写程序,并获得实时的几何形式变化,然而事情总是有两个方面,在方便设计者的同时也减弱了纯粹语言本身所应具有的语句魔力。既解决Python 转向设计领域的使用,又解决Grasshopper 节点可视化编程的限制,最合适的方法不是强调某一个方面,而是将二者结合, Rhinoceros 平台嵌入了Python 脚本PythonScript,Grasshopper 也嵌入了GhPython,可以完美地实现Python 的不同接口方式。

如何摆正Python 在设计领域的地位? 如何正确地定位Python 的使用模式? 从Grasshopper 、Rhinoceros、ArcGIS 到MAYA, 更多的设计领域软件平台对Python语言的支持,使得设计者不用担心不得不学习各类不同编程语言来满足不同平台的需要,Python 作为脚本语言具有支持更多各类平台的优势,同时Python 语言因本身的发展规模和可预见的持续发展潜力以及语言简洁易学的特点,必然成为设计者首选的语言,而不是C#又或者VB。设计者学习Python 的目的是为了更好地辅助设计,解决各类设计上遇到的问题和探索更广阔的设计形式领域,而不是使用编程语言来代替核心的设计,那些仅仅依靠编程语言玩弄形式而缺失基本的艺术审美层次的设计只会抹杀编程语言本应该处理解决设计问题的作用。除非特殊情况,不建议使用Rhinoceros 嵌入的脚本PythonScript,而是使用Grasshopper 中嵌入的GhPython,将Grasshopper 与Python 结合起来。设计的核心是如何处理设计问题,设计的特点是不断地推敲设计形式和不断地修改提升,并具有创造性,纯粹的Python 语言脚本无法实时方便地观察几何形式的变化,也不能够快速地建立起根据设计构思实现的几何形式,而这些需求Grasshopper 却可以满足,构建了一种数据结构调整实时观察几何形式变化推敲的设计过程,然而设计上遇到的各类问题单凭Grasshopper 很难处理解决,需要借助Pyhton 更强大的语言协助处理,于是Grasshopper 与GhPython 就构成了辅助设计最好的组合方式。

《学习Python——做个有编程能力的设计师》不是纯粹的Python 编程介绍,而是在介绍基本Python 编程语言时阐述如何辅助设计,从Python Shell 到PythonScript 再到GhPython,将Python 作为设计者设计辅助的编程语言;这不是纯粹的对几何形式编程的说明,还包括对Python 编程数据结构、基本语句、函数与类的说明。整本书都是在编程与设计、理性与感性的逻辑思维之间不断地跳跃,这正是编程让设计更具创造力的核心本质。