Vint26

Активность: 0
СообщенияДата

Maxscript "tool create" "mousePoint"

Да, уже много времени прошло, но я подумал, может ещё кому-нибудь пригодится?! =) Не знаю, о том шла речь или нет, но сейчас я пишу один скрипт и передо мной стояла похожая задача…  я видел аналогичный пример на странице справки Autodesk’a (пример с башней): http://docs.autodesk.com/3DSMAX/15/ENU/MAXScript-Help/index.html?url=files/GUID-C0BFFE27-BB59-4265-8F70-BFE8A636F7CB.htm,topicNumber=d30e642485 Но там, как и тут был приведен пример и использованием plugin’a… а мне нужно было сделать событие по кнопке в своем rollout’e …  вот что получилось у меня: Code:   if((PaintBox != undefined) and (PaintBox.isdisplayed)) do (destroyDialog PaintBox)   rollout PaintBox "Vint26: Paint Box" (       spinner spnLength "Length:" width:120 height:16 range:[-5000,5000,0] type:#worldunits align:#left       spinner spnWidth " Width: " width:120 height:16 range:[-5000,5000,0] type:#worldunits align:#left       spinner spnHeight "Height: " width:120 height:16 range:[-5000,5000,0] type:#worldunits align:#left       checkButton ckb_PaintBox "Paint Box" align:#center height:26             tool create             (             on mousePoint click do             (                   case click of                   (                         1: (                              in coordsys grid d = ( box pos:gridPoint Height:0 isSelected:on)                              convertToPoly d                              polyop.setVert $ #{1} gridPoint                              polyop.setVert $ #{2} gridPoint                              polyop.setVert $ #{3} gridPoint                              polyop.setVert $ #{4} gridPoint                              polyop.setVert $ #{5} gridPoint                              polyop.setVert $ #{6} gridPoint                              polyop.setVert $ #{7} gridPoint                              polyop.setVert $ #{8} gridPoint                         )                         3: (                              ckb_PaintBox.checked=off                               #stop                              )                   ) --end case             )-- on execute             on mouseAbort click     do(ckb_PaintBox.checked=off)                                     on mouseMove click do                   (                         case click of                         (                              2:(                            polyop.setVert $ #{1} [((polyop.getVert $ 1).x),((polyop.getVert $ 1).y),((polyop.getVert $ 1).z)]                            polyop.setVert $ #{2} [gridPoint.x,((polyop.getVert $ 2).y),((polyop.getVert $ 2).z)]                            polyop.setVert $ #{3} [((polyop.getVert $ 3).x),gridPoint.y,((polyop.getVert $ 3).z)]                            polyop.setVert $ #{4} [gridPoint.x,gridPoint.y,((polyop.getVert $ 4).z)]                            polyop.setVert $ #{5} [((polyop.getVert $ 5).x),((polyop.getVert $ 5).y),((polyop.getVert $ 5).z)]                            polyop.setVert $ #{6} [gridPoint.x,((polyop.getVert $ 6).y),((polyop.getVert $ 6).z)]                            polyop.setVert $ #{7} [((polyop.getVert $ 7).x),gridPoint.y,((polyop.getVert $ 7).z)]                            polyop.setVert $ #{8} [gridPoint.x,gridPoint.y,((polyop.getVert $ 8).z)]                            gc()                            update $                            DistanceLength=((polyop.getVert $ 3).y)-((polyop.getVert $ 1).y)                            spnLength.value=if DistanceLength<0 then (-DistanceLength) else (DistanceLength)                            DistanceWidth=((polyop.getVert $ 2).x)-((polyop.getVert $ 1).x)                            spnWidth.value=if DistanceWidth<0 then (-DistanceWidth) else (DistanceWidth)                            )                              3: (                                    polyop.setVert $ #{5} [((polyop.getVert $ 1).x),((polyop.getVert $ 1).y),gridDist.z]                                    polyop.setVert $ #{6} [((polyop.getVert $ 2).x),((polyop.getVert $ 2).y),gridDist.z]                                    polyop.setVert $ #{7} [((polyop.getVert $ 3).x),((polyop.getVert $ 3).y),gridDist.z]                                    polyop.setVert $ #{8} [((polyop.getVert $ 4).x),((polyop.getVert $ 4).y),gridDist.z]                                    gc()                                    update $                                    spnHeight.value=gridDist.z                              )                         )--end case                   )-- on execute             )            on ckb_PaintBox changed state do (startTool create) )--end rollout Createdialog PaintBox 140 100
24.07.2014