Copy the text and paste it in to a text editor like notepad. Save it as a file with a .lsp extension. Name it what you want so you remember what it is. Save it in a folder that is search path defined on the files tab of options.
Use the Appload command to load it. If you want it loaded every time. Drag the file to where it says Startup Suite in the lower right of the Appload dialog box.
I've made a button on a tool pallet that contains this:
(setvar "OSNAPZ" (if (= (getvar "OSNAPZ") 1)0 1))(princ (strcat "Replace Z value is now turned " (if (= (getvar "OSNAPZ") 1)"ON""OFF")))(princ)
2d polylines hold the elevation of the first vertex. you can simple start the line and type .xy, select the node and it prompts for the z elevation, type 0 and that's it. If you are working with lines or 3d polylines, then you would have to use that process at each node.
John Gordon CAD Manager/Survey Technician
C3D 2012, C3D 2015 Eagle Point Surveyors Companion/Data Reduction/Civil 2010
You can also get the .xy and other filters on the Shift = rt-click menu. But I find the OSNAPZ convenient because at times I'll be drawing a bunch of entities that I want at zero then a couple that I want at elevation and back to zero.
Also I don't know if the .xy filter would work in the case where your using the Perpendicular Osnap.