1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Замена источников света

Тема в разделе "Общие вопросы", создана пользователем Соколов Алексей, 25 июн 2015.

Модераторы: Артер
  1. Соколов Алексей

    Соколов Алексей Пользователь сайта

    С нами с:
    14.05.2015
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    Доброго всем дня! Знающие подскажите, как заменить несколько светильников разом на другие. Сделал подсветку здания, расставил светильники (порядка 80ти) и выставил направления, но теперь решил их все заменить на другие с более подходящей кривой силы света. Как их теперь можно заменить разом. Например, в DIALux это очень просто сделать, заменой из свитка IES-ок. А как это в 3D сделать не знаю, только учусь.
     
  2. Соколов Алексей

    Соколов Алексей Пользователь сайта

    С нами с:
    14.05.2015
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    Возможно стоило дополнить, что вставлял ИС через VRayIES.
     
  3. Anton Chernov

    Anton Chernov Активный участник

    С нами с:
    16.04.2012
    Сообщения:
    104
    Симпатии:
    19
    Баллы:
    14
    Если источники света сделаны инстансами, то изменение файла ies в одном автоматически распространится на другие. Если нет, то можно скриптом пробежаться по всем ИС
     
  4. Deruz

    Deruz Знаток

    С нами с:
    06.10.2008
    Сообщения:
    2.070
    Симпатии:
    46
    Баллы:
    77
    Ну боже ж мой, как так относиться к планированию и слоям...
    Изя, я щя из ума выду... :)
     
  5. Соколов Алексей

    Соколов Алексей Пользователь сайта

    С нами с:
    14.05.2015
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    Да ладно Вам глумится, я ж говорю, только учусь, набиваю шишки. А что касается данной проблемы, то она может возникнуть не только из-за ошибки планирования, возможна ситуация когда ранее запланированные светильники сняли с производства и нужно менять на актуальные, ведь с момента проекта до момента его физической реализации может много времени пройти.
     
  6. Соколов Алексей

    Соколов Алексей Пользователь сайта

    С нами с:
    14.05.2015
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    2
    А это как? Просветите пожалуйста.
     
  7. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Можно сделать чтобы нужные светильники стали Instance. Пример. Запускаем скрипт.
    В новом окне нажимаем кнопку Master и выбираем объект с нужными настройками.
    Выделяем несколько объектов, которых нужно заменить и нажимаем кнопку Apply.
    Код:
    try destroydialog igorznag_instance_objects catch()
    rollout igorznag_instance_objects "Instance"
    (pickbutton picker "Master Object"; button btn_apply "Apply"; local master
    on picker picked obj do (picker.text = obj.name; master = obj    )
    on btn_apply pressed do undo on for obj in selection where isvalidnode master do
    if classof obj==classof master then instanceReplace obj master
    );createdialog igorznag_instance_objects 100 55
    Чтобы запустить скрипт нужно:
    1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
    2. Сохраняем текстовый файл с названием "test.ms"
    3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"

    Пример. Выделяем нужные светильники VRayIES. Запускаем скрипт.
    В новом окне нажимаем кнопку "IES File" и выбираем нужный файл.
    Код:
    try destroydialog igorznag_VRayIES_ies_file catch()
    rollout igorznag_VRayIES_ies_file "VRayIES"
    (button btn_ies_file "IES File"; on btn_ies_file pressed do
    (f=getOpenFileName types:"IES Profiles(*.ies)|*.ies|All files|*.*|"
    if f!=undefined then undo on
    for obj in selection where classof obj==VRayIES do obj.ies_file=f
    ));createdialog igorznag_VRayIES_ies_file 90 30
     
  8. Anton Chernov

    Anton Chernov Активный участник

    С нами с:
    16.04.2012
    Сообщения:
    104
    Симпатии:
    19
    Баллы:
    14
    Вместо "F:\IES\Collection1\11.IES" вставить в таком же формате путь до нужного файла IES, выделить источники света, в которых нужно заменить IES, выполнить скрипт. опередил

    Код:
    iesFile = "F:\IES\Collection1\11.IES"
    
    if (doesFileExist iesFile) then (
        for s in selection where (classof s == VrayIES) do (
            setProperty s "ies_file" iesFile
        )
    )else(
        print "Wrong ies file path!"
    )
    ЗЫ. igorznag опередил)
     
  9. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Этот формат не совсем правильный.
    Меняем название файла "11.IES" на "test.IES" и ваш код не будет работать.
    Правильные форматы:
    Код:
    iesFile = @"F:\IES\Collection1\test.IES"
    iesFile = "F:\\IES\\Collection1\\test.IES"
    iesFile = "F:/IES/Collection1/test.IES"
     
    Kif3d нравится это.
  10. Anton Chernov

    Anton Chernov Активный участник

    С нами с:
    16.04.2012
    Сообщения:
    104
    Симпатии:
    19
    Баллы:
    14
    Упс, действительно, затупил) Спасибо за исправление.
     
Модераторы: Артер

Поделиться этой страницей