Maxscript macroscript error exception

Проблема При открытии 3ds Max возникает ошибка MAXScript, указывающая следующее:   Исключение ошибки MAXScript MacroScript —Ошибка типа: требуется функция или класс для вызова, получено: не определено   Изображение: окно ошибки MAXScript. Кроме того, в редакторе MAXScript появится следующее макроошибка (или похожее): Изображение: Редактор MAXScript с показанными ошибками VRay

Проблема

При открытии 3ds Max возникает ошибка MAXScript, указывающая следующее:

Исключение ошибки MAXScript MacroScript

—Ошибка типа: требуется функция или класс для вызова, получено: не определено

 

Изображение, добавленное пользователем

Изображение: окно ошибки MAXScript.

Кроме того, в редакторе MAXScript появится следующее макроошибка (или похожее):

Изображение, добавленное пользователем

Изображение: Редактор MAXScript с показанными ошибками VRay.

Окно редактора MAXScript

Категория "macroScript VRayViewportIPR: кнопок VRay": подсказка "V-Ray IPR": "V-Ray Viewport IPR" (on isVisible do ( vrayViewportIPRControl 0 0) включена в переменную "vrayViewportIPRControl 0 1) isChecked (IvdoIvdo) PRControl 0 2 ) при выполнении ( vrayViewportIPRControl 0 3 )"

 

Примечание. Если количество ошибок не может быть превышено, может появиться следующее сообщение об ошибке:
 

Достигнута максимальная глубина вложенной ошибки

Попытка отобразить больше, чем больше диалоговых окон сообщений об ошибках одновременно. Дополнительные сообщения об ошибках см. в файле журнала ошибок.
 

Изображение, добавленное пользователем

Изображение: несколько ошибок приводит к вложенному окну ошибки.

Причины

Поврежденная установка подключаемого модуля.

Решение

Ниже представлены наиболее актуальные варианты решения проблемы. Список не завершен, а для окончательного решения может потребоваться одно из следующих решений или сочетание следующих действий:

Ошибка VRay

Наличие в окне редактора MAXScript компонентов V-Ray: Чистая переустановка V-Ray

Ошибка RailClone

Если в окне редактора MAXScript обозначены компоненты RailClone, выполните чистую переустановку RailClone.

Если ошибки не исчезнут, возможно, потребуется Выполнить чистое удаление 3ds Max ,

См. также:

  • «Ошибка типа. Необходимо указать функцию или класс, получено: не определено» при скрытии и отображении объектов в 3ds Max после удаления пакета лес
  • «—Ошибка типа: при использовании различных видов в 3ds Max функция вызова нуждается в функции или классе, получено: «не определено»»
  • Ширина диалогового окна «Максимальная вложенная ошибка» (Reached) при запуске 3ds Max

Содержание

  1. Ошибка Unexpected end of script
  2. Откуда появляется данная ошибка
  3. Решение проблемы
  4. Maxscript macroscript compile error
  5. Maxscript macroscript compile error

Ошибка Unexpected end of script

Откуда появляется данная ошибка

Иногда, при запуске 3Ds Max, по непонятным причинам может возникать ошибка «MacroScript Compile» с текстом «— Compile Error: Unexpected end-of-script — In Line: — This check . «

Эта ошибка возникает вследствие, того, что некоторые плагины, такие как V-Ray Renderer или Corona Renderer, могут записывать свои скрипты в определенные системные папки 3Ds Max и при попытке такой записи возникает сбой. Поэтому скрипты могут не создаваться или быть частично записаны.

Пример такого скрипта с ошибкой, вы можете видеть на скриншоте ниже:

Решение проблемы

Нажмите кнопку F11 для открытия Maxscript Listener (лог ошибок компиляции), вы увидите ошибку связанную с временным скриптом __temp***.mcr.

Необходимо скопировать данный путь и вставить в файловом менеджере, затем просто найти и удалить забагованный файл.

Внимание!
Ни в коем случае не пытайтесь удалить целую папку ENU, как пишут на многих форумах! Это может привести к потери многих настроек и прервет ваш рабочий процесс! Необходимо удалить только один файл, который вызывает проблему!

Источник

Maxscript macroscript compile error

vot kokda max run

«Welcome to MAXScript.

— Error occurred during fileIn in
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsCharacterPluginObject.ms Exception: — Syntax error: at dotNetControl, expected
— In line: function g
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsMergeAnimation.ms Exception: — Syntax error: at dotNetControl, expected
— In line: dotNetControl l
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsNET_ListViewWrapper.ms Exception: — Compile error: Undeclared variable: dotNetClass
— In line: m_dnColor = dotNetClass »
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsNET_TreeViewWrapper.ms Exception: — Compile error: Undeclared variable: dotNetClass
— In line: m_dnColor = dotNetClass » > MAXScript MacroScript Compile — C:Program FilesAutodesk3ds Max 9UIMacroScriptsMacro_Help.mcr Exception: — Syntax error: at dotNetControl, expected
— In line: button b > MAXScript MacroScript Compile — C:Program FilesAutodesk3ds Max 9UIMacroScriptsMacro_NamedSelSets.mcr Exception: — Syntax error: at dotNetControl, expected
— In line: dotNetControl v
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsCharacterPluginObject.ms Exception: — Syntax error: at dotNetControl, expected
— In line: function g
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsMergeAnimation.ms Exception: — Syntax error: at dotNetControl, expected
— In line: dotNetControl l
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsNET_ListViewWrapper.ms Exception: — Compile error: Undeclared variable: dotNetClass
— In line: m_dnColor = dotNetClass »
>> MAXScript Auto-load Script Error — C:Program FilesAutodesk3ds Max 9stdplugsstdscriptsNET_TreeViewWrapper.ms Exception: — Compile error: Undeclared variable: dotNetClass
— In line: m_dnColor = dotNetClass » > MAXScript MacroScript Compile — C:Program FilesAutodesk3ds Max 9UIMacroScriptsMacro_Help.mcr Exception: — Syntax error: at dotNetControl, expected
— In line: button b > MAXScript MacroScript Compile — C:Program FilesAutodesk3ds Max 9UIMacroScriptsMacro_NamedSelSets.mcr Exception: — Syntax error: at dotNetControl, expected
— In line: dotNetControl v <<«

install .NET Framework 2.0

Не правда, я вот на каракалпаках тестил. Получилось 4 миллиона каракалпаков в поликах и 9 штук в объектах

Не правда, я вот на каракалпаках тестил. Получилось 4 миллиона каракалпаков в поликах и 9 штук в объектах

а мы будем писать в каком режиме такие фпс?
имхо директ3д не катит. на квадрах тока хорошо с ним даже без макстрима.
после geforce4200ti сижу на опенгл. директ3д только в очень редких случаях. в основной работе опенгл лучше. может в 9 починили отвратительную работу директ3д со сплайнами.

впервые слышу об таком..

Странно, видимо ты не внимательно читал описание новых фич. Все усовершенствования вьюпортов нового Макса касаются только Direct3D режима Само собой, сложно почувствовать их, сидя на openGL, который особо и не трогали. И таки да. скорость сплайнов была тоже очень сильно оптимизирована, во многом из-за интеграции хейр стайлинга в Макс (до этого гайды сильно тормозили).
Вообще странные выводы встречаются в этой ветке, то ли по не знанию… то ли еще от чего Реально, взять тот же 300.000 полигональный объект в 8ке и просто перейти на уровень вершин и в 9ке. Неужели не видна разница? В 8ке просто, чтобы перейти на этот уровень нужно прождать несколько секунд, не говоря уже о редактировании..

Юзаю директ еще с 7ки, в свое время перешел на него, когда только появился pFlow и он отображал те же патиклы намного быстрее OpenGL’а, ну а о кешировании мешей я и не упоминаю. Имхо, директ катит ))

лично я не могу в директе работать из-за лагов при включённом кэшировании мешей — раздражает неподетски. не сказал бы что директ3д с отключенным кэширование сильно быстрее опенгл (плюс глюки, плюс заторможенные сплайны). а если посмотреть на остальные пакеты? у всех опенгл и скорость на порядок выше максовского опенгл. так что дискрит сосёт. никогда не забуду, когда засунул в макс модельку из збраша которая еле ворочалачь. ради интереса запихнул её в маю кси и синему. и опупел. в мае был самый быстрый вьюпорт, тормозов макса и близко не было. так что вот не знаю. такие мои наблюдения.

и да, я тоже иногда юзаю директ когда нужно с анимацией работать.

P.S. лично у меня проблем с cut описанных выше не было.

изредка с подобной проблемой сталкиваюсь, но грешу на свои кривые руки

Simple — работать в сантиметрах.
Либо попробовать зайти в System Units и настроить точность. Например, для 20 метров на 20 метров имеет смысл впихнуть в дистан фром оригин 50 метров. Не забудь нажать Enter!

Цитата:
Because of the nature of digital floating-point calculations, distances that are extremely large or extremely small can cause round-off error. Symptoms of round-off error include trouble navigating (zooming and panning become too fast or too slow), unwanted viewport clipping, and unexpected flipping of normals.

Другие симптомы — невозможность точно задать координату, поставить точку в то место, которое надо — скачит влево-вправо и т.д.

только что попробовал — очень помогает, даже при 100 метрах.

Раз уж тут такой спор про луший рендер, то вот такую вещь ктонить пробывал?

Vray Advanced 1.50 R3

Появилась такая вот штука для 9-го макса в 2-х вариантах, 32 и 64 битные.

Если кому интересно попробывать эту штуку, то

Если кому интересно попробывать эту штуку, то

tolko chto skachal i ustanovil na max9
vse otlichno rabotaet
merci boku =)

After its enourmous success on the market V-Ray has become
the renderer of choice in big production studios accross the world.
Feature film productions, multi-million dollar game productions,
huge and small architectual visualizations have trusted their
visuals to V-Ray.
V-Ray has become a benchmark for speed used by many hardware
vendors and other renderer developers to test against.
Richest set of features, cost-effective and production-ready.

# Build 1.50.RC3 (18 Oct 2006)

(*) Support for 3dsmax R9 32- and 64-bit versions.
(*) The V-Ray shading SDK is now a part of the V-Ray installation.
(*) Added «Guess vertical shift» button to the VRayPhysicalCamera.
(*) Added «Distortion type» for the VRayPhysicalCamera.
The «Cubic» distortion type is used in programs like SynthEyes or Boujou
and allows exact camera matching with these programs.
(*) Added an option «Invisible» for the VRaySun to avoid speckles on mirror surfaces.

(*) The DOF planes of the VRayPhysicalCamera match more closely the actual DOF effect.
(*) The V-Ray presets file name can now be changed from the default.
(*) Better memory management for large HDR maps in VRayHDRI.
(*) VRayLightMtl has an option to use an opacity map.
(*) The V-Ray converter script now supports the standard 3dsmax Blend, Shellac,
DoubleSided and Architectural materials and converts them to the
respective V-Ray counterparts.
(*) VRayMtl now can show the diffuse texture map in the viewport.
(*) The V-Ray license server is registered in «Automatic» service
mode instead of «Manual».

(*) «Affect shadows» and «Affect alpha» options do not work for VRayMtl’s inside
a Multi/subobject material. This will be fixed as soon as possible.

Источник

Maxscript macroscript compile error

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report

In a MacroScript all functions are declared within the MacroScript(). But when I need for instance a selection changed callback, a function from inside such a MacroScript cannot be used for the callback. But when I declare the callback function outside as global function, it will not be executed, when the MacroScript is assigned to a button. What is the workaround?

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report

Without knowing what you want to use the callback for and what sort o a callback it is, it’s hard to give an advice. You can always have a global struct inside the macroscript and either create a singleton instance when the macroscript gets evaluated first (in the top-level scope, provided that the ‘on execute’ handler is there) or a new instance on each run (in the ‘on execute’ scope). Depending on what you want to achieve, you can either assign the handler in the struct create event or from elsewhere in your code.

Источник

skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

error message

in max8 i’m getting an error MaxScript Macroscript error exception —No «»*»» function for undefined

Any ideas what may be causing this — cheers


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 12:32 pm

Hello skook,

welcome to the forum! Some quick questions …

1. Did you follow the readme to properly install the script?
2. Did you edit the m2i.ini to specify the directory of Indigo?
3. When does this error occur?
4. What does your scene look like?
5. What lighting do you use?
6. What shaders do you use?

Don’t worry we’ll get it to work somehow … hehe. ;o)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 12:56 pm

yes, to my knowledge
yes
the error happens when i press the max2indigo button i installed in the toolbar through the macroscript.

just a simple cube with the Indigo glass , doesn’t seem to matter which light i use still get the error.

I put the master and slave folder in the c:Indigo folder


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 1:00 pm

Please could you open the scriptlistener when the error occurs
and then post a screencapture of it, thanx! ;o)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 1:04 pm

this is the message it gives:

Welcome to MAXScript.

— Error occurred in anonymous codeblock
— Defined in encrypted script
— Error occurred during fileIn in <File:C:Program FilesAutodesk3dsMax8scriptsMax2IndigoMAX2INDIGO0.615.mse>
— called in execute(); filename: C:Program FilesAutodesk3dsMax8scriptsMax2IndigoMAX2INDIGO0.615.mse; position: 89454
— Defined in encrypted script
— called in anonymous codeblock
— Frame:
>> MAXScript MacroScript Error Exception: — No «»*»» function for undefined


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 1:28 pm

Hmm, I can’t reproduce the error. I guess u3dreal has to take a look at it. :?

btw. Is this the new beta2 of the script?

take care
psor

«The sleeper must awaken»


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 1:39 pm

Ok, I’ve got it. You’re using a free camera, but you’ll need a target camera. ;o))

edit: U3dreal should mention this in the readme to avoid confusion. :P :D ;)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 1:44 pm

it’s v0.615; it’s not doing that error any more. now i get to see the render ui options, but when i go to render it says in the dos window

Fatal error: sceneloaderexcep: failed to load xml doc from path ‘1’ failed to open file line 0, column 0.

and when i uncheck the default xml — i get

— Defined in encrypted script
>> MAXScript Rollout Handler Exception: — Runtime error: File not open. No I/O allowed: C:indigo/defaultgeom.xml <<

[/img]


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 1:56 pm

Erm, … now it sounds like the path in your m2i.ini is wrong.
Please post the content of it and where you installed Indigo.

And it seems u3dreal broke the custom save option somehow,
because it’s not working for me either. ;o)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 2:12 pm

[Dirs]
indigodir=C:indigo

the location of the indigo folder is there. is there anything else i need to reference in the m2i file.


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 2:14 pm

Nope, looks perfect. Just another question. You are using Indigo v0.6 test6 right? ;o)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 3:28 pm

alright getting closer ! — indigo 6 i have now, now when i render out i get the indigo.exe has encountered an error and will now close…


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 3:34 pm

Hmm, … then you have no light at all in your scene, right? :D ;)

take care
psor

«The sleeper must awaken»


skook

Posts: 14
Joined: Tue Nov 07, 2006 12:18 pm

Post

by skook » Tue Nov 07, 2006 3:37 pm

Ahh, thanks Psor ; now i’m cookin i’ll spend some time experimenting :)


User avatar

psor

1st Place Winner
Posts: 1295
Joined: Sun Jun 25, 2006 1:25 am
Location: Berlin
Contact:

Post

by psor » Tue Nov 07, 2006 3:41 pm

You’re welcome skook! I’m eager to see some pics. :D :D ;)

take care
psor

«The sleeper must awaken»


Who is online

Users browsing this forum: No registered users and 3 guests

23 ноя 2016

Большое спасибо за отклик и помощь,
вопрос как раз в том в каом виде, формате и куда предоставлять данные для анимации,
это не единичный массив, а потоковые данные с 20 — 30 девятиосевых датчиков мокап системы, обработанные альфа бета фильтром и произведенными вычислениями абсолютных координат на контроллерах и последующая концентрация данных в общем контроллере,
как вариант — запись анимации через юсб комп мыши(запись анимации мыши), но там две координаты , или через вход клавиатуры, но пока не ясно будет ли достаточной скорость прохождения данных
в данном случае передаетя три координаты, может еще какой способ есть?

с примером из хелпа еще не разбирался, переводчик не срабатывает почему то

Последнее редактирование: 24 ноя 2016

23 ноя 2016

система мокапа в процессе отладки основной конструкции и разработки передачи данных, поэтому ищем варианты

2 дек 2016

Вечер добрый.
Не в первый раз решил осваивать скрипты — подаётся так себе. Есть скрипт:

macroScript Bridge
category: «SLScripts»
tooltip: «Bridge selected edges»
(
selection.bridgeSelected = 1
selection.EditablePoly.Bridge ()
)

скрипт рабочий — но не у меня. Ошибка следующая:
>> MAXScript MacroScript Error Exception:
— Unknown property: «EditablePoly» in $selection <<

Макс 2016 SP2. До этого были странные ошибки с другими примитивными скриптами: «ожидается действие или функция», но то излечилось методом тыка неведомым образом. Не подскажете, я тупой или лыжи реально не едут?

3 дек 2016

скрипт рабочий — но не у меня.

Правильно будет так:

Код:

selection[1].bridgeSelected = 1
selection[1].EditablePoly.Bridge ()

или так:

Код:

$.bridgeSelected=1
$.EditablePoly.Bridge()

3 дек 2016

igorznag, к сожалению, что так, что так — ошибка та же.

Вы выделяете один объект или несколько объектов? Объект является Editable Poly?
Если выделено несколько объектов, тогда нужно использовать первый вариант.
Предоставьте короткое видео или пару скринов, чтобы я увидел ошибку.
Временно запускайте скрипты напрямую (без макроскрипта) и откройте окно MaxScript Listener.

3.jpg
________

4.jpg

4 дек 2016

igorznag, ,благодарю за всё: проблема решилась первым методом. Макс перезапустил, скрипты обновились и всё стало работать. Спасибо.

22 дек 2016

Добрый день.
Есть команда Editable Poly, которая, может при своем некрасивом оформлении, вроде срабатывает хорошо

Код:

do ($.EditablePoly.Bridge ()) or ($.EditablePoly.ConnectEdges ())

если выделены открытые грани — то срабатывает Bridge, если закрытые — то срабатывает Connect

Подскажите — как такое реализовать в Edit Poly:
Последнее на чем я остановился:

Код:

(
  $.modifiers[#Edit_Poly].ButtonOp #ConnectEdges
  if ($.modifiers[#Edit_Poly].bridgeselected != undefined) do
  (
    res = $.modifiers[#Edit_Poly].ButtonOp #BridgeEdge
  )
)

На «Варианте слева на картинке» срабатывает, а «на варианте справа» вместо Bridge происходит Connect.
Понимаю, что в условии написана какая-то ерунда, но не знаю — как правильно

  • 01.JPG

    53,5 КБ
    Просмотров: 369

  • 02.JPG

    55 КБ
    Просмотров: 354

Последнее редактирование: 22 дек 2016

22 дек 2016

Пример:

Код:

co=modPanel.getCurrentObject()
if classof co==Editable_Poly do
(
    es=polyop.getedgeselection co; oe=polyop.getOpenEdges co
    if (es*oe).numberSet>0 then co.Bridge () else co.ConnectEdges ()
)

if classof co==Edit_Poly do
(
    es=co.GetSelection #Edge; co.ConvertSelection #Edge #Border
    oe=co.GetSelection #Edge
    co.Select #Edge oe invert:true; co.Select #Edge es
    if (es*oe).numberSet>0 then co.ButtonOp #BridgeEdge
    else co.ButtonOp #ConnectEdges
)

  • 1.gif

    144,4 КБ
    Просмотров: 395

  • 2.gif

    111,5 КБ
    Просмотров: 373

KoL'T


22 дек 2016

Пример:

Код:

co=modPanel.getCurrentObject()
if classof co==Editable_Poly do
(
    es=polyop.getedgeselection co; oe=polyop.getOpenEdges co
    if (es*oe).numberSet>0 then co.Bridge () else co.ConnectEdges ()
)

if classof co==Edit_Poly do
(
    es=co.GetSelection #Edge; co.ConvertSelection #Edge #Border
    oe=co.GetSelection #Edge
    co.Select #Edge oe invert:true; co.Select #Edge es
    if (es*oe).numberSet>0 then co.ButtonOp #BridgeEdge
    else co.ButtonOp #ConnectEdges
)

Я делал через проверку геометрии на изменение полигонов.
Вот ссылка на скрипт:
https://yadi.sk/d/cHa2iiC_32iw8B

22 дек 2016

Я делал через проверку геометрии на изменение полигонов.

Понятно. Тогда будет так:

Код:

co=modPanel.getCurrentObject()
if classof co==Editable_Poly do
(
    if not co.Bridge() do co.ConnectEdges ()
)

if classof co==Edit_Poly do
(
    n1=co.GetNumFaces(); co.ButtonOp #BridgeEdge
    n2=co.GetNumFaces()
    if n2==n1 do co.ButtonOp #ConnectEdges
)

22 дек 2016

Супер! Спасибо)) уже 2й раз меня выручаете, не могу найти как — вам кармы добавить.
Я в максскрипте еще профан., но очень интересна эта тема.
С английским не дружу, нашел книгу на русском «Основы 3ds Max 8 Maxscript», Help — пытаюсь переводить в гугл переводчике.
Может вы посоветуете еще какую русскую литературу — с чего можно начать?

Последнее редактирование: 23 дек 2016

KoL'T


23 дек 2016

Супер! Спасибо)) уже 2й раз меня выручаете, не могу найти как — вам кармы добавить.
Я в максскрипте еще профан., но очень интересна эта тема.
С английским не дружу, нашел книгу на русском «Основы 3ds Max 8 Maxscript», Help — пытаюсь переводить в гугл переводчике.
Может вы посоветуете еще какую русскую литературу — с чего можно начать?

Очень полезный сайт по Maxscript
http://scriptattack.com/theory/theory.html

5 янв 2017

Подскажите еще со скриптом отключения и включения слоев:
Нашел на scriptspot.com такой скрипт

Код:

(
    for i = 0 to (layermanager.count - 1) do     -- loops through all the layers in the scene
    (
        x = layermanager.getlayer i              -- gets layer
        test = x.name as string                  -- applies the name of layer to test
        location = findString test "ref"         -- finds "ref" in layer name, output 1 if present
        if location == 1 do                      -- if ref is present in the layer name at the begining, 1 then
        (
        if x.on == true then x.on = false  -- the layer x is on, then turn it off
        else x.on = true                   -- the layer x is off, then turn it on. A toggle on/off really                     
        )                                   -- end if
    )                                            -- end loop
)

Он отключает слой с началом названия в примере «ref». Но если в сцене несколько таких слоев и некоторые включены, а некоторые выключены, то он включенные — отключает, а выключенные — включает.
Возможно ли изменить: чтобы если некоторые включены- то он все выключил, а следующим нажатием все включил?

Последнее редактирование: 5 янв 2017

5 янв 2017

Возможно ли изменить: чтобы если некоторые включены- то он все выключил, а следующим нажатием все включил?

Код:

(
    layers_ref=#(); layers_ref_true_count=0
    for i = 0 to (layermanager.count - 1) do   
    (
        x = layermanager.getlayer i; test = x.name as string                 
        location = findString test "ref"       
        if location == 1 do                     
        (
            append layers_ref x; if x.on == true do layers_ref_true_count+=1
        )-- if location == 1 do                                 
    )-- for i = 0 to (layermanager.count - 1) do                                           
  
    for x in layers_ref do if layers_ref_true_count>0 then x.on=false else x.on=true
)

1 мар 2017

Привет. Как написать скрипт, который:

Код:

Просмотреть все слои
если в слое количество мешей  == 1
(
    переименовать меш по названию слоя
    переместить этот меш в нулевой слой
    удалить слой
)
    другое если количество мешей > 1
(
    в начале имени названию меша добавит название слоя
)
иначе (удалит слой)

все что я осилил пока, только это.

Код:

for i = 0 to (layermanager.count - 1) do  
(
    _sl = layermanager.getlayer i
    _slname = _sl.name as string
    _slnode = _sl.getNumNodes()   
    if _slnode == 1 do                    
    (
        format "Layer: %; nodes: %n" _slname _slnode
    )                      
)

Как работать с имеющимися мешами в слоях не понял.

Владислав Бодюл


1 мар 2017

Привет. Как написать скрипт, который:
Просмотреть все слои
если в слое количество мешей == 1
(
переименовать меш по названию слоя
переместить этот меш в нулевой слой
удалить слой
)
другое если количество мешей > 1
(
в начале имени названию меша добавит название слоя
)
иначе (удалит слой)

Код:

for i = layerManager.count-1 to 1 by -1 do
(
    ilayer = layerManager.getLayer i
    layerName = ilayer.name
    layer = ILayerManager.getLayerObject i
    layer.nodes &layerObjects
  
    if layerObjects.count > 0 then
    (
        if layerObjects.count > 1 then
        (
            for o in layerObjects where not matchPattern o.name pattern:(layerName + "_*") do
            (
                o.name = (layerName + "_" + o.name)
            )
        )
        else
        (
            (layerManager.getLayer 0).addNode layerObjects[1]
            LayerManager.deleteLayerByName layer.name
        )
    )
    else
    (
        LayerManager.deleteLayerByName layer.name
    )
)

Владислав Бодюл


1 мар 2017

Спасибо, прекрасно работает.

Ой, забыл добавить переименование объекта по названию слоя, перед добавлением в нулевой слой.

Нужно перед строкой

Код:

(layerManager.getLayer 0).addNode layerObjects[1]

добавить

Код:

layerObjects[1].name = layer.name

18 апр 2017

добрый день,
подскажите можно ли из макса с помощью макс скрипт напрямую обращаться к базам данных
типа таблицы mysql, не обычные файлы (filestream) ,а постоянно меняющийся поток данных изменяющихся координат объекта?

Понравилась статья? Поделить с друзьями:
  • Maxscript macroscript compile error
  • Maxscript garbage collection error что это
  • Maxscript autoload script error
  • Maxscript auto load script error 3d max как исправить
  • Maxon licensing error redshift