【发布时间】:2018-03-29 00:01:38
【问题描述】:
我有一个 SketchUp 模型,它是通过导入其他三个模型文件创建的。我想更新三个底层模型文件之一。如果我编辑模型并再次物理导入,我必须花时间再次物理定位模型。有没有办法改变底层模型并自动更新更高级别的模型?
【问题讨论】:
-
SketchUp 不会“链接”模型。如果您导入,该模型将完全带入场景中,并且与其原始来源没有任何联系。
标签: sketchup
我有一个 SketchUp 模型,它是通过导入其他三个模型文件创建的。我想更新三个底层模型文件之一。如果我编辑模型并再次物理导入,我必须花时间再次物理定位模型。有没有办法改变底层模型并自动更新更高级别的模型?
【问题讨论】:
标签: sketchup
您不需要以编程方式执行此操作 - 您可以在 Sketchup 本身中执行此操作。
更新组件(类似于 Autocad 中的外部参照)
每当您对 aComponent.skp 文件进行更改时,您需要做的就是进入您的 workingFile.skp 并在 OUTLINER 中找到您加载的组件(我在此处创建了一个名为奇怪的东西),而不是 Component 窗口。
注意:如果您右键单击组件列表中的名称,这将不起作用(见下图)。
【讨论】:
不确定这是编程问题还是用户问题,但如果是编程问题,那么您可以使用 DefinitionList#load 加载新的 SKP 文件,然后使用 ComponentInstance#definition= 替换您要替换的定义的实例.
http://ruby.sketchup.com/Sketchup/DefinitionList.html#load-instance_method http://ruby.sketchup.com/Sketchup/ComponentInstance.html#definition=-instance_method
如果这是用户问题,那么我建议您在超级用户网站 (https://superuser.com/) 或 SketchUp 论坛中提问:https://forums.sketchup.com/
【讨论】:
虽然 SketchUp 不链接模型,并且您无法自动从一个模型更改到另一个模型(无论如何都没有插件),但有一种方法可以用不同的组件替换组件。您对使用 Ruby 控制台感到满意吗?如果是这样,请执行以下操作(请注意,这假定您的对象是组件!):
选择旧组件实例,即您要替换的实例。
打开 Ruby 控制台(窗口 -> Ruby 控制台)。
键入以下内容(您必须选择旧实例):
old = Sketchup.active_model.selection.first
然后按回车键。
导入您的新对象(除非您已经拥有)并将其放置在场景中的某个位置(某个不碍事的位置,您可以轻松找到它)。
选择 new 组件实例,即您刚刚导入的新对象
在 Ruby 控制台中键入以下内容(您必须选择新实例):
new = Sketchup.active_model.selection.first
然后按回车键。
现在,要将旧组件替换为新组件,请在 Ruby 控制台中键入以下内容:
old.definition = new.definition
然后按回车键。
这应该用您的新组件替换旧组件。您现在可以删除之前导入的对象。清除模型也可能是个好主意。 请注意,替换使用旧实例的坐标轴位置。只要这些是相同的模型,只需进行一些修改,您应该不会有任何问题。
【讨论】: