FWIW - the *conventional* way of doing this is to use gcode IHS (Initial Height Sensing). No reason why you shouldn't use a/the M3 macro - just saying that it's *usually* done in gcode.

One thing you might want to consider if you go the macro route is you'd really need to pass a parameter to M3 because your pierce/cut heights will differ depending on what material type/thickness it is you're cutting. You're then going to have to mod your SCam post to pass this/these params and.... well you might as well have used one of the posts supplied by SCam in the first place that do all this for you. At the end of the day there are many ways to skin this puppy but why re-invent the wheel?