3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

175 страниц V  « < 173 174 175  
Reply to this topicStart new topic
> А нет-ли такого скрипта?
Jahman
сообщение 13/12/2017, 09:28
Сообщение #2611


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 236
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



ты хочешь разбить сплайн на составные части? т.е. один шейп = один сплайн?
Go to the top of the page
 
+Quote Post
Jahman
сообщение 13/12/2017, 09:45
Сообщение #2612


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 236
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



explode spline
CODE
for shp in selection where superclassof shp == shape do (

    local count = shp.numsplines

    for i = 1 to count do
    (
        ns = splineShape ()
        addnewspline ns
        for k = 1 to (numKnots shp i) do(
            
            knotpos  = getKnotPoint shp i k
            segtype  = getSegmentType shp i k
            knottype = getKnotType shp i k
                
            if knottype == #bezier or knottype == #bezierCorner then
            (
                addknot ns 1 knottype segtype knotpos (getInVec shp i k) (getOutVec shp i k)
            )
             else
            (
                addknot ns 1 knottype segtype knotpos
             )
            
            
        )
        if (isClosed shp i) then close ns 1
        
        updateshape ns
        
        ns.name = uniqueName (shp.name + "_spl_" + (i as string))
        
    )

)
Go to the top of the page
 
+Quote Post
Ded_
сообщение 13/12/2017, 18:17
Сообщение #2613


Бывалый
Иконка группы

Группа: Пользователи
Сообщений: 137
Регистрация: 04/05/2006
Из: Ryazan
Пользователь №: 30 816



Цитата(Jahman @ 13/12/2017, 10:45) *
explode spline
Код
for shp in selection where superclassof shp == shape do (

    local count = shp.numsplines

    for i = 1 to count do
    (
        ns = splineShape ()
        addnewspline ns
        for k = 1 to (numKnots shp i) do(
            
            knotpos  = getKnotPoint shp i k
            segtype  = getSegmentType shp i k
            knottype = getKnotType shp i k
                
            if knottype == #bezier or knottype == #bezierCorner then
            (
                addknot ns 1 knottype segtype knotpos (getInVec shp i k) (getOutVec shp i k)
            )
             else
            (
                addknot ns 1 knottype segtype knotpos
             )
            
            
        )
        if (isClosed shp i) then close ns 1
        
        updateshape ns
        
        ns.name = uniqueName (shp.name + "_spl_" + (i as string))
        
    )

)


Я в общем до этого хоть и посмотрел твою ссылку выше на VG но не фига не запомнил, там есть эта штука что я пытался воспроизвести через Поли объект )
Думаю я просто увлекся самим процессом, да и хоть немного для себя закрепил простые вещи для копирования с листенера.

Я вот про это:
V G .UniformSpline Information:
This plugin allows to modify spline/shape object
Go to the top of the page
 
+Quote Post
Kondo
сообщение 15/01/2018, 20:13
Сообщение #2614


Продвинутый ученик
Иконка группы

Группа: Пользователи
Сообщений: 72
Регистрация: 08/09/2006
Из: UA
Пользователь №: 36 576



Приветствую всех!
Помогите пожалуйста, кому не лень допилить скрипт. Хочу стандартный максовский Constraints (poly) повесить на кнопки своей панельки. На toolBars знаю как повесить, но это не то. Саму панель с кнопками собрал, и все даже работает, но не так, как хотелось бы.
Хотелось-бы по нормальному: При нажатии Edge, включается констраинт Edge. При нажатии Face, отключается кнопка edge, и включается Face. Ну и с normal так-же. Т.е. при нажатии одной кнопки, отключается другая. Отключаются констраинты отжатием любой кнопки.

CODE
try(destroyDialog MyScripts)catch()
rollout MyScripts "Constraints"

(
checkbutton ckb1 "Edge" tooltip:"Constraint Edge" width:45 height:25 pos:[5,5]
on ckb1 changed state do
if state == on then
$.constrainType = 1
else
$.constrainType = 0

checkButton ckb2 "Face" tooltip:"Constraint Face" width:45 height:25 pos:[52,5]
on ckb2 changed state do
if state == on then
$.constrainType = 2
else
$.constrainType = 0

checkButton ckb3 "Normal" tooltip:"Constraint Normal" width:45 height:25 pos:[99,5]
on ckb3 changed state do
if state == on then
$.constrainType = 3
else
$.constrainType = 0
)
createDialog MyScripts 149 35 800 90
Go to the top of the page
 
+Quote Post
Jahman
сообщение 15/01/2018, 21:16
Сообщение #2615


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 236
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



По хорошему это надо совсем по иному делать.
При создании роллаута создается NodeEventCallback который следит за изменением выделения.
Если у выделенного объекта/ов есть свойство constrainType или имеется edit_poly модификатор, кнопки включения/выключения констрейнтов активируются/деактивирутся соответственно.

Если выделено два объекта и у одного активен едж, а у другого фейс констрейнт, какие кнопки включать?

CODE
try (destroydialog X ) catch ()
rollout X "" width:170 (

    checkbutton edgecb "Edge" tooltip:"Constraint Edge" width:45 height:25 across:3
    checkButton facecb "Face" tooltip:"Constraint Face" width:45 height:25
    checkButton normcb "Normal" tooltip:"Constraint Normal" width:45 height:25
    
    local disableConstraints = false
    
    fn setConstraint mode = (
        
        if mode == 0 and disableConstraints then (
            
            edgecb.checked = facecb.checked = normcb.checked = false
            for s in selection where isProperty s #constrainType do s.constrainType = 0
            
        ) else (
            
            disableConstraints = false
            
            case mode of (
                
                1 : facecb.checked = normcb.checked = false
                2 : edgecb.checked = normcb.checked = false
                3 : edgecb.checked = facecb.checked = false                
            )
            
            disableConstraints = true
            
            for s in selection where isProperty s #constrainType do s.constrainType = mode
                
            -- TODO: check if object has Edit_Poly modifier and set constrainType of modifier instead of baseobject
            
        )
        
    )
    
    on edgecb changed state do if state then setConstraint 1 else setConstraint 0
    on facecb changed state do if state then setConstraint 2 else setConstraint 0
    on normcb changed state do if state then setConstraint 3 else setConstraint 0

)
createDialog X pos:[100,100]


Сообщение отредактировал Jahman - 15/01/2018, 21:20
Go to the top of the page
 
+Quote Post
Kondo
сообщение 15/01/2018, 22:30
Сообщение #2616


Продвинутый ученик
Иконка группы

Группа: Пользователи
Сообщений: 72
Регистрация: 08/09/2006
Из: UA
Пользователь №: 36 576



Цитата(Jahman @ 15/01/2018, 20:16) *
По хорошему это надо совсем по иному делать.

Jahman, спасибо за уделенное время, и помощь! Это то, что было нужно
Как все непросто оказалось.. думал там просто код немного у кнопки поменять надо.. Моих знаний к сожалению хватает только на то, чтоб взять чей-то скрипт, и на его основе попробовать слепить то, что мне надо(
Go to the top of the page
 
+Quote Post
Jahman
сообщение 15/01/2018, 23:14
Сообщение #2617


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 236
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



ну, с чего-то надо начинать. расковырять чужой скрипт на детали - лучший как по мне способ освоить максскрипт и заодно познакомиться с практиками его применения.
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






175 страниц V  « < 173 174 175
Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 20/01/2018 - 20:17