PDA

View Full Version : Detach splines from a multispline object


Cozmo
03-29-2008, 08:24 PM
Hi guys I've been having a hard time trying to write a simple script that loops through all the splines in a multispline shape and detach them as separate objects. I've managed to write the loop but the splineOps.detach() method requires that I named every piece manually. Is there any way to name the objects automatically?

Thanks a lot

magicm
03-30-2008, 12:16 AM
Cozmo,

Below are two ways to do this. The first method creates new shapes by rebuilding each spline in the original shape. The other one copies the entire shape and deletes splines from those copies leaving one spline in place. Since the second method creates a copy from the original shape object, this will preserve stuff like material assignments.

(

/*
Detaches splines by rebuilding each spline in a new shape.
*/
fn ExplodeShape_Copy Shp =
(
local SplineCount = numSplines Shp

for Spl = 1 to SplineCount do
(
SplineCopy = splineShape name:(uniqueName (Shp.name + "_Exploded_"))
addNewSpline SplineCopy
KnotCount = numKnots Shp Spl
for Knt = 1 to KnotCount do
(
if Knt < KnotCount or isClosed Shp Spl then
addKnot SplineCopy 1 (getKnotType Shp Spl Knt) (getSegmentType Shp Spl Knt) (getKnotPoint Shp Spl Knt) (getInVec Shp Spl Knt) (getOutVec Shp Spl Knt)
else
addKnot SplineCopy 1 (getKnotType Shp Spl Knt) #Curve (getKnotPoint Shp Spl Knt) (getInVec Shp Spl Knt) (getOutVec Shp Spl Knt)
)

if isClosed Shp Spl then close SplineCopy 1
updateShape SplineCopy
)
)

/*
Detaches splines by copying the entire shape and deleting splines.
*/
fn ExplodeShape_Delete Shp =
(
local SplineCount = numSplines Shp

for Spl = 1 to SplineCount do
(
ShapeCopy = copy Shp name:(uniqueName (Shp.name + "_Exploded_"))
DelSpline = 1
for SplineIndex = 1 to SplineCount do
(
if SplineIndex == Spl then
DelSpline += 1
else
deleteSpline ShapeCopy DelSpline
)
)
)

--ExplodeShape_Copy $
ExplodeShape_Delete $

)
Cheers,
Martijn

Cozmo
03-30-2008, 09:26 AM
You rock, man, thank you very much for the effort, I was really at a loss here
thanks again
See you around

soulburn3d
03-30-2008, 05:59 PM
Also, feel free to steal any code you want from my objectDetacher script here...

http://www.neilblevins.com/soulburnscripts/soulburnscripts.htm

It does exactly what you're after.

- Neil

CGTalk Moderation
03-30-2008, 05:59 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.