【问题标题】:Loading, Resizing and Moving object imported from COLLADA (*.dae) file in Sketchup Ruby API在 Sketchup Ruby API 中加载、调整大小和移动从 COLLADA (*.dae) 文件导入的对象
【发布时间】:2014-01-10 16:41:06
【问题描述】:

我创建了 DaeImporter 类(它继承自 Importer 接口)用于导入 *.dae 文件。并且在 importer 类的 load_file 函数中。我得到了我导入的文件的路径

但我需要打开它并显示 3D 图像,调整它的大小并将其放置在给定的位置,这个功能必须在 DaeImporter 类中实现。

我看到图像对象,实体类有方法 add_image 用于将图像添加到实体中,调整大小并将其放置在给定位置。 Entites 类是否具有用于 dae 文件的相同方法。如果没有,我该怎么办这种情况。

谢谢你帮助我!

【问题讨论】:

  • 当您希望 SketchUp 加载格式时,为什么要为看似 DAE 的东西实现 Importer 类? IMporter 类用于添加 SketchUp 开箱即用不支持的导入器。
  • 我假设“3D 图像”是指“3D 模型”? “图像”是一个 2D 元素。
  • 是的,我的意思是“3D 模型”的“3D 图像”,而“图像”是一个 2D 元素。对不起。我的要求是当用户导入 dae 文件(正是用户在 dae 文件中导入 2D 元素)时,它会自动调整给定大小,并自动移动到给定位置。所以我认为我必须创建自定义导入器类,因为它继承自 Importer 接口,并且它具有回调函数 load_file(它在用户导入文件时自动调用)。我将在此函数中处理读取文件、调整大小和移动 2D 元素。这是真的方法吗?你有替代方法吗?
  • 如果您实现Importer 类,您将负责读取、解码和生成 SketchUp 实体。那么我认为您真正想要的是在用户导入 DAE 文件时收到通知?导入器操作没有通知,您可以在添加新组件或实体时进行监听,但无法知道它们来自 DAE 导入。
  • 是的,我明白了。感谢您的指导,我找到了如何监听新组件或实体何时添加,以及如何移动它

标签: ruby sketchup


【解决方案1】:

如果您要导入不是 SKP 的文件,请使用Model.import:http://www.sketchup.com/intl/en/developer/docs/ourdoc/model.php#import

Importer 类用于添加 SketchUp 开箱即用不支持的额外格式。

【讨论】:

  • 我使用Model.import来导入Dae文件,但是我遇到了2个问题:1)Model.import函数中的参数是文件的路径,但是这个路径是用户在选择文件时获得的模型导入对话框 2) 我不知道如何调整大小和移动它。我在 API 中阅读,并使用 group 将一个元素移动到给定位置。但是我必须在组中添加新实体,并且在移动这个组之前我不知道我必须在新实体中添加什么。 sketchup.com/intl/en/developer/docs/ourdoc/group.php#move
  • 1.为什么这是个问题?您需要更详细地说明您尝试过的错误以及您试图解决的总体概念。
  • 2.这又是一个问题。请把它作为一个新帖子发布。另外请查看本网站的用户指南,如果您一直将此类问题捆绑在一起,版主会关闭它们。
  • 对不起我的错误,请体谅我
  • 不用担心 - 继续询问,但要遵守指南。此网站不是论坛。
猜你喜欢
  • 2012-02-22
  • 2014-10-12
  • 2017-04-04
  • 2021-08-12
  • 2017-08-10
  • 2015-05-13
  • 1970-01-01
  • 2016-02-25
  • 2018-12-02
相关资源
最近更新 更多