通过更改基础草图模型来更新Sketchup模型

时间:2018-03-29 00:01:39

标签: sketchup

我有一个SketchUp模型,我是通过导入其他三个模型文件创建的。我想更新三个底层模型文件之一。如果我编辑模型并再次进行物理导入,我必须花时间再次对模型进行物理定位。有没有办法改变底层模型,更高级别的模型会自动更新?

3 个答案:

答案 0 :(得分:1)

不确定这是编程问题还是用户问题,但如果是编程问题,那么您可以使用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/

答案 1 :(得分:1)

您无需以编程方式进行此操作-您可以在Sketchup本身中进行此操作。

  1. 将组件保存在文件aComponent.skp中
  2. 将组件导入到您的工作文件中,也许是workingFile.skp

要更新组件(类似于Autocad中的XREF)

每当对aComponent.skp文件进行更改时,所需要做的就是进入workingFile.skp并在OUTLINER中而不是在Component窗口中找到加载的组件(我在这里做了一个叫weirdThing的内容)。 / p>

  1. 右键单击OUTLINER中的组件名称。
  2. 选择“重新加载...”
  3. Sketchup要求您提供用于更新文件的文件。选择aComponent.skp-或其他任何文件中具有相同名称的组件定义!

注意:如果右键单击“组件列表”中的名称,则此方法无效(请参见下图)。

enter image description here

答案 2 :(得分:0)

虽然SketchUp没有链接模型,您无法自动更改从一个模型到另一个模型(无论如何都没有插件),但有一种方法可以用不同的模型替换组件。您是否习惯使用Ruby控制台?如果是这样,请执行以下操作(请注意,这假设您的对象是组件!):

  1. 选择组件实例,即您要替换的组件实例。
  2. 打开Ruby控制台(Window - > Ruby控制台)。
  3. 键入以下内容(您必须选择旧实例):

    old = Sketchup.active_model.selection.first

  4. 然后按Enter键。

    1. 导入您的新对象(除非您已经拥有)并将其放置在场景中的某个位置(某处不在其中,您可以轻松找到它)。
    2. 选择组件实例,即刚刚导入的新对象
    3. 在Ruby控制台中键入以下内容(必须选择新实例):

      new = Sketchup.active_model.selection.first

    4. 然后按Enter键。

      1. 现在,要用新组件替换旧组件,请在Ruby控制台中键入以下内容:

        old.definition = new.definition

      2. 然后按Enter键。

        应该用新的组件替换旧组件。您现在可以删除先前导入的对象。清除模型也许是一个好主意。 请注意,替换使用旧实例的坐标轴位置。只要这些是同一型号,只需进行一些编辑,您就不会遇到任何麻烦。