Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сравнение элементов массивов⇐ ПредыдущаяСтр 13 из 13
for i=1 to (MassivA).count do _______________________________________________________________ ( _______________________________________________________________ hasProperty $ "radius" -- проверяется свойство объекта на наличие определённого свойства _______________________________________________________________ select (join ($Point as array)($Box as array)) -- выделяем соединениe массивов _______________________________________________________________ as array -- “как массив”, используется для сохранения набора (выделения) объектов в массиве. Если набор не будет массивом, то из-за этого часто возникают ошибки при обработке циклом. as bitarray -- “как битовый массив”, создаёт из положительных чисел наборы положительных целых чисел и имеет сущность математического множества, что ускоряет операции вычисления. _______________________________________________________________ -- вызов файла mse для исполнения скрипта macroScript ScrtiptName category:"Custom" tooltip:"ScriptTool" ( fileIn @"C:\\JosBalcaen_Batch_Exporter_Importer.mse") ____________________________________________________________ -- Количество выделенных рёбер (polyop.getEdgeSelection $).numberset -- свойство numberset для битового массива _______________________________________________________________ CurEdge_EtPy = obj.GetSelection #Edge as array -- Выбранные в Edit_Poly рёбра собрать в массив CurEdge_EtPy.count -- Количество _______________________________________________________________ oArray = $ as array -- выделение сохранено как массив в переменной -- цикл замены имени каждого объекта массива на уникальное for o in oArray do o.name = uniqueName "myObject" _______________________________________________________________ -- случайно меняется цвет for i in $ do i.wirecolor += random (-white/25.0) (white/25.0) _______________________________________________________________ -- случайно меняется красный канал цвета for o in $ do o.wirecolor.r += random -10.0 10.0 _______________________________________________________________ -- Выделить объекты, масштабом не 1 (полезно для вывернутых) select(for o in $* where o.scale!= [1,1,1] collect o) _______________________________________________________________ -- выделить объекты, удалённых до 100 от выбранного select (for o in $* where distance o.center selection[1].pos /*|.center|*/ < 100 collect o) _______________________________________________________________
-- выбрать объекты по материалу выделенного объекта select(for i in $* where i.marerial == selection[1].material collect o) _______________________________________________________________ -- выбрать объекты по материалу select(for o in $* where o.marerial == medit.GetCurMtl() collect o) _______________________________________________________________ -- Последний созданный объект LastObj = (maxOps.getNodeByHandle (amax (for o in objects collect o.inode.handle)))
_______________________________________________________________ -- Отключаем обновление вьюпорта при выполнении скрипта with redraw off ( ) _______________________________________________________________ -- выделить объекты, которые были выделены до выполнения скрипта. sel=selection as array ( скрипт ) select sel _______________________________________________________________ -- В Unwrap_UVW сшить подобъект с диалогом $.modifiers[#unwrap_uvw].stitchVertsDialog() _______________________________________________________________ -- В Unwrap_UVW отрезать выделенное $.modifiers[#unwrap_uvw].breakSelected() _______________________________________________________________ -- добавить модификатор Normal AddModifier $ (Normalmodifier ()) _______________________________________________________________ -- если панель команд не есть в режиме modify, то сделать её таковой if getCommandPanelTaskMode()!= #modify then (max modify mode) _______________________________________________________________ -- Автонажатие на кнопку умолчания в диалоговом окне UIAccessor.PressDefaultButton() _______________________________________________________________ -- Количество вершин выделенных в Edit_Poly gco = modPanel.getCurrentObject() -- присвоение выделенный модификатор Edit_Poly переменной selVertArr = gco.getSelection #Vertex -- Количество вершин выделенных _______________________________________________________________ -- Количество элементов $.count _______________________________________________________________ -- Дэтачит сплайн с вызовом диалога создания имени нового объекта splineOps.Detach $ _______________________________________________________________ -- get first knot in selected knots / номер сплайна [элемент массива узлов] splineSelKnot=(getKnotSelection $ 1)[1] _______________________________________________________________ -- позиция узла сплайна/ номер сплайна/ узел сплайна splineKnotPos=getKnotPoint $ 1 1 _______________________________________________________________ -- количество выделенных узлов сплайна (getKnotSelection $ 1).count _______________________________________________________________ max select invert -- инвертировать выделение _______________________________________________________________ -- присвоение уникального имени (s = copy $ s.name = uniqueName ("MaskName")) _______________________________________________________________ -- Выделяет Border (subobjectLevel 3) PolyToolsSelect.NumericEdge false _______________________________________________________________
-- доступ к модификатору Edit_Poly осуществляется весьма просто. Путём удаления $.modifiers[#Edit_Poly] и подстановкой переменной, которая есть выбранные объекты под этим модификатором. ( gco = modPanel.getCurrentObject() -- назначение переменной объекту в стеке if classof gco == Edit_Poly do () -- если класс объекта gco есть Edit_Poly делать... ) -- Переменная должна быть объявлена после появления модификатора, иначе будет ошибка _______________________________________________________________ -- В сцене устанавливается система координат #world ( global isCS = getRefCoordSys() csOUT = undefined if isCS!= #world then csOUT = #world setRefCoordSys csOUT -- установить систему координат ) _______________________________________________________________ -- метод макс, копируется объект $, Тип копирования: копия новое имя:nnl maxOps.cloneNodes $ cloneType:#copy newNodes:&nnl select nnl _______________________________________________________________ -- Select Last Created Object ( objID = amax (for o in objects collect o.inode.handle) select (maxOps.getNodeByHandle objID) ) _______________________________________________________________ -- случайный цвет $.wirecolor = (color (random 0.0 255) (random 0.0 255) (random 0.0 255)) _______________________________________________________________ -- смотреть свойства любого объекта и модификатора gco = modPanel.getCurrentObject() -- назначаем переменную стеку объекта show gco -- 1 способ showproperties gco -- 2 способ _______________________________________________________________ -- если нажат Ctrl(Shift/Alt) - делать... if keyboard.controlPressed then if keyboard.shiftPressed then if keyboard.altPressed then _______________________________________________________________ -- Ещё интересный метод использования if a=0 i=if a>2 then 4 else 5 i -- в конце функций и блоков скриптов ставится переменная с целью получить значение функции или блока кода. _______________________________________________________________ -- конструкция проверки и выдачи булевого результата on isEnabled return (if () and () or () then true else false ) -- истина выражения возвращает нажатую кнопку on ischecked return (try($.wirecolor == red)catch()) _______________________________________________________________ Циклы Прерываем выполнение нажатием Esc for k=1 to 1000000 do if not keyboard.ESCpressed then (format "%\n" k) _______________________________________________________________ -- Цикл Do-While (do выполняются, по крайней мере, один раз. При этом условие не проверяется до тех пор, пока не будет выполнено тело цикла) (i = 0 do ( t = teapot pos: [i*20, 0, i*20] i = i + 1 ) while t.pos.x < 101 ) _______________________________________________________________ -- Цикл While-Do (сначала проверяется условие) (i = 0 testTrue = true while testTrue do -- цил работает, получая значение true, поэтому после слова while стоит просто переменная, которая на начало цикла является true. ( t = teapot pos: [i*20, 0, i*20] i = i+1 testTrue = t.pos.x < 101 ) ) _______________________________________________________________ Массивы _______________________________________________________________ -- Создан пустой массив и к нему присоединён элемент - целое число 56 mуАrrау = #() append mуАrrау 56 _______________________________________________________________ -- Сохраняем объекты в массиве и добавляем (append) в массив элемент c = cylinder pos: [50,0,0] b = box() s = sphere pos: [-50,0,0] objArray = #(c,b,s) d = donut() append objArray d _______________________________________________________________ -- Ещё один способ создать массив из объектов, используя метасимвол "*" coll = $teapot* arr = coll as array _______________________________________________________________ -- Обработка всех элементов массива в цикле a = #("one", "word", "at", "a", "time") for i = 1 to a.count do -- для каждого i от 1 до числа элементов массива делать (print a[i]) -- печатать элемент массива _______________________________________________________________ -- deleteItem -- Удаляет элемент массива (в примере удалён элемент массива arr[2] и выведено сообщение с оставшимися элементами)
arr= #(1.0,.55,.3, 2.6) deleteItem arr[2] for i = 1 to arr.count do messagebox (arr[i] as string) _______________________________________________________________ -- join -- Функция join объединяет два массива, а также совокупность и массив: for i = 1 to 3 do ( sphere() box() ) arr = $sphere* as array join arr $box* -- то есть пишется join, а потом два параметра - два массива for i = 1 to arr.count do messagebox arr[i].name _______________________________________________________________ -- sort -- организует массив в порядке убывания. Если массив состоит из строк, он организуется в алфавитном порядке sort arr _______________________________________________________________ arr = #(2.4, 4, 3.2, 1.1) index = findItem arr 3.2 -- Найденный индекс будет равен 3 messagebox (index as string) -- Значение 3.3 отсутствует в массиве, поэтому возвращаемый индекс равен 0 index = findItem arr 3.3 messagebox (index as string) -- findItem -- возвращает индекс искомого значения. Если искомое значение отсутствует в массиве, функция findItem возвращает 0: _______________________________________________________________ amax <array> -- максимальное значение массива amin <array> -- минимальное значение массива $.max -- максимальное значение габаритного контейнера объекта $.min -- минимальное значение габаритного контейнера объекта ; -- позволяет записать несколько команд кода в одну строку. ? -- возвращает последний вычисленный результат _______________________________________________________________ Допустим создан и выделен какой то объект v = $.pos -- вектор позиции объекта length v -- длина этого вектора
|
|||||||
Последнее изменение этой страницы: 2021-04-13; просмотров: 44; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.171.202 (0.043 с.) |