sketchup 255个su常用插件)_CityEngine+SketchUp城市建模

8cebd20630b99142feaf3a18e3425b01.png

推荐教程

CityEngine 《佛罗伦萨》数字城市制作视频教程_翼狐网​www.yiihuu.com
dab470d114006ea483c16759ca777b45.png

如何实现快速创建并还原一个真实的城市场景?

给SketchUp足够的时间肯定是能完成的,但是su在手工建模当中确实有好多重复工作和有待效率提高的地方,比如大场景导入矢量数据处理起来会比较麻烦,如我我们一直用镜像和复制粘贴的功能等等

CityEngine城市场景建模可以快速的模拟城市场景,通过规则快速实现城市建筑风格、景观、街道等城市要素的表现,然而在却很难实现一个真实城市一比一的创建(即时是能够实现工作量浩大,会跟手工建模无异),实现一个城市的每个建筑屋顶样式、门窗样式,街道的样式两侧步行道的行道树真实还原,目前估计只有倾斜摄影可以实现,但倾斜摄影目前的最大问题是形成的模型不好编辑(编辑会比较麻烦),真实场景再现比较方便实现,但是模型仍旧比较粗燥。能够实现城市一比一模拟还原而且高精度目前仍旧需要手工建模,通过3Dmax、SketchUp等主流三维建模软件。创建建筑模型或者城市场景模型最快的传统三维建模工具无疑SketchUp是最好的选择,而且SketchUp的模型库更为强大,使用简单容易上手。

全球非常多的三维建模软件和环境造景设计软件,在这个领域每个软件都有其长处和不可替代性,能够在三维城市建模实现互补并且能够快速实现各类城市场景模拟最好的搭档我选择CityEngine+SketchUp.

二者的特点

CityEngine

  1. 可以导入gis数据(实时下载数据)
  2. 规则建模(批量生产和重复利用)
  3. 支持常规三维数据格式导入导出(FBX DAE OBJ 等)
  4. 主要创建大场景城市建模

SketchUp

  1. 使用超级简单(上手即用)
  2. 精细化手工建筑单体和城市建模
  3. 支持常规矢量数据(CAD数据导入导出)
  4. 能够创建几乎所有三维模型

技术工作流

软件在互相的融合,即使是二者各有所长软件也在互相融入彼此的功能,比如cityengine在2015或者更早版本就加入了sktch功能,可以通过手工建模,即使是具备了sketchup功能,但是操作建议性和流传度仍旧不能跟后者相比;同时sketchup建模也在慢慢融入gis功能,最大的原因是常规三维建模软件需要依赖矢量数据,在云存储和大数据时代传统三维建模软件如果不能实施下载数据和应用海量数据显然会落伍,所以我们会看到sketchup的插件placemaker的出现,通过这个插件可以实施下载osm数据,这个跟cityengine的getmapdata功能如出一辙,区别在于cityengine下载数据以后同过规则文件cga驱动这些矢量数据产生模型,然而placemaker显然内置了计算方法,通过下载数据就会生成三维模型,但是这些模型只能通过su的手工方式再次修改,这跟CityEngine的规则文件修改显然不在一个层次。

所以软件即使是互相融合也很难去超过彼此的长处,技术的融合在项目应用当中整合才是关键。

那么我们回到文章的开头,如何快速创建一个城市场景模型并尽量做到一比一的真实还原,通过技术流我们基本上清楚了,用cityengine解决数据导入和su手工建模的重复性工作内容,然后通过sketchup创建它精细化建筑模型建模,最后将二者模型融合到一起,这样的速度应该是最高的。至于模型最后通过融合到sketchup还是cityengine,这个应该通过具体项目来定,让我们通过一个国外实践项目为大家做演示吧

https://v.qq.com/x/page/s0385nkrll5.html

CityEngine有它强大的规则建模能力,这种规则建模方式在建模软件领域独树一帜,规则可以重复利用,修改方便,生成模型的速度完全取决于电脑的配置。Sketchup在全球有强大的受众,无论是用户量还是知名度,cityengine目前无法跟Sketchup相提并论,尽管cityengine很容易创建核生成建筑模型、城市模型但是sketchup的模型库应该是目前模型界里面最丰富的,而且模型量每天都在增长,因为是开放的这种增长速度核未来的趋势基本无法预测,官方也没有揭露果sketchup的模型量。sketchup模型的丰富度可以作为cityengine建模的强大互补,理由是cityengine原生模型、曲面模型创建能力目前还不完善,通过规则引入外部模型从而进行规则布局和多种方案对比这样可以完全发挥其优势。

更多内容关注公众号

8020e23d6616975984fe9ada59b2608b.png

4910542da092434a1e5f86eab8770547.png

http://blog.cityengine.com.cn

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 SketchUp 中使用 SketchUp Ruby Vue 件通过 `sketchup-bridge` 拖动型,你需要进行以下步骤: 1. 首先,在 Vue 组件中引入 `sketchup-bridge`,并创一个 `bridge` 对象: ```javascript import * as SketchupBridge from 'sketchup-bridge'; export default { data() { return { bridge: null }; }, created() { this.bridge = new SketchupBridge.Bridge(); } }; ``` 2. 在 Vue 组件中创一个拖曳区域,用于拖曳型: ```html <template> <div class="drop-zone" @dragover.prevent @drop="onDrop"> Drop model here </div> </template> ``` 3. 在 Vue 组件中编写一个处理拖曳操作的方法: ```javascript methods: { onDrop(event) { event.preventDefault(); const file = event.dataTransfer.files[0]; const reader = new FileReader(); reader.onload = event => { const base64Data = event.target.result.split(',')[1]; const filename = file.name; this.bridge.sendCommand('add_model', { filename, base64Data }); }; reader.readAsDataURL(file); } } ``` 上面的代码将在拖曳操作结束时将型的文件名和 base64 编码的数据发送到 SketchUp 中。 4. 在 SketchUp 中,你需要创一个 Ruby 件,并将其添加到 SketchUp 中。你可以使用 SketchUp Extension Warehouse 或手动创和安装件。 5. 在件中,你需要创一个 `Sketchup::Http::RequestHandler` 对象,用于处理从 Vue 组件发送到 SketchUp 的请求。 ```ruby module MyPlugin class RequestHandler < Sketchup::Http::RequestHandler def handle_request(request, response) if request.post? && request.path == '/add_model' data = JSON.parse(request.body) filename, base64_data = data['filename'], data['base64Data'] model = Sketchup.active_model entities = model.active_entities definition = entities.add_instance('path/to/model.skp', Geom::Transformation.new) definition.name = filename definition.set_attribute('my_plugin', 'base64_data', base64_data) response.headers['Content-Type'] = 'application/json' response.body = JSON.dump({ success: true }) end end end end ``` 上面的代码将在拖曳操作结束时将从 Vue 组件发送的文件名和 base64 编码的数据解析为 SketchUp 中的型,并将其添加到场景中。 6. 在件中,你还需要创一个 `Sketchup::Http::CommandHandler` 对象,用于处理从 `bridge.sendCommand` 发送到 SketchUp 的命令: ```ruby module MyPlugin class CommandHandler < Sketchup::Http::CommandHandler def handle_command(command, params, _) if command == 'add_model' filename, base64_data = params['filename'], params['base64Data'] model = Sketchup.active_model entities = model.active_entities definition = entities.add_instance('path/to/model.skp', Geom::Transformation.new) definition.name = filename definition.set_attribute('my_plugin', 'base64_data', base64_data) end end end end ``` 上面的代码将在 `bridge.sendCommand` 中发送的 `add_model` 命令中解析型数据,并将其添加到场景中。 以上就是使用 SketchUp Ruby Vue 件通过 `sketchup-bridge` 拖动型到 SketchUp 的基本步骤。你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值