Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
I'm trying to convert a working COFFEE script for changing the modeling axis to Python. Updated tool data is printed to the Console but the Axis parameter is not changing.
import c4d def main(): tool_dat = doc.GetActiveToolData() tool_dat[c4d.MDATA_AXIS_MODE] = c4d.MDATA_AXIS_MODE_FREE c4d.EventAdd() if __name__=='__main__': main()
Hi,
The script you posted does work with for instance the Live Selection tool but does not work with Move/Scale/Rotate tools. The following script changes the MDATA_AXIS_MODE to MDATA_AXIS_MODE_FREE for any active tool:
MDATA_AXIS_MODE
MDATA_AXIS_MODE_FREE
import c4d from c4d import plugins def SetToolData(doc, toolID, paramID, data): plug = plugins.FindPlugin(toolID, c4d.PLUGINTYPE_TOOL) if plug is None: return plug[paramID] = data def main(): SetToolData(doc, doc.GetAction(), c4d.MDATA_AXIS_MODE, c4d.MDATA_AXIS_MODE_FREE) c4d.EventAdd() if __name__=='__main__': main()
The above script does not use GetActiveToolData(). It retrieves the object for the active tool (with FindPlugin()) and sets the parameter (with operator []). For some technical reason, several tools need their settings to be changed via parameters and not accessing the tool data container directly.
GetActiveToolData()
FindPlugin()
[]
Best regards, Yannick
Thanks for the solution and explanation Yannick. It's working perfectly now and I can finish converting my scripts.