Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сравнение элементов массивовСодержание книги
Поиск на нашем сайте 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; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |