Issue Changing Modeling Axis
-
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 theMDATA_AXIS_MODE
toMDATA_AXIS_MODE_FREE
for any active tool: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 (withFindPlugin()
) 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.Best regards,
Yannick -
Thanks for the solution and explanation Yannick. It's working perfectly now and I can finish converting my scripts.