Обновление модели Sketchup путем изменения базовой модели Sketchup

У меня есть модель SketchUp, которую я создал, импортировав три других файла модели. Я хочу обновить один из трех базовых файлов модели. Если я отредактирую модель и снова физически импортирую, мне придется снова потратить время на физическое позиционирование модели. Есть ли способ изменить базовую модель, и модель более высокого уровня будет автоматически обновляться?


person Neil Dey    schedule 29.03.2018    source источник
comment
SketchUp не связывает модели. Если вы импортируете, эта модель полностью переносится в сцену, и нет никакой связи с ее исходным источником.   -  person avariant    schedule 29.03.2018


Ответы (3)


Вам не нужно делать это программно — вы можете сделать это в самом Sketchup.

  1. Сохраните компонент в файле aComponent.skp
  2. Импортируйте компонент в свой рабочий файл, например, workingFile.skp.

Чтобы ОБНОВИТЬ компонент (аналогично внешней ссылке в Autocad)

Всякий раз, когда вы вносите изменения в файл aComponent.skp, все, что вам нужно сделать, это зайти в свой workFile.skp и найти загруженный вами компонент (здесь я сделал его под названием «странная вещь») в OUTLINER, а не в окне компонентов.

  1. Щелкните правой кнопкой мыши имя компонента в OUTLINER.
  2. Выберите «Перезагрузить…».
  3. Sketchup запрашивает файл для его обновления. Выберите aComponent.skp -- или любой другой файл с определением компонента с таким же именем внутри него!

ПРИМЕЧАНИЕ. Это не сработает, если щелкнуть правой кнопкой мыши имя в списке компонентов (см. изображение ниже).

введите здесь описание изображения

person Brett    schedule 08.08.2018

Не уверен, что это вопрос программирования или вопрос пользователя, но если это вопрос программирования, вы можете использовать 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/

person thomthom    schedule 19.04.2018

Хотя SketchUp не связывает модели, и вы не можете автоматизировать переход от одной модели к другой (в любом случае без подключаемого модуля), есть способ заменить компонент другим. Вам удобно пользоваться консолью Ruby? Если это так, сделайте следующее (обратите внимание, что это предполагает, что ваши объекты являются компонентами!):

  1. Выберите старый экземпляр компонента, который вы хотите заменить.

  2. Откройте консоль Ruby (Окно -> Консоль Ruby).

  3. Введите следующее (вы должны выбрать старый экземпляр):

    old = Sketchup.active_model.selection.first

и нажмите Enter.

  1. Импортируйте новый объект (если он у вас уже есть) и поместите его где-нибудь в сцене (там, где он не будет мешать, и вы сможете легко его найти).

  2. Выберите новый экземпляр компонента, ваш новый объект, который вы только что импортировали.

  3. Введите следующее в консоли Ruby (вы должны выбрать новый экземпляр):

    new = Sketchup.active_model.selection.first

и нажмите Enter.

  1. Теперь, чтобы заменить старый компонент новым компонентом, введите в консоли Ruby следующее:

    old.definition = new.definition

и нажмите Enter.

Это должно заменить старый компонент новым. Теперь вы можете удалить объект, который вы импортировали ранее. Вероятно, было бы неплохо очистить и вашу модель. Обратите внимание, что при замене используется координатная ось старого экземпляра. Пока это одна и та же модель, только с некоторыми правками, у вас не должно возникнуть никаких проблем.

person avariant    schedule 29.03.2018