Меню

Maxscript filein exception ошибка

13 мар 2020

Здравствуйте, Знатоки!

Помогите, пожалуйста, решить проблему.
При попытке запустить скрипт (.ms), мгновенно выскакивает ошибка:

«MAXScript FileIn Exception
Unknown property: «z» in undefined»​

В Maxscript Listner выводится следующий текст:

— Error occurred during fileIn in <File:C:Program FilesAutodesk3ds Max 2011ScriptsImporter.ms>
>> MAXScript FileIn Exception: — Unknown property: «z» in undefined <<​

Больше никакой информации не выводится.
Притом через Evaluate All скрипт нормально запускается и работает без каких-либо проблем и ошибок.
Пытался удалять папку enu из C:UsersUserNameAppDataLocalAutodesk3dsMax2011 — 64bitenu, но результата это не дало.
Пытался частями удалять код из скрипта, пытаясь найти в какой функции проблема, но результата это так же не дало.
Уже раз десть просмотрел весь код скрипта, но так и не нашел этот «неопределенный z».
Самое интересное, что в 3ds max 2020 скрипт запускается без проблем.
Это какой-то «сбой» 3ds max 2011? Если да, то как его вылечить?

Спасибо за помощь.

LastJedi


13 мар 2020

Не видя сам скрипт сложно что-то сказать. Очевидно в скрипте идёт попытка обращения к свойству .z у какой-то переменной, но при этом сама переменная в момент обращения оказывается неинициализирована — неопределена.

13 мар 2020

Я не смог найти эту переменную.
Переменную .z я использую лишь в трех функциях:

fn ReadFVector bs =
(
local v = point3 0 0 0
v.x = ReadFloat bs
v.z = ReadFloat bs
v.y = ReadFloat bs
return v
)
fn ReadVFVector bs =
(
local v = point3 0 0 0
v.x = ReadFloat bs * -1 —отзеркаливаем сетку (нормали ломаются)
v.z = ReadFloat bs
v.y = ReadFloat bs * -1 — поворачиваем сетку лицом вперед
return v
)
fn ReadQuat bs =
(
local q = quat 0 0 0 0
q.x = ReadFloat bs * -1 —отзеркаливаем скелет
q.z = ReadFloat bs
q.y = ReadFloat bs * -1 — поворачиваем скелет лицом вперед
q.w = ReadFloat bs
return q
)

Однако, здесь вроде бы все в порядке. К тому же эти функции задействуются лишь после нажатия кнопки импорта. А у меня даже интерфейс не запускается. Кстати, почему скрипт запускается без проблем через Evaluate All?
Если через л.с. я дам вам ссылку на скрипт (не хочу пока что выкладывать публично), вы сможете поглядеть в чем проблема?

13 мар 2020

Да, могу посмотреть. Присылайте.

Это здорово, спасибо.
Однако, что-то я не могу разобраться, как здесь отправлять л.с.?

LastJedi


13 мар 2020

В профиле (моём) кнопка «Добавить в контакты». Тогда можно будет писать ЛС.
Если удобнее, то можно на почту: LastJedi@ya.ru или Телеграм: @p_ky3

13 мар 2020

По какой-то причине ваш профиль отображается у меня черным окном. :(
Отправил письмо с ссылкой на почту.

Спасибо за помощь.

LastJedi


13 мар 2020

Такое впечатление, что дело не в скрипте. По тексту я «криминала» пока не нашёл. Воспроизвести проблему пока тоже не удалось (пробовал 3ds MAX 2012, 2015, 2017 и 2020). Сейчас, чуть позже, развернётся 2011-й — попробую в нём, но что-то мне подсказывает, что тоже будет работать.

Даже теоретически, причин для «Unknown property: «z» in undefined», в тексте скрипта я не вижу. Можно предположить какой-нибудь конфликт с другими скриптами или что-то посторонние в ms-файле (если он у Вас чем-нибудь отличается то того, что прислали мне).

Буду ещё смотреть…

LastJedi


13 мар 2020

Поскольку у меня пока не воспроизводится проблема, сам попробовать не могу… Надо, как Вы уже писали, удалить из скрипта бОльшую часть кода — оставьте только UI и пустые заголовки функций. Изменится ли что-нибудь?

LastJedi


13 мар 2020

Видимо у меня всё-таки не весь код. В скрипте есть обращение к функции CreateLayer:

Код:

local layerMeshes = CreateLayer "Meshes" --создаем слой Meshes в менеджере слоев

Но её реализации нет. При попытке импорта, в любом Максе вылетает ошибка: Call needs function or class, got: undefined

13 мар 2020

Поскольку у меня пока не воспроизводится проблема, сам попробовать не могу… Надо, как Вы уже писали, удалить из скрипта бОльшую часть кода — оставьте только UI и пустые заголовки функций. Изменится ли что-нибудь?

Удалил весь код из каждой функции. Оставил лишь функции UI. Теперь вообще что-то сверхъестественное выдало:
— Error occurred during fileIn in <File:C:Program FilesAutodesk3ds Max 2011ScriptsImporter.ms>
— Error occurred in anonymous codeblock; filename: C:Program FilesAutodesk3ds Max 2011ScriptsImporter.ms; position: 5161; line: 261
>> MAXScript FileIn Exception: — Syntax error: at +, expected <factor>
— In line: +р <<

Безымянный.png

Причем в лиснере символ после + другой, на кракозябру похож.

Безымянный.png

Сама 261 строка выглядит так:
g_skinFileName = g_SKLDir + sSKLName + «.skn» —сохраняем в переменную путь+имя+расширение SKN файла

Что-то я совсем не понимаю. Позиция 5161 это часть комментария —сохраняем в переменную путь+имяасширение SKN файла

Удалил комментарий полностью и интерфейс запустился.
Восстановил все функции, но опять все та же ошибка с z.

Последнее редактирование: 13 мар 2020

13 мар 2020

Видимо у меня всё-таки не весь код. В скрипте есть обращение к функции CreateLayer:

Код:

local layerMeshes = CreateLayer "Meshes" --создаем слой Meshes в менеджере слоев

Но её реализации нет. При попытке импорта, в любом Максе вылетает ошибка: Call needs function or class, got: undefined

Да, во всей этой суматохе я забыл добавил в конце функции ReadSCB строку:
layerMeshes.addNode newMesh —добавляем сетку в слой Meshes в менеджере слоев

UPD: Только сейчас заметил, что название функции SetupLayer, а не CreateLayer.

Последнее редактирование: 13 мар 2020

LastJedi


13 мар 2020

Позиция 5161 это часть комментария —сохраняем в переменную путь+имяасширение SKN файла

Кстати, тоже тема) MAXScript никогда не любил национальные символы. Были какие-то глюки с чтением файлов, содержащих символы, отличные от латиницы. Я уже как-то и забыл об этом, сам обычно пишу комментарии на английском. Для чистоты эксперимента стоит попробовать убрать все комментарии с русскими буквами.

13 мар 2020

Кстати, тоже тема) MAXScript никогда не любил национальные символы. Были какие-то глюки с чтением файлов, содержащих символы, отличные от латиницы. Я уже как-то и забыл об этом, сам обычно пишу комментарии на английском. Для чистоты эксперимента стоит попробовать убрать все комментарии с русскими буквами.

Как раз этим и занимался со времени последнего моего сообщения. :)
Видимо произошел какой-то сбой и кодировка скрипта сменилась, а я не заметил и продолжил писать комментарии на русском. Но, как оказалось, Макс тот еще вредина и «встал в позу». Пришлось построчно удалять комментарии, вызывающие сбой Макса, пока нервы у меня не сдали и я не удалил все русские комментарии из скрипта. После чего скрипт запустился без проблем. Мне было крайне обидно терять столь нужные для меня комментарии и я решил сверить кодировку моего скрипта с кодировкой скрипта другого автора. И оказалось, что кодировка моего скрипта сбилась. Я восстановил из бэкапа все русские комментарии и изменил кодировку файла на UTF-8. И свершилось чудо!!! Скрипт прекрасно запустился и работает с русскими комментариями. Если честно, я впервые встречаюсь с подобной дичью.

Огромное вам спасибо за помощь. :)

3ds Max Forum

Welcome to Autodesk’s 3ds Max Forums. Share your knowledge, ask questions, and explore popular 3ds Max topics.


Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.


Showing results for 


Search instead for 

Did you mean: 


  • Back to forum


  • Previous

  • Next

smtenglish

261 Views, 0 Replies

‎03-10-2022

09:40 AM

MAxscript filein Exception when trying to load relink bitmaps script


I keep getting the following error when trying to run an .mzp file.

MAXScript FileIn Exception

—Runtime Error: Copy error on file C:usersUSERAppDataLocalAutodesk3dsMAx2022 — 64bitENUusericonsRelinkBitmaps_16i.bmp

It had been working fine but the icon for the script stopped working today and trying to reinstall it is giving me this error.


  • Back to forum


  • Previous

  • Next

0 REPLIES 0


  • Back to forum


  • Previous

  • Next

I wrote a macroscript as a .ms that calls other scripts yesterday and it worked great.
When I tried using it today, the filein for calling other scripts is working for all of my scripts but one. That script that is called is also a macroscript. It’s pointing at the correct file, I know this because I use doesFileExist. It’s unable though to call any of the global variables.
So when I’m trying to create a new window and add the global rollouts to them from the script that is called I get

-- Type error: addRollout requires RolloutClass, got: undefined <<"Worked out"
"is valid is true"
-- Error occurred in IOMorpher.pressed(); filename: C:Users [etc] Autodesk3dsMax2015 - 64bitENUusermacrosToolsScript-ToolsScript.mcr; position: 5653; line: 117
--  Frame:
--   testString:     "\[called script location] calledscript.ms"
--   isValid: true
>> MAXScript Rollout Handler Exception:
-- Type error: addRollout requires RolloutClass, got: undefined <<

I’m not sure why the rollouts as well as the other global variables are undefined after the filein today instead of yesterday.

EDIT: deleted the mcr and am just using the .ms for the script. Still not getting the global variables from the script that is a macroScript.

I have a issues with FileIn() inside a Custom Attribute. Every time I execute my script for the first time I get a undefined class or function. Also I always get the error when I close 3ds max and reopen the scene with my custom attribute on a box.

I hope someone can help me understand what I am doing wrong in my code. I really hope there is a solution because FileIn() is very useful for me to reuse and organize my code. Thanks in advance for the help 🙂

Here is my code:

Global newAttrib = attributes posAttribs
(
fn addFunction FolderName vArray=
(
/*
1)  Get the root position of the installed position of 3ds max
2)  Get in the script file and then in the FolderName of the function
3)  Add all the function inside the vArray in a FileIn Loop
*/
for i = 1 to vArray.count do
(
FolderPosition =  ((GetDir #maxroot)+"scripts\" +FolderName + "\")
FileIn(FolderPosition + vArray[i])
)
)
parameters Param0 rollout:General
(
pPreset0 type:#String ui:ddl_Preset0 default:"..."
pTableHeight type:#Float ui:spn_Height default:100
)--end Param1
parameters Param1 rollout:TopPart
(
pPreset1 type:#String ui:ddl_Preset1 default:"..."
defaultArray1 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist1 type:#boolean default:False
)--end Param1
parameters Param2 rollout:BottomPart
(
pPreset2 type:#String ui:ddl_Preset2 default:"..."
pLegEndShape type:#String ui:ddl_LegEnd default:"..."
defaultArray2 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist2 type:#boolean default:False
)--end Param2
parameters Param3 rollout:Supports
(
pPreset3 type:#String ui:ddl_Preset3 default:"..."
defaultArray3 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist3 type:#boolean default:False
)--end Param3

Local externalFn = #("UI_CaptionChange.ms", "UI_ControlVisible.ms", "UI_MoveVisible.ms")
Local externalMod = #("MOD_Extrude.ms", "MOD_Taper.ms", "MOD_QuadChamfer.ms", "MOD_SweepModifier.ms")
Local TableTypes = sort(#("...", "Dining", "Workbench", "Coffee", "Round"))
Local TopTypes = sort(#("...", "Square", "Rectangle", "Round","Oval","Triangle", "NGon", "Semi Circle", "Quarter Circle"))
Local LegTypes = sort(#("...", "Straight", "Taper", "Cross","U","MultiEnd", "X", "Curve", "T"))
Local LegEndTypes = sort(#("...", "Square", "Rectangular", "Circle","NGon"))
Local SupportTypes = sort(#("...", "CopyTop", "PTP"))
Rollout General "General"
(
dropdownlist ddl_Preset0 "Presets:" items:TableTypes
spinner spn_Height "Height" range:[0,1000,100] type:#float
button btn_Random "Random All" border:True
on General open do
(
addFunction "Mal_Functions" externalFn --Adding all the external function
addFunction "Mal_Modifiers" externalMod --Adding all the external modifiers
ddl_Preset0.selection = findItem ddl_Preset0.items pPreset0
UICaptionChange General 2 "Test"
)
on ddl_Preset0 selected val do
(
pPreset0 = ddl_Preset0.selected
)
)--end TopPart Rollout

Rollout TopPart "Top Part"
(
dropdownlist ddl_Preset1 "Presets:" items:TopTypes
spinner spn_Thickness "Height" range:[0,1000,2] type:#float
spinner spn_Length "Length" range:[0,1000,2] type:#float
spinner spn_Width "Width" range:[0,1000,2] type:#float
on TopPart open do
(
ddl_Preset1.selection = findItem ddl_Preset1.items pPreset1
if defaultExist == False then
(
--defaultArray = UIDefault Testing
--defaultExist = True
)
)
on ddl_Preset1 selected val do
(
pPreset1 = ddl_Preset1.selected
)
)--end TopPart Rollout
Rollout BottomPart "Bottom Part"
(
dropdownlist ddl_Preset2 "Presets:" items:LegTypes
dropdownlist ddl_LegEnd "Leg End Shape:" items:LegEndTypes
on BottomPart open do
(
ddl_Preset2.selection = findItem ddl_Preset2.items pPreset2
ddl_LegEnd.selection = findItem ddl_LegEnd.items pLegEndShape
)
on ddl_Preset2 selected val do
(
pPreset2 = ddl_Preset2.selected
)

on ddl_LegEnd selected val do
(
pLegEndShape = ddl_LegEnd.selected
)
)--end BottomPart Rollout
Rollout Supports "Supports"
(
dropdownlist ddl_Preset3 "Presets:" items:SupportTypes
on Supports open do
(
ddl_Preset3.selection = findItem ddl_Preset3.items pPreset3
)
on ddl_Preset3 selected val do
(
pPreset3 = ddl_Preset3.selected
)
)--end Supports Rollout
)--end posAttribs
modPanel.addModToSelection (EmptyModifier ()) ui:on
custAttributes.add $.modifiers[1] newAttrib --add the attribute in the first modifier

I have a issues with FileIn() inside a Custom Attribute. Every time I execute my script for the first time I get a undefined class or function. Also I always get the error when I close 3ds max and reopen the scene with my custom attribute on a box.

I hope someone can help me understand what I am doing wrong in my code. I really hope there is a solution because FileIn() is very useful for me to reuse and organize my code. Thanks in advance for the help 🙂

Here is my code:

Global newAttrib = attributes posAttribs
(
fn addFunction FolderName vArray=
(
/*
1)  Get the root position of the installed position of 3ds max
2)  Get in the script file and then in the FolderName of the function
3)  Add all the function inside the vArray in a FileIn Loop
*/
for i = 1 to vArray.count do
(
FolderPosition =  ((GetDir #maxroot)+"scripts\" +FolderName + "\")
FileIn(FolderPosition + vArray[i])
)
)
parameters Param0 rollout:General
(
pPreset0 type:#String ui:ddl_Preset0 default:"..."
pTableHeight type:#Float ui:spn_Height default:100
)--end Param1
parameters Param1 rollout:TopPart
(
pPreset1 type:#String ui:ddl_Preset1 default:"..."
defaultArray1 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist1 type:#boolean default:False
)--end Param1
parameters Param2 rollout:BottomPart
(
pPreset2 type:#String ui:ddl_Preset2 default:"..."
pLegEndShape type:#String ui:ddl_LegEnd default:"..."
defaultArray2 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist2 type:#boolean default:False
)--end Param2
parameters Param3 rollout:Supports
(
pPreset3 type:#String ui:ddl_Preset3 default:"..."
defaultArray3 type:#stringTab tabSize:1 tabSizeVariable:true
defaultExist3 type:#boolean default:False
)--end Param3

Local externalFn = #("UI_CaptionChange.ms", "UI_ControlVisible.ms", "UI_MoveVisible.ms")
Local externalMod = #("MOD_Extrude.ms", "MOD_Taper.ms", "MOD_QuadChamfer.ms", "MOD_SweepModifier.ms")
Local TableTypes = sort(#("...", "Dining", "Workbench", "Coffee", "Round"))
Local TopTypes = sort(#("...", "Square", "Rectangle", "Round","Oval","Triangle", "NGon", "Semi Circle", "Quarter Circle"))
Local LegTypes = sort(#("...", "Straight", "Taper", "Cross","U","MultiEnd", "X", "Curve", "T"))
Local LegEndTypes = sort(#("...", "Square", "Rectangular", "Circle","NGon"))
Local SupportTypes = sort(#("...", "CopyTop", "PTP"))
Rollout General "General"
(
dropdownlist ddl_Preset0 "Presets:" items:TableTypes
spinner spn_Height "Height" range:[0,1000,100] type:#float
button btn_Random "Random All" border:True
on General open do
(
addFunction "Mal_Functions" externalFn --Adding all the external function
addFunction "Mal_Modifiers" externalMod --Adding all the external modifiers
ddl_Preset0.selection = findItem ddl_Preset0.items pPreset0
UICaptionChange General 2 "Test"
)
on ddl_Preset0 selected val do
(
pPreset0 = ddl_Preset0.selected
)
)--end TopPart Rollout

Rollout TopPart "Top Part"
(
dropdownlist ddl_Preset1 "Presets:" items:TopTypes
spinner spn_Thickness "Height" range:[0,1000,2] type:#float
spinner spn_Length "Length" range:[0,1000,2] type:#float
spinner spn_Width "Width" range:[0,1000,2] type:#float
on TopPart open do
(
ddl_Preset1.selection = findItem ddl_Preset1.items pPreset1
if defaultExist == False then
(
--defaultArray = UIDefault Testing
--defaultExist = True
)
)
on ddl_Preset1 selected val do
(
pPreset1 = ddl_Preset1.selected
)
)--end TopPart Rollout
Rollout BottomPart "Bottom Part"
(
dropdownlist ddl_Preset2 "Presets:" items:LegTypes
dropdownlist ddl_LegEnd "Leg End Shape:" items:LegEndTypes
on BottomPart open do
(
ddl_Preset2.selection = findItem ddl_Preset2.items pPreset2
ddl_LegEnd.selection = findItem ddl_LegEnd.items pLegEndShape
)
on ddl_Preset2 selected val do
(
pPreset2 = ddl_Preset2.selected
)

on ddl_LegEnd selected val do
(
pLegEndShape = ddl_LegEnd.selected
)
)--end BottomPart Rollout
Rollout Supports "Supports"
(
dropdownlist ddl_Preset3 "Presets:" items:SupportTypes
on Supports open do
(
ddl_Preset3.selection = findItem ddl_Preset3.items pPreset3
)
on ddl_Preset3 selected val do
(
pPreset3 = ddl_Preset3.selected
)
)--end Supports Rollout
)--end posAttribs
modPanel.addModToSelection (EmptyModifier ()) ui:on
custAttributes.add $.modifiers[1] newAttrib --add the attribute in the first modifier

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Maximum video link xmeye ошибка как исправить
  • Maxima mic 0146 ошибка e0