How to bake constraints of a duplicated object to its location/rotation?

I have a model composed of several parts that I am moving along a path by parenting and tracking the various parts to a subdivided plane that is controled by a curve modifier. I want to duplicate a certain part of my model and leave it behind like a snail’s trail or a trail of bread-crumbs.

The movement is not done using IPO or any normal animation. I am simply incrementing the coordinate value of the deformation axis from the curve modifier. All the advice on baking constraints I have seen relates to key frames and IPO curves, which I don’t think is relevant here. I need to have actual duplicated geometry at the current location but without constraints, so that when I move my model again I leave the duplicate behind in the correct location (like dropping a bread-crumb).

Duplication and then removing the duplicate’s constraints doesn’t work and accessing the actual vertices coordinates also doesn’t work (because they always show the coordinates before constraints are added).

Is there a way of baking the constraints into a duplicate object?

Many thanks!

I’ve found half the answer:

  1. bpy.ops.object.track_clear(type=“CLEAR_KEEP_TRANSFORM”)
  2. bpy.ops.object.parent_clear(type=“CLEAR_KEEP_TRANSFORM”)

This sorts everything except for my copy location constraint.