Notifications
Clear all
[Closed] In simpleObject connect vertex to another object
Jun 07, 2011 1:39 pm
Hi all, a question… in simpleObject (generated via maxscript) it’s possible connect the position of his vertices to another object in the scene?
Thank in advance.
2 Replies
Jun 07, 2011 1:39 pm
I think this will be possible, not sure that it is advised how ever.
You are going to have to store a reference of the model you want to follow, calculate the new position of that vertex and then force an update to the mesh.
Jun 07, 2011 1:39 pm
Hi Pen , I’m honored that you answer to my question, here down the code:
plugin simpleObject customPlane
name:"Custom Plane"
classID:#(0x21764401, 0x55a56f86)
category:"Scripted Primitives"
(
local vertArray = #()
local faceArray = #()
parameters main rollout:params
(
pLength type:#float ui:planeLength
pWidth type:#float ui:planeWidth
pLengthSegs type:#integer ui:lengthSegs default:3
pWidthSegs type:#integer ui:widthSegs default:3
ObjNode type:#node ui:chooseit
ObjNodePoz type:#float default:0
on ObjNode set transform do
(
if CamAt != undefined then ObjNodePoz = ObjNode.pos.z CamAt.name else ObjNodePoz
)
)
rollout params "Parameters"
(
spinner planeLength "Length: " type:#float range:[0,100000,0]
spinner planeWidth "Width: " type:#float range:[0,100000,0]
spinner lengthSegs "Length Segs: " type:#integer range:[1,500,3]
spinner widthSegs "Width Segs: " type:#integer range:[1,500,3]
fn Box_filt obj = classof obj == Box
pickbutton chooseit "Select Box" width:160 filter:Box_filt autoDisplay:true
on chooseit picked obj do
(
ObjNode = obj
ObjNodePoz = ObjNode.pos.z
)
)
on buildMesh do
(
vertArray = #()
widthStep = pWidth / pWidthSegs
lengthStep = pLength / pLengthSegs
for j = 0 to pLengthSegs do
(
y = (lengthStep * j)
for i = 0 to pWidthSegs do
(
x = (widthStep * i)
append vertArray [x-(pWidth/2), y-(pLength/2), ObjNodePoz]
)
)
faceArray = #()
if pWidth * pLength >= 0 then
(
for j = 0 to (pLengthSegs - 1) do
(
for i = 1 to pWidthSegs do
(
v1 = i + (j * (pWidthSegs + 1))
v2 = v1 + 1
v3 = v2 + pWidthSegs + 1
append faceArray [v1,v2,v3]
swap v1 v3
v2 = v1 - 1
append faceArray [v1,v2,v3]
)
)
)
else
(
for j = 0 to (pLengthSegs - 1) do
(
for i = 1 to pWidthSegs do
(
v1 = i + (j * (pWidthSegs + 1))
v2 = v1 + 1
v3 = v2 + pWidthSegs + 1
append faceArray [v3,v2,v1]
swap v1 v3
v2 = v1 - 1
append faceArray [v3,v2,v1]
)
)
)
setMesh mesh verts:vertArray faces:faceArray
for f = 1 to faceArray.count do
(
setEdgeVis mesh f 3 false
)
)
tool create
(
on mousePoint click do case click of
(
1: nodeTM.translation = gridPoint
2: #stop
)
on mouseMove click do case click of
(
2: ( pWidth = abs gridDist.x; pLength = abs gridDist.y )
)
)
)
Now works only when I select the box…when moved the box the vertices don’t changed the position…why?
Sorry for my english…