当前位置:首页>> >>


Python语言在设计环节中的衔接性应用.rar

收藏

资源目录
    文档预览:
    编号:20181101170529132    类型:共享资源    大小:12.67MB    格式:RAR    上传时间:2019-04-02
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    35
    金币
    关 键 词:
    Python 语言 设计 环节 中的 衔接 应用
    资源描述:
    Python 语言在设计环节中的衔接性应用尹志伟 王兴中国电子工程设计院 中国核电工程有限公司yinzhiwei@ceedi.cn摘要:Python 语言是一种解释型、面向对象的带有动态语义的高级程序语言,目前已经广泛应用于网络编程、数据库、多媒体、科学计算等众多领域。对于建筑、景观及城市设计行业而言,python 以其优美的语法、简洁明确的特点而易于让本来并不擅长编程的设计师们所掌握。目前 Rhino、Maya 等三维设计软件均支持 python 作为脚本语言嵌入到设计软件中,以实现更为高效、精确的参数化设计。本文试图结合工程设计中的实际应用,简要分析 python 语言与设计结合的必要性,并以此为基础阐述 python 在特定设计环节中所能发挥的实际作用,分析出 python 语言与设计行业结合未来前瞻的积极性。关键词: Python;犀牛;工程设计APPLICATION OF PYTHON AS BRIGE FUNCTIONON DESIGN PROCESSYin Zhiwei Wang XingChina Electronics Engineering Design Institute China Nuclear Power Engineering Co., LtdAbstract. Python is an object oriented, interpreted with a dynamic semantics programming language, which has been widely applied to network programming, database, multimedia, scientific computing, and many other fields. For architecture, landscape and urban design industry, python is accepted by designers who originally are not good at programming, with its beautiful syntax, the characteristics of concise and clear logic. 3d design software like Rhino、Maya gradually support python as embedded language, to achieve more efficient and precise parametric design. This paper try to analyze the necessary combination of python language and engineering design, conclude the application function of python during design process.Keywords. Python; Rhino; Parametric design. 1.引言计算机辅助设计在当下设计行业中的普及面以及其对于设计行业发展的重要性早已深入人心,不言而喻。随着技术的不断变革与发展,计算机辅助设计日渐由原来早年间以简单代替手工重复性劳作的形象转变为具有辅助人工智能分析、进行大数据操作等高级功能的技术利器。目前随着参数化设计思潮的异军突起,建筑及规划设计领域内对计算机辅助设计的认识和运用也已完成了由传统二维空间设计软件向三维空间表达、关注建筑及城市全生命周期信息模型方向的重大转型。作为从事建筑与城市规划的职业建筑师,在认清时代发展步伐的同时,应当时刻关注设计技术变革的发展动向,积极将先进的技术成果运用到实际的设计过程中。目前针对不同类型的设计问题存在着各式各样、名目繁多的设计软件,如三维设计软件 Rhino、Maya ;三维协同设计 BIM 软件如 Revit、DP 等,以及基于这些软件基础上各式插件如 Grasshopper,RhinoNest 等等不一而足。但是这些软件均是针对设计中的某一类问题进行的专项开发,缺乏各软件之间的协调沟通,导致设计中经常会出现文件不兼容的状况。此外,各式软件和插件自身存在一定局限性,解决问题也是在有限范围之内,超出软件工具条的任务往往无法实现。设计过程中,也经常会出现由于软件自身无法胜任某一具体设计环节而逼迫设计师不得不诉诸于繁复的手工操作,或者干脆转向利用其它设计软件重新建立设计模型的情况。基于以上原因,掌握一种能够在各种软件中相互通用,并能够在软件自身平台的基础上进行自主开发的技能是应对以上问题的一种解决思路。目前编程技术无疑是实现这一思路的最佳途径。设计师掌握一定的编程知识有助于深刻理解常用的设计软件,让设计师发挥主观能动性去开拓创意型的设计。编程对于设计师而言迥异于编程之于程序员,设计师掌握编程是要解决设计过程中由于软件局限无法实现设计节点衔接的问题,是站在程序员编写完成的软件肩膀上,向着更高更远更具体的设计目标迈进。研究基础性语言与设计软件的结合能更加智能化地解决具体设计问题。通过合理的逻辑规划和语言编写,可实现园区智能规划、建筑围护结构理性统计、设计前期分析、后期建造数据收集等等众多问题,且其最终解决方案具有通用性,适用于其他类似问题,大大提高设计效率。2.Python 与 GHPython 语言的公开发行版诞生于 1991 年,由荷兰人 Guido van Rossum(吉多·范罗苏姆)发明并命名,目前被广泛地应用于各类领域,如软件开发、数据库、Windows 编程、多媒体、科学计算、网络编程、游戏开发、嵌入与扩展、企业与政务应用等。Python 是一种解释型的、面向对象的、带有动态语义的高级程序设计语言,已经具有近二十年的发展历史,成熟且稳定,在 2012 年之前是 2007、2010 年的年度编程语言,Python 的设计语言特点简单、明确,在面对多种选择时,python 开发者拒绝花哨的语法,而选择明确的没有或者很少歧义的语言,因此 python 不像 C++、java 等难以学习,其语言优美与英语语法类似,大大提高代码的可读性,这正是 python 语言最早设计时的重要指导思想。 [1]然而,在过去几十年中,大量的编程语言被发明和取代,修改或组合在一起,众多的编程语言并不是都适用于设计行业,具体选择哪种语言视行业使用的软件平台所支持的脚本语言来确定。对于建筑、景观与城市规划设计行业,Python 语言逐渐承担起愈来愈重要的作用,很多三维图形软件选择 python 作为脚本语言是未来图形程序软件发展的趋势。Maya 内置的 MEL,自 8.5 之后支持 Python 语言。 RHINO 自 5.0 之后嵌入 Ironpython,支持用 python 语言来参与设计。三维打印软件如 Replica 等更多地支持 python 语言控制打印过程。基于地理视图的 ArcGis9.0 开始支持 Python。可见 python 程序语言正在逐渐地被更广泛的三维设计软件所接纳,有望成为众望所归通用性的脚本语言。目前在三维软件 Rhino 的平台上使用节点可视化编程软件 Grasshopper 来协助设计是设计师工作的常用方式。GH 的出现减少了设计者学习编程语言的负担,使设计师能够以组件连线的方式建立设计逻辑并获得实时的几何形式。但是节点可视化编程本身的特点,静态的数据方式一定程度上限制了自身对数据结构的处理能力。Python 语言的介入能够以更加动态的方式完成诸如循环、迭代等复杂的运算,而且 Python 自身模块库包含Math、 Random、Function、Bisect 等,加上三维软件自身内置的模块,均为实现设计目标提供了无限的潜力。因此如果能够实现 Python 与 GH 的结合,将名副其实地实现 Python 在设计环节中的桥梁作用。它能够在软件工具命令无法实现设计目标时起到攻坚克难的作用,能在需要采用循环、逻辑判断算法时发挥高效能运算的特性。由此 python 作为设计环节间的桥梁作用可见一斑。3.应用举例金士葡萄酒庄园项目位于河北昌黎,该建筑建筑面积 5474㎡,地上三层,地下一层。項目的建筑屋顶部分为了呼应周边地形,造型仿若莲花一般高低起伏,其蜿蜒的造型使得建筑整体成为融入环境、点缀景观的地景构筑物。但由于其表面形状很不规则,项目进行到施工图阶段时,如何定位屋顶曲面以便指导施工确实是个颇棘手的问题。屋顶造型是在犀牛中完成建模,为了保持项目数据信息的完整性,最理想的是直接利用犀牛软件输出 Z 轴控制屋顶起伏变化的控制点坐标,并输出成标高标注。插件 Grasshopper 中能提取各控制点 Z 轴坐标,但目前版本很难直接将提取出来的坐标点转换成文字标高。GH 中很难将文字直接输出到 Rhino 中。如此大量的数据倘若用手动方法去标注显然是不可取的做法,而且一旦项目相关信息有变更,如室内外高差调整,建筑层高变更等都会造成图纸绘制颠覆性的修改。虽然这一步标注在整个项目中所占比重很小,但对项目的进展起到至关重要的作用。如何在 Rhino 软件中快速实现如上的操作成了一个不得不面对的问题。实际操作中采用 Python 介入此环节,利用编程语言读取数据和进行循环计算的优点,编写相应代码。生成的数据结果还能快速地导入 excel 表格中,指导施工。编程的语句并不复杂,逻辑简单清晰,关键作用是有效地衔接了建筑形式与施工图输出之间的关键环节。后续的 GH 软件通过自我的不断升级逐渐地也能实现如上的操作,但是在特定的时间内项目的进展不可能等待软件去升级,因此有必要超出软件工具条自身的局限,掌握能衔接设计环节的通用性语言,以备不时之需。此外,在该项目施工图的绘制过程中,还利用 GH 与Python 语言的结合编译了新的统计门窗的代码,主要目的是校对天正建筑软件自带的门窗统计命令,避免绘图过程中由于人工失误或绘图的不规范,导致门窗数量统计的偏差。图 1立面图一图 2立面图二图 3首层平面图图 4屋面点分布图图 5屋顶标高图图 6标注屋顶标高图 7统计门窗另外一个简单应用的项目是师范附属幼儿园活动场地的改造。该场地占地约两百平米,场地现状有几棵树木需要保留,同时设计任务要求场地内布置沙坑和幼儿大型玩具。后期设计根据玩具摆放及现状树木的位置,结合游戏沙坑的形状,尝试通过特定的划分平面的方法来划分整个游戏场地,使不同的游戏被放置在相对合理的位置上,同时各个区域通过连线的方式能够有机地联系在一起。设计过程先在 GH 中运用 Voronoi 算法,以模拟上述的设计要求。但是实际设计过程中由于该算法在 GH 中是已经集成化的运算器,无法根据实际需求来改变其中的运算规则。此时就需要利用编程的优势,结合现场实际情况来重新定义空间划分的方式。其最终生成的形状虽形似原来算法,但由于加入了Python 语言编译的新运算器,又与原算法稍有区别,本质上是从场地的现状条件出发,结合设计任务要求,利用编程语言在设计过程中的衔接作用,最终产出合理的设计结果。同理,如果遇到集成化的运算器无法满足设计要求时,便可以利用 Python 语言的衔接优势,对原有算法进行优化,实现自由式设计。图 8 图 9场地划分 颜色划分实际设计中,经常还会碰到在设计过程中对数据进行多重筛选的情况。例如对建筑立面开窗大小进行控制时,同时需要对窗户面积及外立面遮阳的长度进行双向控制,甚至是要加入建筑朝向等更多的约束条件。如何对多维数据进行相关联的多重筛选,以挑选或决定最终的设计结果。目前 GH 的常用操作是将数据进行 Dispatch,但这个命令每次只能对一组数据进行操作,如果要同时实现上述的多维操作,则需要经过若干回合的 Dispatch,结果会造成 GH 文件越编越大,运行一次会耗费较长时间,效率低下,可读性不强。利用 Python 语言构建数据过滤的脚本不仅能实现数据的高效处理,还可以让设计的逻辑过程看起来非常的简洁,逻辑更清晰。实验性设计中还经常会碰到诸如自组织,多代理,分形几何等方面的内容。目前很难在 Rhino 中运用软件的基本命令来实现这些动态数据分析类的算法。最为常用的参数化设计插件 GH 面对此类大量运用到循环,迭代,逻辑判断等命令时,其静态数据处理方式也显得捉襟见肘。采用编写脚本的方法来实现上述算法可谓游刃有余,它让设计师拥有驾驭实现设计想法的高超技能,尤其对于探索性设计而言,能够实现底层逻辑的构建,极大地开拓设计思维,关键时刻起到一剑封喉的功效。实际设计过程中还存在着很多基本软件命令无法满足实际设计需求的情况,从实验性设计,到方案设计过程中的逻辑分析,再到后期建造实践,此种案例林林总总,不胜枚举。以上所举例子类型和数量虽有限,但希望能从基础的设计案例中窥见一斑,此一斑即是编程之于设计的莫大意义。4.结语编程其实无处不在。高谈阔论编程技术愈显其高大上的趋势,反而忽略了它无时无刻存在于我们身边的事实。众所周知,我们常用设计软件的开发无不是通过编程来实现,程序员将所要执行的操作通过编写脚本,进行集成和可视化编译,最终以软件内置命令的形式让普通使用者能直接通过输入命令或点击按钮来逐步实现设计目标。设计师平常所面对的大多数设计任务都能通过软件编译完成的指令或按钮来实现,但是在面对一些具体而微的设计疑难点时,设计师主动运用编程来解决问题成为设计驱动的催化剂。设计师掌握一定的编程知识一方面有助于深刻理解常用的设计软件,明白计算机乃是为人所服务的高级机器,更能让设计师发挥主观能动性去开拓创意型的设计。编程对于设计师而言迥异于编程之于程序员,设计师掌握编程是要解决设计过程中由于软件局限无法实现设计节点衔接的问题,是站在程序员编写完成的软件肩膀上,向着更高更远更具体的设计目标迈进。编程赋予设计以无限的潜力,它除了能克服软件内置命令经常遭遇卡壳的瓶颈之外,更为有意义的是让设计师的想法插上通往自由王国的翅膀;编程能让有追求而不迷失方向的设计师越过黯淡无光稀松平常的荆棘,让那些天马行空的想法逐一得以呈现。在编程的光环下,自然之于生活的启示能以理性模拟的方式展现于人,跨学科的融合在语言兼容性的前提下成为可能,最终超越平常设计的想法得以实现。于此,编程在技术的基础上已升华成艺术,编程即出,谁与争锋。固然设计师彼此之间的工作内容千差万别,因人而异,项目种类也是名目繁多,各式各样,编程能力也并非是所有设计师的必需品,但却是有一定软件基础的设计师实现自身特定技术或艺术想法的实用武器。对于设计学科自身的发展而言也是一种创新型的技术拓展。有志于希望通过数字技术来实现想法的设计师们,掌握编程技术定会带来设计思路及设计实现途径的极大自由。技术能赋予人以自由,学之岂不善莫大焉。参考文献[1] www.15yan.com/story.{Reference}
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:Python语言在设计环节中的衔接性应用.rar
    链接地址:http://www.gold-doc.com/p-289052.html

    当前资源信息

    4.0
     
    (2人评价)
    浏览:111次
    bysj上传于2019-04-02
    1
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开