Попробуйте такой вариант: Запускаем скрипт.
Режем и потом нажимаем правую кнопку, чтобы выйти из режима Cut.
Скрипт работает для всех режимов на панели Modify.
try destroydialog igorznag_auto_weld catch()
rollout igorznag_auto_weld "Auto Weld"
(
timer clock "testClock" interval:1 active:true
local old_commandmode
on clock tick do
(
try
(
if selection.count==1 then
(
co=modpanel.getCurrentObject()
if classof co==Editable_Poly then
(
cur_cm=toolmode.commandmode
cma=#(#SELECT,#MOVE,#ROTATE,#NUSCALE,#USCALE,#SQUASH)
if finditem cma cur_cm !=0 and old_commandmode==#MODIFY then
(
OLDsub=subobjectLevel
subobjectLevel = 1
OLDweld=$.weldThreshold
$.weldThreshold = 0.01
$.EditablePoly.SetSelection #Vertex #{}
actionMan.executeAction 0 "40044"
$.EditablePoly.weldFlaggedVertices ()
$.weldThreshold = OLDweld
subobjectLevel = OLDsub
)--if classof co==Editable_Poly then
old_commandmode=toolmode.commandmode
)--if classof co==Editable_Poly then
)--if selection.count==1 then
) catch()
)--on clock tick do
); createdialog igorznag_auto_weld 100 100 pos:[-200,-200]
macros.run "Editable Polygon Object" "EPoly_Cut"
Правильно ли я понял, что:
каждую секунду проверяется не сменился ли инструмент на
#SELECT,#MOVE,#ROTATE,#NUSCALE,#USCALE,#SQUASH и если да, то велдит.
А по другому никак? Паузы до нажатия какой-то клавиши в максскрипт нет?
Просто это как-то не совсем хорошо. Первое последствие обнаруживается сразу: несколько undo корёжит геометрию.
Если нужно прикрепляю файл 2012 макса. В этом ракурсе (если не вертеть камеру), если резать cut-ом из вершины 1 в вершину 2, то в вершине 2 всегда глюк.
^_^Паузы до нажатия какой-то клавиши в максскрипт нет?
Есть, только такой вариант: Запускаем скрипт.
Режем и потом выходим из режима Cut:
1. нажимаем среднюю кнопку мыши (или клавишу Esc).
2. нажимаем правую кнопку мыши.
В белое поле (Mini) Listener нажимаем клавишу Esc или Enter.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
^_^
macros.run "Editable Polygon Object" "EPoly_Cut"
и потом ждёт когда пользователь нажмёт правую кнопку (это будет окончание функции "cut"😉, после чего делает это:
OLDsub=subobjectLevel
subobjectLevel = 1
OLDweld=$.weldThreshold
$.weldThreshold = 0.0001
$.EditablePoly.SetSelection #Vertex #{}--снять выделение
actionMan.executeAction 0 "40044"--инвертировать выделенное
$.EditablePoly.weldFlaggedVertices ()--weld
$.weldThreshold = OLDweld
subobjectLevel = OLDsub
скрипт заменит функцию cut, каждый раз связывая вершины, когда cut ошибается.
Вообщем, помогите, пожалуйста, советом. Как сделать паузу?
igorznag
Режем и потом нажимаем правую кнопку, чтобы выйти из режима Cut.
Скрипт работает для всех режимов на панели Modify.
try destroydialog igorznag_auto_weld catch() rollout igorznag_auto_weld "Auto Weld" ( timer clock "testClock" interval:1 active:true local old_commandmode on clock tick do ( try ( if selection.count==1 then ( co=modpanel.getCurrentObject() if classof co==Editable_Poly then ( cur_cm=toolmode.commandmode cma=#(#SELECT,#MOVE,#ROTATE,#NUSCALE,#USCALE,#SQUASH) if finditem cma cur_cm !=0 and old_commandmode==#MODIFY then ( OLDsub=subobjectLevel subobjectLevel = 1 OLDweld=$.weldThreshold $.weldThreshold = 0.01 $.EditablePoly.SetSelection #Vertex #{} actionMan.executeAction 0 "40044" $.EditablePoly.weldFlaggedVertices () $.weldThreshold = OLDweld subobjectLevel = OLDsub )--if classof co==Editable_Poly then old_commandmode=toolmode.commandmode )--if classof co==Editable_Poly then )--if selection.count==1 then ) catch() )--on clock tick do ); createdialog igorznag_auto_weld 100 100 pos:[-200,-200] macros.run "Editable Polygon Object" "EPoly_Cut"^_^
Правильно ли я понял, что:
каждую секунду проверяется не сменился ли инструмент на
#SELECT,#MOVE,#ROTATE,#NUSCALE,#USCALE,#SQUASH и если да, то велдит.
А по другому никак? Паузы до нажатия какой-то клавиши в максскрипт нет?
Просто это как-то не совсем хорошо. Первое последствие обнаруживается сразу: несколько undo корёжит геометрию.
Если нужно прикрепляю файл 2012 макса. В этом ракурсе (если не вертеть камеру), если резать cut-ом из вершины 1 в вершину 2, то в вершине 2 всегда глюк.
Вложения
igorznag
Режем и потом выходим из режима Cut:
1. нажимаем среднюю кнопку мыши (или клавишу Esc).
2. нажимаем правую кнопку мыши.
В белое поле (Mini) Listener нажимаем клавишу Esc или Enter.
macros.run "Editable Polygon Object" "EPoly_Cut" getKBValue prompt:"Enter:" OLDsub=subobjectLevel subobjectLevel = 1 OLDweld=$.weldThreshold $.weldThreshold = 0.01 $.EditablePoly.SetSelection #Vertex #{} actionMan.executeAction 0 "40044" $.EditablePoly.weldFlaggedVertices () $.weldThreshold = OLDweld subobjectLevel = OLDsub^_^
Жаль...
Пока что самый быстрый надёжный вариант это сделать горячую клавишу велда и обновлять иногда.
Но тоже не хочется после каждого ката жать клавишу.
Спасибо.