subobjectlevel =2 переход на подобъект ребер
b.getSelection #Vertex
$.EditablePoly.SetSelection #Edge #{277}
b.SetSelection #Vertex #{1..15, 17..20, 24..25, 30..33, 36..37, 41, 61..69, 77..82, 84..86, 95..100, 102..103, 113..118, 120, 131..136, 149..154, 167..168}
t=polyop.getnumverts b
for i=1 to t by 2 do(
$.EditablePoly.SetSelection #Vertex #{i}
)
a=#{}
polyop.getnumverts b или
b.numverts выдает общее количество вершин
b.numfaces выдает общее количество полигонов
b.SetSelection #Vertex a
polyop.getedgeselection b возвращает выделенные ребра
polyop.setvertselection b 59 выделяет вершины
polyop.getvertflags b 60 возвращает флаг указанных вершин
polyop.getvertsbyflag p 0 mask:1 выдает все невыделенные вершины
1 выделена
0 не выделена
polyop.setedgeflags $Plane001 #{5} 28 установить флаг ребра
polyop.setfaceflags p #{1..8971} 1 устанавливает флаги для указанных полигонов
polyop.setvertflags b #{60..80} 1 выделяет вершины устанавливает флаги для указанных вершин
b.selectedverts =#{70..73} выделяет вершины
polyop.setfaceselection b #(68) выделяет указанные полигоны
p=plane()
converttopoly(p) конвертировать в editable_poly
convertto p editable_poly
polyop.getvertsusingface p 12 выдает номера вершин прилежащих к полигону
polyop.getvertsusingedge p 13 выдает номера вершин прилежащих к ребру
polyop.getfacesusingvert p 13 возвращает номера прилегающих к вершине полигонов
polyop.getedgesusingvert p 13 возвращает номера исходящих из вершины ребер
polyop.getfaceverts b 33 возвращает номера вершин полигона
polyop.getedgeverts b 64 возвращает номера вершин ребра
polyop.getfacedeg b 33 возвращает количество вершин полигона
polyop.getedgefaces b 64 возвращает номера прилегающих полигонов к ребру
polyop.getfacematid b 37 возвращает ид материала назначенного полигону
polyop.setfacematid b 37 назначает ид материала полигону
polyop.getvert b 55 возвращает позицию вершины [8.60718,590.268,369.402]
polyop.setvert b 55 [10,10,10] устанавливает позицию вершины
move $.selectedVerts [0.934624,0,0] перемещает вершину
olyop.movevert p 13 [10,10,10] ( node: usesoftsel:bool ) перемещает вершину
polyop.movevert b 55 [0,-10,40] передвигает вершину
polyop.getopenedges b возвращает открытые ребра
polyop.getfaceedges b 37 возвращает номера ребер принадлежащие полигону
polyop.getfacesusingedge p #{20} возвращает прилегающие полигоны к ребру
polyop.getvertsusedonlybyfaces p #{4..5} возвращает вершины, которые принадлежат всем указанным полигонам из списка , но никаким другим полигонам вне списка
polyop.getvertsbyflag p 4 возвращает номера вершин с соответствующими флагами
polyop.getfacecenter p 11 центр face позиция
polyop.getsafefacecenter p 11 мягкий центр face позиция
polyop.getedgesusingface p 11 выдает ребра принадлежащие полигону
polyop.deleteverts b 719 удаляет указанные вершины
polyop.getfacenormal p 7 возвращает нормаль полигона
polyop.getfacearea p 7 возвращает площадь полигона
polyop.getopenedges p возвращает все открытые ребра
polyop.getvertflags p 2 возвращает флаг вершины
polyop.movevertstoplane p #{8,9,13,14} [1,1,1] 1.7 вершины перемещает в плоскость
polyop.makefacesplanar p #{7} делает плоский полигон
polyop.getnumedges p возвращает количество ребер в editable_poly
polyop.getfacesbyflag p 1 возвращает номара полигонов по флагу
polyop.getborderfromedge p 2268 выдает номера ребер составляющих бордер вместе с указанным ребром(ами)
polyop.deletefaces b 476 ( delisoverts:true ) удаляет полигон
polyop.deleteverts b 476 удаляет вершину
polyop.deleteedges b 476 ( delisoverts:true ) удаляет ребро
polyop.weldverts b 1463 142 [-5,20,40] сваривает, соединяет указанные вершины и создает новую на позиции от центра координат и назначает самый маленький номер новой вершине
polyop.createvert b [0,5,0] создает вершину в заданной позиции от центра координат
polyop.createedge b 1467 1452 создает ребро между вершинами , если они имеют общий полигон
polyop.createpolygon b <vertex array> создает полигон из указанных вершин
b.remove() удаляет только выделенные вершины или грани без дыр
b.createedge 718 1485 select:true создание ребра и выделение
b.createface #(1,6,5) создание нового полигона по указанным точкам
polyop.divideface p 9 [-27,-64,0] создает точку на полигоне в указанном месте,соединяя её с четырьмя точками полигона. если точка находится за пределами полигона, то создается ребро только между двумя ребрами
polytoolsselect.loop создает петлю по вылеленному ребру
polytoolsselect.numericvertex 2 1 false выделяет вершины на основе количества ребер от них первый аргумент количество ребер выходящих из вершины, второй аргумент если 1, то выделяются вершины только с количеством ребер указанном в первом аргументе. если 2 то выделяются вершины только с меньшем количеством ребер чем указано в первом аргументе. если второй аргумент 3, то выделяются вершины , которые имеют большее количество ребер чем указано в первом аргументе. и третий аргумент если true, то выделяются вершины только на выделенном участке
max modify mode перейти на панель модификации
setcommandpaneltaskmode #modify перейти на панель модификации
subobjectlevel =2 перейти на уровень подобьектов ребер
$.constrainType = 1 ограничение перемещения точек и ребер по ребру
b.hide #face #vertex # edge #face # object спрятать, скрыть субобъекты
b.unhideall #currentlevel
b.createvertex [0,0,0] pointinlocalcoords:false select:true создание вершины по указанным координатам
b.deleteIsoVerts () удалить изолированные вершины
b.createedge 163 192 select:true создание ребра по указанным точкам
b=converttopoly(plane()) конвертировать объект в editable_poly
v=b.createface #(267,268, 269,270 ) select:true создание полигонов по вершинам
b.capholes #face flags:1
b.capholes #vertex flags:1 закрывает дыру, отверстие , если хоть одна вершина выделена на границе дыры
b.delete #face flags:1 deleteisoverts:false удаляет указанный субобъект, если после него остаются несвязанные вершины, то последний аргумент определяет удалять их или нет.
s=$sphere001
b.attach s s присоединение сферы к объекту "b" с перемещением ее в центр объекта
b.attach b s без перемещения
b.detachtoelement #face flags:1 keeporiginal:false отделяет по флагу подобъекты от модели. последний аргумент отвечает за то будет ли элемент копироваться
b.detachtoelement #vertex flags:1 keeporiginal:true если выделена вершина отделяется весь полигон принадлежащий вершине либо оставляя оригинал=keeporiginal:true , либо нет=keeporiginal:false.
$Plane001.breakverts 1 раскалывает полигоны по вершине
p.splitedges edgeflags:1 разрезает, разбивает полигон по ребру
p.divideedge 17 0.2 select:true делит ребро пополам и возвращает индекс новой вершины. 0.2 это 20% растояния от длины ребра со стороны самого большого индекса из двух вертексов ребра
p.insertvertexinedge 3 0.2 вставляет вершину на ребро ребро пополам и возвращает индекс новой вершины. 0.2 это 20% растояния от длины ребра со стороны самого большого индекса из двух вертексов ребра
p.insertvertexinface 13 #(0.5,0.0,0.5,0.0) вставить вершину на полигон по центру . если объект плоскость с одним полигоном то #(0.0,0.0,0.0,0.8) первое значение отсчет от вершины №2 в сторону полигона №3. второе значение от №4 к №1. третье значение от №3 к №2 и четвертое значение от №1 к №4.
p.divideface 13 #(0.5, 0.0,0.5,0.0) select:true разделить полигон, точка посередине.#(0.5, 0.1,0.5,0.1) в направлении одного ребра
p.collapse #face flags:1 коллапс подобъекта
p.slice [1,1,0.0] [0,0,0] flaggedfacesonly:false faceflags:1 режет модель в центре сверху по диагонали [1,1,0.8] [0,0,0] опускает верх
b.extrudefaces 5.0 faceflags:1 выдавливание полигона
b.extrudealongspline 3 faceflag:1
b.bevelfaces 3 4 faceflags:1 скос полигона
b.chamfervertices 5 open:false фаска выделенной вершины
////
b.bridgesegments=5
b.bridge sellevel:#face мост между полигонами
////
b.readytobridgeflagged sellevel:#face flag:1 возвращает true если заданный уровень и флаги готовы к соединению, иначе возвращает false
////
fn msf obj =(classof obj==sphere)
sel=pickobject message:"pick any saphere" filter:msf выбор объекта в сцене
format "you selected: %\n"
sel.name
////