World Dynamics Cache Buttons
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/05/2012 at 10:11, xxxxxxxx wrote:
I see that FindSceneHook() has been added to R13 so we can set the project settings now.
I'm converting my C++ project settings code to python. But the only ones I can't figure out how to write are the two Dynamics cache buttons.Example:
import c4d def main() : sh = doc.FindSceneHook(180000100) c4d.CallButton(doc,c4d.WORLD_CACHE_BAKE) #Does not work c4d.CallButton(doc,c4d.WORLD_CACHE_CLEAR) #Does Not work c4d.EventAdd() if __name__=='__main__': main()
Are these buttons supported?
If so...How do we execute them?-ScottA
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/05/2012 at 16:54, xxxxxxxx wrote:
Never Mind. I managed to figure it out.
import c4d def main() : sh = doc.FindSceneHook(180000100) c4d.plugins.FindPlugin(c4d.PLUGINTYPE_SCENEHOOK) c4d.CallButton(sh, c4d.WORLD_CACHE_BAKE) #Executes the Bake button c4d.CallButton(sh, c4d.WORLD_CACHE_CLEAR) #Executes the Clear button c4d.EventAdd() if __name__=='__main__': main()
-ScottA
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/05/2012 at 05:13, xxxxxxxx wrote:
eh, sould have looked here first, i have answered the cgtalk post already, but IMHO your first
example is already almost correct, but you have to pass sh instead of doc. the script won't throw
an error, as doc a BaseDocument is also a BeseList2D, but CallButton expects the object which
contains the id passed as the second parameter, so you have to pass sh. it makes no sense to
define sh and then not not to use it.the same goes for c4d.plugins.FindPlugin(c4d.PLUGINTYPE_SCENEHOOK) (plus this line doesn't
really make any sense to me, does this actually return a BaseList2D ?). also EventAdd() isn't
necessary in that case.shortest form would be :
c4d.CallButton(doc.FindSceneHook(180000100), c4d.WORLD_CACHE_BAKE)
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/05/2012 at 08:41, xxxxxxxx wrote:
Now I can't figure out how to change any of the Key Interpolation settings.
sh = doc.FindSceneHook(180000100) sh[c4d.TLWORLD_OVERDUB]=True #Does Nothing! c4d.EventAdd()
-ScottA
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/05/2012 at 10:08, xxxxxxxx wrote:
180000100 is only the id to the MographDynamics hook if i am not mistaken, you have to get the id
of the Key Interpolation Tab from the ressource folder i think.edit :
the c4d console says for KeyInterpolation :
[OK] KeyInterpolation <c4d.BaseList2D object called 'Key Interpolation/Key Interpolation' with ID 465001535 at 0x10B54050>
i haven't tested / i am not quite sure if this is the correct id to get the hook.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/05/2012 at 11:02, xxxxxxxx wrote:
Thanks. That is the correct ID#.
Here's a list of how to change all of the Project Settings:
##### Scene Scale & Units options import c4d def main() : pScale = doc[c4d.DOCUMENT_DOCUNIT] #Get the ProjectScale value value = c4d.UnitScaleData #Create a UnitScaleData type variable pScale.SetUnitScale(1.0, c4d.DOCUMENT_UNIT_CM) #Change the Scene's scale and measure type settings doc[c4d.DOCUMENT_DOCUNIT]=pScale #Make the changes happen from memory doc.Message(c4d.MSG_UPDATE) #Update C4D about the changes c4d.EventAdd() if __name__=='__main__': main() ##### Project Settings #Set up BaseTime so we can use it later on in the attributes fps = doc.GetFps() frame = doc.GetTime().GetFrame(doc.GetFps()) # doc[c4d.DOCUMENT_DOCUNIT]= See above doc[c4d.DOCUMENT_FPS] = 30 # Sets the FPS attribute doc[c4d.DOCUMENT_TIME]= c4d.BaseTime(0, fps) # The frame where the scrubber starts doc[c4d.DOCUMENT_MINTIME]= c4d.BaseTime(0, fps) # The start frame value doc[c4d.DOCUMENT_MAXTIME]= c4d.BaseTime(90, fps) # The end Frame value doc[c4d.DOCUMENT_LOOPMINTIME]=c4d.BaseTime(0, fps) # The Preview option Start time doc[c4d.DOCUMENT_LOOPMAXTIME]=c4d.BaseTime(90, fps) # The Preview option End time doc[c4d.DOCUMENT_LOD]=1.0 # Level of Detail doc[c4d.DOCUMENT_RENDERLOD]=False # Render LOD in Editor doc[c4d.DOCUMENT_USEANIMATION]=True # Use Animation doc[c4d.DOCUMENT_USEEXPRESSIONS]=True # Use Expressions doc[c4d.DOCUMENT_USEGENERATORS]=True # Use Generators doc[c4d.DOCUMENT_USEDEFORMERS]=True # Use Deformers doc[c4d.DOCUMENT_USEMOTIONSYSTEM]=True # Use Motion System doc[c4d.DOCUMENT_DEFAULTMATERIAL_TYPE]= 1 # 0=WHITE, 1=GREY-BLUE, 2=USER doc[c4d.DOCUMENT_CLIPPING_PRESET]=1 # 3=TINY, 0=SMALL, 1=MEDIUM, 2=LARGE, 4=HUGE, 5=CUSTOM doc[c4d.DOCUMENT_CLIPPING_PRESET_NEAR]=1.0 # Sets the Near clipping value doc[c4d.DOCUMENT_CLIPPING_PRESET_FAR]=100000.0 # Sets the Far clipping value doc[c4d.DOCUMENT_LINEARWORKFLOW]=True # Use Linear Workflow doc[c4d.DOCUMENT_COLORPROFILE]=1 # 0=SRGB, 1=LINEAR, 2=DISABLED; ///// Info Settings doc[c4d.DOCUMENT_INFO_AUTHOR]= "" //Type your name in here doc[c4d.DOCUMENT_INFO_COPYRIGHT]= "" //Type your copyright info here doc[c4d.DOCUMENT_INFO_README]= "" // Type your notes here ///// Dynamics Settings sh = doc.FindSceneHook(180000100) sh[c4d.WORLD_ENABLED]=True sh[c4d.WORLD_DISABLE_DURING_LEAP]=True sh[c4d.WORLD_TIMESCALE]=1.0 sh[c4d.WORLD_GRAVITY]=1000.0 sh[c4d.WORLD_DENSITY]=1.0 c4d.EventAdd() //CACHE fps = doc.GetFps() frame = doc.GetTime().GetFrame(doc.GetFps()) sh = doc.FindSceneHook(180000100) c4d.CallButton(doc.FindSceneHook(180000100), c4d.WORLD_CACHE_BAKE) //Executing the Bake dynamics cache buttons c4d.CallButton(doc.FindSceneHook(180000100), c4d.WORLD_CACHE_CLEAR) //Execute the Clear dynaimcs cache button sh[c4d.WORLD_CACHE_USE]=False sh[c4d.WORLD_CACHE_DISABLE_BAKED_OBJECTS]=False sh[c4d.WORLD_CACHE_USE_TIME]=False sh[c4d.WORLD_CACHE_TIME]=c4d.BaseTime(0, fps) c4d.EventAdd() //EXPERT sh = doc.FindSceneHook(180000100) sh[c4d.WORLD_MARGIN]=1 sh[c4d.WORLD_SCALE]=100 sh[c4d.WORLD_CONTACT_RESTITUTION_LIFETIME]=5 sh[c4d.WORLD_SEED]=0 sh[c4d.WORLD_SUBSTEPS]=5 sh[c4d.WORLD_ITERATIONS]=10 sh[c4d.WORLD_ERROR_THRESHOLD]=10 c4d.EventAdd() //VISUALIZATION sh = doc.FindSceneHook(180000100) sh[c4d.WORLD_VISUALIZE]=False sh[c4d.WORLD_VISUALIZE_SHAPES]=True sh[c4d.WORLD_VISUALIZE_AABBS]=True sh[c4d.WORLD_VISUALIZE_CONTACT_POINTS]=True sh[c4d.WORLD_VISUALIZE_CONSTRAINTS]=True c4d.EventAdd() //Key Interpolation sh = doc.FindSceneHook(465001535) sh[c4d.TLWORLD_OVERDUB]=False sh[c4d.TLWORLD_LOCKV]=False sh[c4d.TLWORLD_AUTO]=True sh[c4d.TLWORLD_LOCKTA]=False sh[c4d.TLWORLD_BREAK]=False //Spline types sh[c4d.TLWORLD_INTER]=c4d.TLWORLD_INTER_SP #Spline type sh[c4d.TLWORLD_INTER]=c4d.TLWORLD_INTER_LI #linear type sh[c4d.TLWORLD_INTER]=c4d.TLWORLD_INTER_ST #Step type sh[c4d.TLWORLD_LOCKT]=False sh[c4d.TLWORLD_CLAMP]=True sh[c4d.TLWORLD_LOCKTL]=False sh[c4d.TLWORLD_KEEPVISUALANGLE]=False
-ScottA