У меня есть модель SketchUp, которую я создал, импортировав три других файла модели. Я хочу обновить один из трех базовых файлов модели. Если я отредактирую модель и снова физически импортирую, мне придется снова потратить время на физическое позиционирование модели. Есть ли способ изменить базовую модель, и модель более высокого уровня будет автоматически обновляться?
Обновление модели Sketchup путем изменения базовой модели Sketchup
Ответы (3)
Вам не нужно делать это программно — вы можете сделать это в самом Sketchup.
- Сохраните компонент в файле aComponent.skp
- Импортируйте компонент в свой рабочий файл, например, workingFile.skp.
Чтобы ОБНОВИТЬ компонент (аналогично внешней ссылке в Autocad)
Всякий раз, когда вы вносите изменения в файл aComponent.skp, все, что вам нужно сделать, это зайти в свой workFile.skp и найти загруженный вами компонент (здесь я сделал его под названием «странная вещь») в OUTLINER, а не в окне компонентов.
- Щелкните правой кнопкой мыши имя компонента в OUTLINER.
- Выберите «Перезагрузить…».
- Sketchup запрашивает файл для его обновления. Выберите aComponent.skp -- или любой другой файл с определением компонента с таким же именем внутри него!
ПРИМЕЧАНИЕ. Это не сработает, если щелкнуть правой кнопкой мыши имя в списке компонентов (см. изображение ниже).
Не уверен, что это вопрос программирования или вопрос пользователя, но если это вопрос программирования, вы можете использовать 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
и нажмите Enter.
Импортируйте новый объект (если он у вас уже есть) и поместите его где-нибудь в сцене (там, где он не будет мешать, и вы сможете легко его найти).
Выберите новый экземпляр компонента, ваш новый объект, который вы только что импортировали.
Введите следующее в консоли Ruby (вы должны выбрать новый экземпляр):
new = Sketchup.active_model.selection.first
и нажмите Enter.
Теперь, чтобы заменить старый компонент новым компонентом, введите в консоли Ruby следующее:
old.definition = new.definition
и нажмите Enter.
Это должно заменить старый компонент новым. Теперь вы можете удалить объект, который вы импортировали ранее. Вероятно, было бы неплохо очистить и вашу модель. Обратите внимание, что при замене используется координатная ось старого экземпляра. Пока это одна и та же модель, только с некоторыми правками, у вас не должно возникнуть никаких проблем.