CityEngine使用Python脚本导出模型.doc

CityEngine使用Python脚本导出模型.doc

ID:55631137

大小:234.50 KB

页数:5页

时间:2020-05-21

CityEngine使用Python脚本导出模型.doc_第1页
CityEngine使用Python脚本导出模型.doc_第2页
CityEngine使用Python脚本导出模型.doc_第3页
CityEngine使用Python脚本导出模型.doc_第4页
CityEngine使用Python脚本导出模型.doc_第5页
资源描述:

《CityEngine使用Python脚本导出模型.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CityEngine使用Python脚本导出模型在前一篇《CityEngine使用Python脚本按feature整体导出道路》中介绍了如何按照GIS道路数据的ObjectID将道路导出,用户在使用过程中提出几个问题,如:1、脚本的使用范围是CityEngine的整个场景,在数据量非常大的时候会卡死2、在对道路数据进行处理的时候,Name字段必须赋值为ObjectID,不够直观3、在道路数据表中记录道路的条数以便修改Python脚本的range()参数,不够智能4、导出道路的选择只能通过Range()的参数

2、来控制,不方便而且很傻为了解决以上问题,达到摆脱ObjectID的限制(Name字段可以赋值为道路名称,当然要是英文字符),并可以通过直接拉框选择进行模型分批导出的目的,现修改脚本如下:'''''Createdon2012-8-14@author:YYX'''fromscriptingimport*#获取CE实例ce=CE()SelectedObj=ce.getObjectsFrom(ce.selection(),ce.isGraphSegment)#在ce.selection集合中获取路网Segments

3、集合ce.setSelection(SelectedObj)#重新设置ce.selection为Segments集合NumOfSelected=SelectedObj.__len__()#获取Segments集合objects个数NameOfSelectedObj=[]#创建空列表'''''循环获取Segment集合中objects的名称,并通过set函数合并重复值'''foriinrange(0,NumOfSelected):NameOfSelectedObj.append(ce.getName(ce.s

4、election()[i]))UniqueSelectedObj=set(NameOfSelectedObj)#合并重复值后的Segments集合objects名称,即唯一的道路名称'''''依据道路名称列表,循环获取某一道路对应的所有Segments,最后导出为一个obj模型文件'''forOjbinUniqueSelectedObj:name="'""'"+str(Ojb)+"'"#道路名称#获取所有与道路名称相同的Segments对象,这些Segments对象组成了一条道路TargetOjb=ce.g

5、etObjectsFrom(ce.selection(),ce.withName(name))ce.setSelection(TargetOjb)#设置ce.selection为所选同名Segments#设置导出参数settings=OBJExportModelSettings()settings.setGeneralLocation("d:/temp")settings.setGeneralName(name)ce.export(ce.selection(),settings)#依据导出参数将所选Segm

6、ents导出为一个Obj模型文件,该obj模型文件即为一条道路的模型ce.setSelection(SelectedObj)#重新设置ce.selection为所有Segments集合,以便导出下一条道路注:该脚本只对道路的导出有效,脚本最终会将选择的每条道路生成一个单独的Obj文件。道路数据预处理方式与前文一样,需要新建Name字段,并对Name字段赋值,只是Name字段可以是英文名称,而不必一定是ObjectID生成模型后,进行导出模型的选择时可以通过以下几种方式:1、拉框选择2、在Scene窗口中选择

7、道路的Segments,通过Shift或Ctrl进行多选同名的Segments为同一条道路的不同线段,如上图中的两个MajorEdge40062,这两个Segments组成一条名叫MajorEdge40062的道路。运行脚本,脚本会将同名的Segments挑选出来并分别导出到一个Obj文件中,这样就得到了所选道路的模型,道路模型的名字与其对应的Name字段相同。下面对脚本的一些方法进行说明:1、ce.selection():当前CE实例所选择的Objects集合2、ce.setSelection():通过该

8、方法设置ce.selection()3、ce.isGraphSegment:判断所选Objects是否为Segment,因本脚本要进行道路的导出,所以筛选的类型为Segment,若想要进行建筑物的导出则可以选择ce.isBlock或者ce.isShape,这取决于所选Objects的类型,见下图:以Block为单位导出模型以Shape为单位导出模型所选Object的类型可以在Inspector中查看,如:4、ce

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。