First question is - why on earth do you need to not leave a trace in the 
undo stack?  What are you doing that requires this line of thinking in 

To answer your question - only the Softimage developers know for sure, but I 
don't think it's possible.  If it were, I would think it would open a big 
can of worms leading to lots of problems you really don't want to deal with 
as you're basically asking Softimage to selectively ignore something while 
still going about it's business as if nothing happened.

The problem is anything you do in the application has many dependencies 
which are linked and synchronized.  If you have to undo operations, that 
dependency chain gets all messed up as undoing operations will lead to a 
situation where the 'undo' will create a scenario that never existed in the 
first place.  For example, create a cube, subdivide it with the dice option, 
extrude one polygon with 10 subdivisions, delete one of the subdivisions, 
then smooth the mesh.  Oh, and tell Softimage to remove the dice operation 
from the undo stack as if it never happened, but keep the results it 
produced.  The minute you undo past the extrude operation, you'll 
essentially rewrite history of the scene because the extrusion is dependent 
on the outcome of the dice operation to know which polygon to extrude.  If 
the polygon chosen has an index greater than 5, then it's not physically 
possible to undo the extrude because a cube only has 6 polygons in range 
[0...5].  Softimage would likely freak out trying to resolve this problem 
and crash.  If it survived, I'm pretty sure you wouldn't want to the data as 
it would likely be very corrupted.  A host of other issues are possible too.

The commands you found only address whether the execution of a command 
appears in the script history log, or whether they can be undone by a single 
key stroke vs. multiple key strokes.  That is not the same as the undo stack 
which records the state of the scene.

>From experience I'll say if you ever have to consider undo as a necessary 
step in your workflow, then something is very, very wrong with your plan.


Date: Thu, 12 Jan 2017 17:44:52 +0900
From: Martin Yara <>
Subject: Executing a Command without undo (Scripting)
To: ""


Is it possible, in Scripting, to execute a command without leaving a trace
in the undo stack?

I want to execute 2 commands a() and b() in that order, but I want to be
able to use Repeat to use a() again, not b().

b() command is only a command to get data so it shouldn't break anything if
I skip that command when undoing or repeating.

I've found 'TermUndoRedo' in the SDK manual but it is only for C++ API.



Softimage Mailing List.
To unsubscribe, send a mail to with 
"unsubscribe" in the subject, and reply to confirm.

Reply via email to