Сообщения | Дата |
---|
Цитата wosserOne:
Это тоже можно решить? или это уже другое?
Да, для такой карты Checker можно сделать специальный плагин.
| 29.03.2025 |
Цитата wosserOne:
Я не про это, а почему тогда (как видим) мало кто платит за эти скрипторазработки - не интересно общей массе?
Скорее малоизвестно. Я в своё время перешерстил кучу форумов и собирал скрипты со всего интернета. Иногда просто листаешь страницу на "Script Spot" и случайно натыкаешься на крутой скрипт, про который инфы просто больше нигде нет.
В общем, тут не только писать скрипты нужно, но и распространять инфу про них.Я скоро буду записывать мини-уроки по сборке, чтобы показать, как можно ускорить работу в программе.
Цитата wosserOne:
То, что на сайте Автодоски, оно может решаться силами скриптостроителей?
Как раз скриптостроителями эти запросы и решаются. Именно так и появились RappaTools, rapid Tools и многие другие сборки.Внутренний код макса конечно никто не переписывает, но плагинов уже выпустили достаточно много.
| 29.03.2025 |
Цитата mozag:
Что-то ссылка не грузится.
Просто там ссылка на YouTube, а без VPN туда не зайти.
Цитата mozag:
А есть ли возможность написать скрипт, чтобы можно было сделать раздел в редакторе материалов, как в Unreal Engine?
В "Slate Material Editor" можно библиотеку материалов создать, она вполне подходит для этого.
Цитата wosserOne:
кто просит? это какой-то опрос? голосование?
Есть сайт коммьюнити Autodesk, там уже столько запросов накопилось, но разрабы как будто не замечают их.
Цитата wosserOne:
на какую аудиторию рассчитаны скрипты? интерьер, моделлинг, экстерьер... ? вопросы
Они подходят для любого направления.По сути, под каждую задачу у художника выстроен своё пайплайн и он ищет скрипты конкретно под него, а большего и не нужно.Кому-то хватает базовых функций программы, а кто-то постоянно учится новому и приходится искать скрипты, плагины и т.п.
Так как 3Ds Max сейчас больше ориентирован на архитектуру и интерьеры, то новички изучают программу только под эти задачи и им не нужно +100500 скриптов для работы.
| 28.03.2025 |
Я поэтому и занялся скриптами.Пришлось написать свой глобальный апдейт для макса со всеми улучшениями, которые разрабов уже лет 20 просят сделать.
Например, при вращении вьюпорта я добавил в макс автоматический выход из ортографии в перспективу и временную блокировку камер, чтобы они случайно не сдвигалась и стало гораздо приятнее работать.Выход из камеры я объединил с клавишей Z, так как такой вид всё равно заблокирован для фокусировки на выбранных объектах.
И таких улучшений уже под сотню)
Ссылка
| 27.03.2025 |
Цитата wosserOne:
Четырёхугольник по трём точкам. Это делается вашу дивизию за 3 дня! Ну те кто программируют - скажите точно за сколько.
Так то такое за 3 минуты пишется, если совсем по простому)
[[link:image_uri:803743,]][[image:803743,sky_image_forum]][[/link]]
| 26.03.2025 |
Самопроизвольно выбрасывает в проекцию ortografic или top, при чем под углом
Я с таким ниразу не сталкивался, но, как показывает практика, в таких случаях помогает установка последнего пака обновлений и проверка сцены на мусор или вирусы с помощью Prune Scene.
| 21.03.2025 |
Как заставить Hide Unselected работать от клавиши в 3ds max 2023 (windows 10)?
Проверь функцию "Keyboard Shortcut Override Toggle", она должна быть активна.[[link:image_uri:697142,]][[image:697142,sky_image_forum]][[/link]]Я сделал скрипт для операции Hide Unselected.Теперь эта операция работает, как изоляция для подобъектов.https://youtu.be/O7DFrMMKHyg?si=8PnARYfv7IP4FPpY&t=538
| 25.10.2023 |
В общем, как выяснилось, этот баг макса обычным скриптом убрать нельзя, а жаль.
Цитата Legion-236:
Цитата AI-Idrey:
Полезный скрипт! Здорово было бы, если из плана или вида сбоку при зажатом ALT+колесико происходило бы вращение в ПЕРСПЕКТИВЕ, а не в ортографической проекции. Эх, мечты...
Я не пользуюсь орто проекцией в принципе. поэтому этот скрипт тупо меняет орто на перспективу принудительно. Скопируй нижний код в блокнот и сохрани с расширением *.ms в папку 3ds Max ... \scripts\Startup\
Хороший скрипт, можно добавить проверку на активную камеру или источник света и зажатый Alt.А то иногда нужно развернуть вид Top на 90 градусов, тогда он превращается в ортографию и нужно поработать именно в ней, а не в перспективе.
Можно добавить в код:
fn sprawdz_TM=(local ViewTp = viewport.getType()if(ViewTp == #view_iso_user or ViewTp ==#view_camera or ViewTp ==#view_spot ) and keyboard.altPressed then (viewport.setType #view_persp_user))
| 17.06.2023 |
Вопрос к знатокам.Пишу скрипт для автоматического переключения вида из Camera или Light в Perspective при зажатом ALT+MMB, чтобы камера не сдвигалась и сразу произошло вращение вида в перспективе.Столкнулся с проблемой, что при зажатом колёсике, если срабатывает любой скрипт, который переключает вид из камеры в перспективу (MMB+P), то в максе перестаёт действовать отмена до тех пор, пока не создашь вручную новый объект в сцене.Если использовать функцию undo off на весь скрипт, то отмена всё же будет работать, но только до момента повторного использования скрипта, после чего она снова вырубается.Вопрос, как это можно обойти? Возможно ли запустить функцию отмены через скрипт, а не через создание объекта вручную?
| 17.06.2023 |
Представляю вам 3 новых инструмента MULTI Extrude, Chamfer и Outline.Скрипты позволяют активировать соответствующие инструменты и модификаторы для Edit Poly, Editable Poly, UVW Unwrap и Shape.Если курсор мыши наведен на правый край монитора, то активируются модификаторы Extrude, Chamfer, Inset или Outline.Если курсор наведен на любой другой край монитора, то активируется пресет с настройками, который вы можете прописать вручную в файле скрипта.Подробности смотрите в видео.Скрипт уже доступен для подписчиков на бусти:https://boosty.to/3dmaxturbo/posts/89be8bd5-8f2f-4ac8-a007-41277aa8f682?share=post_linkТакже прикрепляю ссылки на полезные модификаторы:Extrude/Inset/Outline Faces от Vojtech Cada: https://www.scriptspot.com/3ds-max/scripts/extrudeinsetoutline-faces-modifiers SplineOffset от IToo Software:https://www.itoosoft.com/ru/freeplugins/splineoffset Connect Edges от Grégoire Eymon: https://www.scriptspot.com/3ds-max/scripts/connect-edges
__________________________________________________Продолжаем серию MULTI скриптов.Я создал ещё 3 отличных инструмента - это MULTI Cut, Cap и Relax.Их особенность в том, что теперь вы можете пользоваться многими крутыми инструментами, нажимая всего 1 горячую клавишу.Особое внимание заслуживает скрипт MULTI Cap, который поможет вам сделать правильную топологию у вашей модели. Также я обновил MULTI Extrude, Chamfer и Outline, исправил ошибки и добавил функцию Extrude для точек у сплайнов.Просто скачайте заново архив и установите скрипты, они автоматически обновятся.Скрипт уже доступен для подписчиков на бусти:https://boosty.to/3dmaxturbo/posts/249d84e5-9eae-4126-87dc-d6a319b666ed?share=post_linkТакже прикрепляю ссылки на те инструменты, которые я интегрировал в свои скрипты.Border Fill и Mesh-Surface от Vojtech Cada:https://www.scriptspot.com/3ds-max/scripts/border-fillhttps://www.scriptspot.com/3ds-max/scripts/mesh-surfaceRapid Tools:https://rapidmxs.com/product/rapidtools-v1-14/CopyTo Pro от Vasily Lukyanenko:https://3dground.net/ru/prod/copyto-pro-3201577Spline Fillet от Bayan Al Safadi:https://admon2nd.gumroad.com/l/DkUyq?layout=profile
P.S. Выпустил важное обновление для MULTI Cut.Теперь появилась возможность использовать активные оси Transform Gizmo для настройки осей трансформации у модификаторов Lathe и Slice.Если курсор находится за пределами рабочего поля:- Для Lathe активируется функция Flip Normals.- Для Slice переключается плоскость Remove Positive/Negative.Если навести курсор вправо на панель Modify:- Активируется модификатор Slice.Также исправил ошибки у MULTI Relax.
__________________________________________________________
Собрал библиотеку из 100 самых популярных MatCap материалов и написал скрипт MULTI Nitros View, который позволяет быстро переключаться с одного типа отображения вашего Viewport (High Quality, Performance, DX Mode, User Custom, Facets, Clay, Ink и т.д.) на Standard и обратно.Скачать тут: https://t.me/turbo3dmax/16
Ссылка на модель спорткара от Sebastian Carlozzi:https://grabcad.com/library/src-zz1-sport-car-project-1
Скрипт Super Clay от Changsoo:https://cganimator.com/superclaymode-v1-1/
__________________________________________________________Встречайте MULTI Connect.[[link:image_uri:672304,]][[image:672304,sky_image_forum]][[/link]]
Возможности скрипта:- Переключает и активирует камеры.- Добавляет модификаторы Edit Poly или Edit Spline.- Переносит выбранные подобъекты с Unwrap UVW на Edit Poly.- Добавляет вершины с помощью Insert Vertex.- Соединяет вершины и делает триангуляцию с помощью Target Connect.- Делает Collapse вершин, если Connect невозможен и очищает изолированные вершины.- Для рёбер и полигонов применяет инструмент Connect или Bridge.- Соединяет точки у сплайнов и объединяет их.- Разбивает сегменты с помощью Divide.- Соединяет сплайны с помощью Cross Section.- Назначает единую группу сглаживания с помощью Smooth Selected.Дополнительные функции:- Если курсор наведен на левый край монитора, то активируется список камер в сцене.- Если зажать колесо мыши, то для вершин активируется инструмент Insert Vertex, а для рёбер или полигонов мини-панель с настройками для Connect или Bridge.- Если выбран только объект или курсор мыши наведен на панель Modify, то добавятся модификаторы Edit Poly или Edit Spline.Подробнее тут: YouTube Скачать тут: Boosty PSДля очень полигональных моделей перенос большого количества рёбер с Unwrap UVW на Edit Poly может занимать большое количество времени.Для быстрого переноса рекомендую установить скрипт UVTools3 от -NiK-, в котором также есть много полезных инструментов для работы с развёрткой.PSSОбновил скрипт, в 5 режиме вместо Retriangulate теперь Smooth Selected.Скрипт UVTools3 можно скачать тут: https://hqdetails.com/shop/uvtools
___________________________________________________________Выпустил скрипт MULTI Weld.
[[link:image_uri:672778,]][[image:672778,sky_image_forum]][[/link]]
Возможности скрипта: Для объектов:- Создаёт камеры или источники света (Free, Target, Vray, Coronа).- Сбрасывает трансформации в [0,0,0]- Выравнивает объекты и подгоняет габариты. Для геометрии:- Назначает модификатор Vertex Weld.- Активирует инструмент Create.- Объединяет вершины с помощью улучшенного Target Weld.- Для рёбер активируется улучшенный Insert Loop, Flow Connect или Swift Loop.- Для полигонов применяет инструмент Tessellate и находит наложенные друг на друга полигоны.Для сплайнов:- Назначает модификатор Normalize Spline.- Объединяет точки у сплайнов с помощью Weld.- Cоединяет сегменты с помощью Refine Connect.- Активирует Bind для точек.Скачать тут: BoostyПодробнее в видео.
PSДобавил объединение для вершин и рёбер в режиме Constraint.Подробнее тут: Telegram
PSS
Выпустил небольшое обновление для MULTI-Weld.
Теперь функция выравнивания доступна для опорных точек объекта.Просто перейдите в режим редактирования Pivot Point."Hierarchy" -- "Pivot" -- "Affect Pivot Only" или горячая клавиша "Insert".
___________________________________________________________
В ряду MULTI скриптов пополнение.
Выпустил MULTI-Clear, Quadrify и Remove.
MULTI Clear:- Очищает модель от лишних модификаторов, вершин и рёбер. - В режиме Unwrap UVW сшивает острова с помощью функции Reset Peel. - В дополнительном режиме полностью очищает развёртку UVW с помощью модификатора UVW Mapping Clear.
MULTI Quadrify: - Применяет модификаторы Retopology и Garment Maker. - Достраивает правильную топологию с помощью операций Build Corner или Build End. - В дополнительном режиме для выбранных подобъектов применяет инструмент Quadrify. - В режиме Unwrap UVW активирует инструмент Point-to-Point Edge Selection.
MULTI Remove: - Конвертирует объекты в Editable Poly или Editable Spline. - Грамотно удаляет вершины и рёбра, для полигонов применяет Auto Smooth. - Проверяет геометрию на наличие T-вершин, T-рёбер, NGon полигонов и треугольников. - Для сплайнов удаляет точки, сегменты и сплайны. В дополнительном режиме очищает привязки вершин к сегментам (UnBind), а для сплайнов активирует Boolean в режиме Substract.Скачать можно на Boosty.
______________________________________
Представляю вам единую сборку скриптов и инструментов для ускорения работы в 3ds Max.
Скрипты и плагины совместимы с 3ds Max 2018 и выше.
Поддержать проект и скачать сборку можно на Boosty.
Буду рад вашим отзывам и комментариям)
Стрим по данной сборке можно посмотреть здесь.
Установка сборки: YouTube
Дополнительные программы:AutoHotPie - программа для создания радиального меню для Windows. StrokesPlus - программа для управления жестами.
Помимо моих скриптов, я также включил в сборку бесплатные скрипты и плагины от авторов:Vojtech Cada Nikolay Litvinov3D GROUND CHANGSOO EUNmiauu'sSpline DynamicsiToo SoftwarePolyHertzPixamoonJokerMartiniVladislav BodyulRapidMXS______________________________
AutoHotPie - позволяет создавать радиальные меню для любой программы в системе Windows.
Теперь вы можете активировать нужные инструменты одним движением мыши с помощью отправки хоткеев в программу или использовать дополнительные команды.
Ссылка на программу: https://github.com/dumbeau/AutoHotPie/releases
Готовый пресет для 3Ds Max я включил в свою сборку скриптов, подробнее про неё можно прочитать выше.
| 22.05.2023 |
Цитата SpectrumZX:
Спасибо за скрипты, очень крутые. Есть вопрос, они у вас все под макс 2021, планируется ли их обновлять для максов версий 2022, 2023?
Все скрипты актуальны для версий 3Ds Max от 2014 и выше, тестировал в том числе и на 2024, всё отлично работает.
Цитата SpectrumZX:
Ещё было бы супер круто, если бы вы подписчикам бусти показали и рассказали как можно писать подобные скрипты, понятно, что подобного материала есть на ютубе, есть прекрасная справочная информация у автодеска по макскрипту, но скорее всего есть те, которые как я, всё хотят начать этим заняться изучить, но всё никак)
Да, можем создать новую тему в закрытом чате, там можно будет задать вопросы по MaxScript.Но для полноценного обучения чат не подойдёт, тут нужно учить матчасть и знать программирование хотя бы на базовом уровне. Для этого есть хорошие книги и видео-уроки.
| 11.05.2023 |
Ладно, посмеялись и хватит)
Большая просьба ко всем участникам форума: не флудите в данной ветке, мне действительно важно ваше мнение о моей работе, так как в скрипты вложено много сил и времени.
В видео достаточно подробно показаны возможности скрипта и я буду очень рад вашей конструктивной критике.
Благодарю всех за вашу поддержку!)
| 11.05.2023 |
Цитата Makasharip:
Аккаунты и комменты выше выглядят как на сайте с услугой удлинения пениса. Я для друга искал...
Другу хоть помогло?))
| 10.05.2023 |
[[link:image_uri:658623,]][[image:658623,sky_image_forum]][[/link]]
Всем привет!
В этом W.I.P я буду показывать свои разработки для ускорения работы в 3Ds Max.
Все мои новые скрипты уже доступны для моих подписчиков на boosty: https://boosty.to/3dmaxturbo
Чтобы не пропустить выход новых скриптов и уроков, можете подписаться на мой YouTube и Telegram каналы.
Буду рад вашей обратной связи)
_____________________________________________________
Написал скрипт, который переключает ваш текущий вид на его ближайшую ортогональную проекцию, сохраняя ориентацию вида и дистанцию до объекта.
Также скрипт может изменить ориентацию View Cube под новую систему координат "Grid". Чтобы активировать эту функцию необходимо выбрать или создать новую систему координат Helpers - Grid и активировать скрипт.
| 10.05.2023 |
Есть скрипт но он отдельно работает от максовского вращения вокруг выбранного поинта и его можно на горячую кнопку назначить�https://www.youtube.com/watch?v=UQobEyu9ldA
Да, видел этот скрипт, но проще уже переключать руками)
| 20.05.2022 |
Цитата Borka82:
А просто выбрать и альт и средняя кнопка мышки не подходит или Вы между режимами переключаться хотите?
В том то и дело, что нужно переключаться, т.к. не всегда нужно вокруг этого поинта вращаться.
Был бы хотя бы Cycle какой-нибудь для них...
| 20.05.2022 |
В новых версиях Макса появилась такая крутая функция "Orbit point of interest" для вращения вида вокруг курсора мыши с привязкой к поверхности.
Как узнать команду для этой функции, чтобы назначить её на горячую клавишу?
Или можно это сделать с помощью скрипта?
[[image:569154,]]
| 20.05.2022 |
Полный контроль над клонированием
Вот такой вопрос возник, какой командой в Maxscript можно скопировать выбранные сплайны в 3 режиме подобъектов (Spline), не сдвигая их с места, как обычно с Shift.
Во втором режиме(Segment) можно сделать Detach с вкл. Clone, а в 3 режиме такого нет.
| 19.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Цитата -NiK-:
Обучение это святое.
У подобъектов нет ориентации в пространстве (если под ориентацией подразумевается поворот, масштаб и тд).
Подобъекта "элемент" не существует. Полигоны элемента можно получить через getElementsUsingFace.
Советую сразу идти в polyop и meshop и изучать все эти методы. Центры полигонов/фейсов - getFaceCenter.
Далеко не все методы, которые приходят вам в голову будут в готовом виде, как getFaceCenter. Центр эджа, конечно это центроид двух его точек, а центр элемента это центроид всех его точек.
snapshotAsMesh "конвертирует" editablePoly в mesh, поэтому про индексацию всего кроме вертексов можно будет забыть. И всегда делайте delete smesh для этого снапшота по окончанию функции, сам он не удаляется и будет забивать память.
Благодарю за помощь! Буду дальше разбираться)
| 14.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Цитата -NiK-:
Не зря я вам модификатор Mirror предлагал. Я и сам его использовал в подобном макросе.
Чем глубже вы лезете в эти дебри, тем менее надежным будет ваш скрипт. Единственная разумная причина решать такую простую задачу таким сложным образом - самообучение.
Много разной интересной информации, а я как раз сейчас учусь делать что-то посложнее обычных макросов.
Положение подобъектов в пространстве и их ориентация - это очень нужная вещь.
Например, благодаря знаниям о положении вершин, я написал простенький скрипт для создания цилиндра, бокса и сферы сразу в выбранной вершине объекта, но чтобы они создавались в центре выбранного ребра или полигона, нужно уже рассчитать положение нескольких точек.
| 14.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Цитата -NiK-:
Метод этого господина хоть и выглядит топорно, но он будет гораздо надёжней.
http://www.scriptspot.com/3ds-max/scripts/unimirror
Спасибо, посмотрю)
___________________________
Посмотрел я скрипт выше, так выворачивать полигоны, не отделяя их от сетки это конечно сильно)
Чаще всего мне нужно просто зеркалить элемент или уже кусок элемента, так что стандартный <<macros.run "PolyTools" "MirrorElementX">> мне вполне подходит, осталось только придумать, как перемещать отзеркаленные куски на то-же расстояние только в "минус", относительно опорной точки.
В RappaTools тоже так сделано.
[[image:566812,]]
Но там только относительно локальной и мировой опорной точки, и всё на разных командах.Зачем нужно 24 клавиши, если можно обойтись только 5-ю?
1 кнопка на цикл для Center Point
2 клавиши на Copy и Instance
2 клавиши на Mirror по горизонту и вертикали
_________________________________
Появился вопрос, как рассчитать положение подъобъекта в пространстве и переместить его относительно локального центра объекта?
Есть функция snapshotAsMesh $ , с ней можно получить информацию о положении всех вершин объекта в пространстве (с рёбрами и полигонами почему-то не выходит, видимо из-за того, что она записывает триангулированный Mesh).
Итак, сначала нам нужно получить координаты элемента в пространстве.
Конвертируем его в вершины и записываем их в массив:
VertSel = (SelMod.GetSelection #Vertex) as array
Затем необходимо узнать их общее положение (Как ???)
Можно ли записать через среднее значение координат выбранных точек?
MeshObj = snapshotAsMesh $
local SelMod = Filters.GetModOrObj()
local VertSel = (SelMod.GetSelection #Vertex) as array
local N = #{}
local Nv = VertSel.count
for i=1 to Nv do N=N+(getVert MeshObj VertSel[i]))
T = N/Nv -- Координаты элемента
move $.selectedVerts [0, -T.y ,0] -- Перемещение вдоль оси Y относительно [0,0,0]
TLp = $.transform p3 -- Координаты Local Point
Будет ли это работать?
move $.selectedVerts [0, TLp.y-T.y ,0]) -- Переместит ли он зеркально относительно Local Point?
| 12.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Цитата -NiK-:
https://pastebin.com/fqwmJm3j
Добро пожаловать в матрицы трансформаций и удачи в понимании манипуляций с ними :D
Я в своё время намучился.
Написанные выше методы не единственно возможные.
Осталось ещё разобраться, как несколько выбранных объектов зеркалить.
local objA =if classof obj == objectSet or classof obj == array then obj else #(obj)
Если добавить массив, то в локальных координатах и относительно центра объекты не зеркалятся, тут уже либо перебором каждого объекта, либо есть проще способ.
Цитата -NiK-:
С подобъектами советую остановиться на модификаторе mirror и не морочить голову.
Согласен, я с с него начал, но тоже запутался с этими матрицами, сейчас думаю уже разберусь)
| 12.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Цитата -NiK-:
https://pastebin.com/fqwmJm3j
Добро пожаловать в матрицы трансформаций и удачи в понимании манипуляций с ними :D
Я в своё время намучился.
Написанные выше методы не единственно возможные.
У меня просто нет слов... ОГРОМНОЕ СПАСИБО -NIK- !!! Твой опыт бесценен!
Скрипт получился просто Шикарный! Осталось только всё соединить и выложить готовую версию!
Буду дальше разбираться с подобъектами)
https://pastebin.com/n5ujkmqM
| 12.05.2022 |
Maxscript. Проверка по куску имени из переменной.
Цитата -NiK-:
modPanel.getCurrentObject() == $.baseobject
Логично) Спасибо!
Если #local, то там у каждого объекта своя точка ($.position или $.pivot).
Если #selection, то там не $.center, а усредненный центр выделенных объектов.
Если #System, то всё посложнее, но возможно вам хватит мирового центра [0,0,0].
https://pastebin.com/fbXwhhUs
Раз вам нужны мировые координаты, то вы можете просто создать матрицу из этой точки через transMatrix.
Создал отдельную тему, т.к. уже сам миррор не пойму, как запустить через transMatrix.
Мне просто очень трудно разобраться в правилах написания таких команд, синтаксис для меня пока как в тумане.
Цитата -NiK-:
Цитата kolt_050:
Всем привет! Есть ли функция для проверки выбора базового объекта в стеке модификаторов? Индекса то у него нет, по логике должен быть = 0, но нет)
modPanel.getCurrentObject() == $.baseobject
Есть идея сделать на 2 горячие клавиши перебор модификаторов снизу вверх и обратно.
Столкнулся с проблемой, как посчитать все модификаторы, чтобы на последнем он перешёл на базовый модификатор, а не выдавал ошибку. И наоборот, чтобы с базового перешёл вверх на последний по нумерации модификатор, т.е. который прямо над ним.
Вот пример кода:
https://pastebin.com/adEVxGpY
_____________________________
Либо начинать выполнение скрипта, только когда выбран последний модификатор из списка, чтобы записать его номер.
Есть ли возможность создать условие для проверки на ошибку? Чтобы вместо окна с ошибкой сработал например return()?
[[image:566811,]]
Или это через try и catch можно как-то сделать?
_____________________________________
В общем, чтобы не перебирать и не считать количество модификаторов в сцене, сделал такой цикл:
https://pastebin.com/WiJmgYdb
Больше 20-ти модификаторов, думаю редко кто добавляет, или 100 поставить?))
| 12.05.2022 |
Maxscript. Быстрый Mirror относительно выбранного Center Point.
Подскажите пожалуйста, как можно отзеркалить объект в мировых осях, относительно выбранной опорной точки?
Не могу разобраться каким образом вообще в максе происходит отзеркаливание.
Нашёл инфу, что это делается через обычное масштабирование с отрицательными значениями по осям.
Вариант для локальных осей: $.transform = prescale $.transform [1,-1,1]
А нужно использовать мировые оси и опорную точку.
Определить активный Center Point достаточно просто.
getCoordCenter()
-- #local
-- #selection
-- #System
Необходимо сделать обычный Mirror для каждой мировой оси X Y Z и выбранной опорной точки, используя функцию выше.
Также интересно, как можно отзеркалить таким же образом полигоны в режиме подобъектов.
Вот пример для оси Y. Но там используется переменная для координатных осей, а не опорной точки.
https://pastebin.com/86YsVHN5
| 12.05.2022 |
Maxscript. Создание надписи с таймером отображения поверх рабочего окна.
Благодарю за ответ!
Да, я видел код, мне интересно, есть ли ещё проще варианты.
В Майе это вообще в 1 строчку можно сделать.
Проще действительно без таймера, просто добавить команду закрытия этого уведомления на горячую клавишу своего скрипта инструмента Select или Move например. Или на все сразу, но это уже перебор))
__________________________
Спасибо ещё раз за код!) Иногда случайно на клаве по горячей клавише попадёшь и даже не знаешь, что у тебя на модели уже притаились дублированные оверлапы)
https://pastebin.com/w5Jn0wp5
| 11.05.2022 |
Maxscript. Создание надписи с таймером отображения поверх рабочего окна.
Всем привет! Есть такой вопрос. Есть функция для отображения надписи на экране (например статистика вершин в сцене). Нужно, чтобы она не висела на экране постоянно, а появлялась только на 3 секунды после срабатывания скрипта.
[[link:image_uri:566320,]][[image:566320,sky_image_forum]][[/link]]
Пример кода с уведомлением
https://pastebin.com/13HCUjNB
[[link:image_uri:566326,]][[image:566326,sky_image_forum]][[/link]]
Пример для таймера из хэлпа
https://help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__files_GUID_9A4F0A09_BB42_4EED_95CC_6B3D06939640_htm
[[image:566321,]]
| 11.05.2022 |
Maxscript. Проверка по куску имени из переменной.
Цитата -NiK-:
Этот форум плохо предназначен для пересылки кода. Используйте pastebin.
Вообще зря вы оккупировали чужую тему вопросами с ней не связанными :) лучше бы создали свою.
Цитата kolt_050:
Сделал такую надпись, но она не пропадает почему-то после таймера.
https://pastebin.com/w5Jn0wp5
Окно создается за пределами монитора, чтобы сделать вид, что его нету.
Спасибо) Буду им теперь пользоваться.
[[link:image_uri:566310,]][[image:566310,sky_image_forum]][[/link]]
Отдельно функция надписи работает нормально.Но стоит добавить таймер и она даже не появляется.
Вообще зря вы оккупировали чужую тему вопросами с ней не связанными :) лучше бы создали свою.
Согласен, тут уже другая тема пошла.
________________________________
Всем привет! Есть ли функция для проверки выбора базового объекта в стеке модификаторов?
Индекса то у него нет, по логике должен быть = 0, но нет)
А то приходится проверку делать, выбирая базовый модификатор и сравнивая с выбранным ранее в стеке.
local SelMod = Filters.GetModOrObj()
modPanel.setCurrentObject $.baseObject
local CurObj = Filters.GetModOrObj()
modPanel.setCurrentObject SelMod
| 11.05.2022 |
Maxscript. Проверка по куску имени из переменной.
Цитата Evilis:
Вы бы на чем то одном сконцентрировались )))
if (valUp==3) then (destroyDialog ::test)
Есть такое) но в голове идей море)
Сделал такую надпись, но она не пропадает почему-то после таймера.
(
global GW_displayText
try(unregisterRedrawViewsCallbackGW_displayText)catch()
(
fn GW_displayText = (
wPos = GW.GetWinSizeX()*0.5
hPos = GW.GetWinSizeY()*0.2
gw.htext [wPos,hPos,0] "DUPLICATE COMPLETE" color:red
gw.updateScreen()
)
registerRedrawViewsCallback GW_displayText
(
timer clock "testClock" interval:1000 --tick once a second
on clock tick do
(
N = K+1
K=N
if (N==3) do (unregisterRedrawViewsCallback GW_displayText)
)
)
)
| 11.05.2022 |
Maxscript. Проверка по куску имени из переменной.
Цитата TheNMax:
Цитата kolt_050:
Кто-нибудь знает, как проверить номер выбранного модификатора и записать в переменную? Везде инфа только по проверке названия модификатора либо класса. Просто названия модификаторов могут совпадать, а нужно найти именно выделенный модификатор.
curObj = modPanel.getCurrentObject()
indexMod = modPanel.getModifierIndex $ (curObj)
Супер! То что надо было! Сделал условие для колапса стека для выбранного модификатора.
local curObj = modPanel.getCurrentObject()
local indexMod = modPanel.getModifierIndex $ (curObj)
if subObjectLevel == 0 then maxOps.CollapseNodeTo $ indexMod off_____________________
Пытаюсь сейчас ещё разобраться с таймерами. Например мне нужно на 3 секунды вывести сообщение на экран, но не в меседже, а просто текстом поверх экрана. timer <name> [interval:<number>] [active:<boolean>]
Вот пример со всплывающим окном.
rollout test "Test Timer"
(
timer clock "testClock" interval:1000 --tick once a second
label test"1"
on clock tick do
(
valUp = (test.text as integer)+1
test.text = valUp as string
)
)
createDialog test
| 11.05.2022 |