Render.ru

Кнопка see thought on/off

Myxamore6e

Активный участник
Рейтинг
5
#1
начал увлекаться скриптами, оказалось весьма удобная штука :)
пытаюсь сделать кнопку которая будет включать и выклкючать see thought , но срабатывает почему-то только первая часть скрипта.
как это исправить?


Код:
macroScript Macro17
	category:"DragAndDrop"
	toolTip:""
(
	if $.xray = off
	(
	$.xray = on
	do = true
	)
	else
	{
	$.xray = off
	do = true
	)
)
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Ошибки:
1) оператор сравнения должен вглядеть так $.xray == off , иначе это присвоение.
2) после сравнение в операторе If должено оканчиваться словом "then": if <expresion> then .... else ....
3) "do" не может быть пременной, это оператор. (пользуся стандартным окном для написания скрипта - из Литенера Cntl - N, там есть подсветка для них)
эти строчки вобще не нужны, можно поудалять.
4) после else должнабыть круглая скобка "("

PS
дополнительно нужно разрулить ситуацию когда выделенно несколько обьектов или не одного, и когда у обьекта нет свойства .xray
Например можно сделать кнопку не актавной в этот момент:
Код:
macroScript Macro17 
category:"DragAndDrop" 
toolTip:"" 
( 
       on isEnabled return (selection.count == 1 and isProperty $ #xray)

       on execute do 
      (
       ....
       -- Тело скрипта 
       ....      
      ) 

 
)
 

Myxamore6e

Активный участник
Рейтинг
5
#3
че-то нечего не получаеца..... я с прогамированием , както не лажу :(
как такое должно выгледить?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
Вцелом все верно было, нужно просто поправить ошибки


Код:
macroScript Macro _ToggleXRay
category:"NewTools" 
toolTip:"ToggleXRay" 
( 
on isEnabled return (selection.count == 1 and isProperty $ #xray) 

on execute do 
( 
if $.xray == off then $.xray = on else $.xray = off 
)

)
Код нужно поместить в файл c расширением xxx.mcr и положить 3dsmax\UI\Macroscript и пезапустить макс
После чего в UI Customize в категории NewMacro сможеш найти свою кнопку, называться будет ToggleXRay.

 

Myxamore6e

Активный участник
Рейтинг
5
#5
Спосибо.
попытаюсь написать что-то подобное по данному примеру.
много вопросов отпало :)
 
Сверху