CopyPaster (скрипт для 3d max)

Всем привет !

Продолжаю серию написания своих скриптов для 3d max. На этот раз хотел представить ещё один интересный скрипт - инструмент для моделирования CopyPaster.

Почему CopyPaster?

Само название говорит за себя - скрипт копирует и вставляет.. но как именно, покажу в деталях.. разберём на примерах которые я часто использую с этим скриптом.. 

Забегая вперёд сразу хотел настоятельно порекомендовать посмотреть быстрый видео ролик "demo". И уже после просмотра разобрать текстовое описание.

Как работает? Интерфейс.

fef18ffc67cca86c9b6b42bc3c387df4.jpg

Разберём интерфейс, первая группа - "назначение сторон".

Это делается один раз - назначаются точки сторон модели для её правой стороны, и нижней стороны..

Зачем это?

Скрипт автоматически будет подгонять длину объекта и высоту, именно для этого ему нужно знать какие точки он будет двигать. За длину отвечает длина ребра. Высота будет рассчитываться от выделенного ребра до следующего нижнего.

b434596324bff536c70acf034dd2b948.jpg

Попробуем на примере с окном

Выделяете точки правой стороны - жмёте кнопку "правая"

41e6ff88cbb1cc13348a66859e098bb1.jpg

Аналогично выделяете точки нижней стороны - жмёте кнопку "нижняя"

e1a4f85d5b3c8eae9a4d28c9628da3cd.jpg

эти точки записываются в память модели в Object Properties - UserDefined. поэтому они всегда будут доступны для чтения даже если вы потом перезапустите 3d макс c сохраненным проектом.

Обратите внимание в самом низу окна скрипта имеется лэйбл - "Статус объектов", который всегда скажет - какие стороны вы указали у выделенного вами объекта.

8953f4296a41b037dea626bfdc9cd3d7.jpg

Так же цвет кнопок будет говорить о том же, если красный - не указана сторона / зеленый - уже назначено.

Локальный пивот должен быть направлен осью Z как на картинке

f73838e7b42ac91cd3d333dadced0321.jpg

После чего добавляем эту модель в список использованных скриптом.

aa59cb66fe05d51b204086f29eb2e7dd.jpg

Подготовка модели на этом завершена.

Теперь о самом интересном.. 

Работая в Editable Poly с вашей болванкой(моделью), выделяем нужную нам грань, или несколько граней. указываем количество копий на эту грань и жмём "создать".

Видим что произошло копирование объектов на каждую выделенную грань, автоматически корректируя длину объекта сдвигая точки сторон.

Одна копия - делает одну копию на длину грани

f04995834986c7549f70e34ab8d25974.jpg

Две копии уже будут делить длину грани на количество копий.

40f9a469c5ebc4262d36655d1618f812.jpg

Так же скрипт автоматически поворачивает вашу копию под локальный угол выбранной грани.

Вы можете так же быстро переключаться к моделям которые будете использовать, просто выделите нужную модель в списке.

В настройках есть несколько кнопок и флажков:

"Удалить полигон" - будет автоматически удалять полигон под выделенной гранью..

Важно советую не резать "дырки" вручную например под окно, как раз для этого удобно использовать автоматическое удаление..  

пример:

Выделяем "луп" граней. Жмём галочку "удалять полигон" и жмём "Создать"

bb90a20f38a8efdcffa1bedabc2c651c.jpg

Создались окна на каждом ребре.

91c8486d24319d429019ca669167cbfa.jpg

Если сдвинуть их вниз - видим что под ними нет полигонов.. 

b3696883b32ea83ff91c3a081afbd607.jpg

Переключатель Local отступ минимум и максимум. Ставит вашу модель относительно её глубины на минимум или максимум.

Минимум

36dccb0720775daf79ac86c3f90c3faa.jpg

Максимум

cbc1ec1d8ae5c46949c5cf19ae5fea70.jpg

Кнопка "Удалить" работает аналогично как Ctrl+Z со множеством действиями отмены до самого первого объекта (настоятельно рекомендую не использовать Ctrl+Z smiley-smile.gif)..

Так же зашивает дыры(если они удалялись флажком "Удалить полигон".

Material ID можно включить флажком - назначая для объектов которые будут созданы их Material ID.

В случае с моделью окна на неё было назначено два материала, белый пластик и стекло.. Для таких типов объектов оставляем Material ID выключенным.

cda823303c907dc9bc17a65ac69b10ba.jpg

67ce1006a2ebc72c754670b92d1a57c2.jpg

Комментарии (31)

+10
StunBreaker
Ссылка на скрипт -https://3ddd.ru/3dmodels/show/copypaster_v1_1 

*FIX* - скрипт обновлён, устранены ошибки на запуске..

Удачного пользования! )
+1
domovoynafany
Друже, ты просто крут!!!
+3
MastaMan
Молодец StunBreaker не перестаешь удивлять!
0
MastaMan
Я когда то делал что то подобное давно, называется Window Placer http://3dground.net/prod/window-placer-2246311 

Если расставлять окна в большом проекте вещь незаменимая.
Плюс моего скрипта то что можно выбрать все открытые грани, и в них моментально появятся окна, ну и под любым углом можно расставлять...
+1
StunBreaker
Спасибо за отзыв! об этом я тоже думал, добавить это дело полу часа, но иногда грани могут быть открытые и не подходящие для окон по замыслу модели, тут исключать надо.. в общем можно добавить. )
0
MastaMan
Как на счет английского интерфейса?
0
StunBreaker
можно даже переключатель вставить на - rus / eng )
0
MastaMan
Я так понимаю оно работает корректно только с вертикальными поверхностями?
+4
StunBreaker
в этой версии да, ориентирован в целом на фасады зданий, стены.. Мне на практике хорошо пригодился для моделинга покрытий зданий алюкомом, панелями, быстрая вставка окон.. В интерьере тоже найдется применение по тем же стенам )
Но в голове имеются мысли по реализации скошенных фасадов - если это будет интересно кому..
+1
danro
Полезная должна быть штука, обязательно попробую!
+1
Arrow92
Спасибо нужная вещь)))
+1
murza_v
Попробуем,потестим.
+8
Aeroslon
А можете написать скрипт для создания скриптов?
+2
TAHK_74
Или скрипт для создания скрипта, который создаёт скрипты)
+2
EpMak
Огонь! Избавляет от рутинной работы! Для экстерьера незаменимая вещь!
+3
silvermoon2
ЖДЁМС ДОПИЛЕННУЮ ВЕРСИЮ... СУДЯ ПО ВИДЕО, ПРОДУКТ БУДЕТ ВЕСЬМА ПОЛЕЗНЫМ
+1
StunBreaker
безусловно.. !
+2
1986
ОГОНЬ!!!!!!!!!!!!!!! Круто
0
StunBreaker
)
+2
loo
супер.!
+2
eldarik
--No ""+"" function for undefined

чет не работает*(
макс 2017

****
автор быстро пошаманил, скрипт заработал, есть мелочи на шлифовку, но и так все работает! спасибо большое!
+1
StunBreaker
Это ужасно (
если у кого то возникла аналогичная проблема плюсаните пост от "eldarik"
Буду перезаливать, уже исправлено.. забыл удалить одну строчку когда чистил скрипт на модерацию..

p.s. Исправлено, перезалито !
0
dmix
Комментарий удален
0
StunBreaker
Скрипт обновлён от ошибок на загрузке.. !
+1
VVV200672
Отличная работа. Очень нужный скрипт. Только при закрытии окна скрипт выдает ошибку:

Attempt to display more maximum of simultaneous error message dialogs occurred. See error log file for additional error messages,

Далее:
--Unknown properety: "stop" in undefined.

Но при этом скрипт запускается в следующий раз и работает. В чем проблема?
0
StunBreaker
да всё верно - ошибка была выявлена, исправлена.. пока нет времени перезалить всё это дело..
Спасибо что сообщили !
p.s. ошибка в том, что при первом запуске пытается считать ещё не назначенные свойства из переменной.. которая создаётся позже объявления функции. )
0
VVV200672
Ок. Подождем.

Еще. После установки этого скрипта он переписывает скрипт Floor_Designer в категории 3ddd scripts в Customize User Interfase. То есть, он переписывает функционал кнопки Floor_Designer. Можно ли это поправить, чтобы была возможность иметь кнопки на оба скрипта?
0
StunBreaker
о это интересно, странно что так происходит, я обязательно проверю что с этим - файлы установщики поправлю.
0
VVV200672
Ок. У меня 3D Max 2018 Update 3.
0
M_JAM99
Можно туториал перезаписать пожалуйста
0
Эния
Картинки не подгружаются, видео недоступно =(