Вы прежде чем что то сделать свое, хотя бы поверхностно почитайте хелп по maxscript-ту.
$.modifiers[#Edit_Poly].ButtonOp #SelectEdgeRing - значит в выбранном обекте, в модификаторе Edit Poly нажать кнопку Ring
У вас присутствует модификатор Edit Poly на этом объекте? Нет. Вот и все.
Если тестите в эдиторе написанное, то шапку макроскрипта надо закоменчивать.
если это простой макрос, то правильнее будет обернуть это в on execute do
on execute do (
бла, бла, бла
бла, бла, бла
)
если выбранный объект не имеет модификатора Edit Poly и объект является Editable Poly, то уже используются
$.SelectEdgeRing () и $.ConnectEdges ()
И вообще изначально следует предварительно делать проверку обекта на принадлежность к типу и на наличие модификатора.
up. И я не понимаю, к чему этот велосипед? Вам риббоновской панели мало? )