Вообще говоря, делается наоборот...
Из кода написанного на "до-диезе" ( C#

) дергается CATIA Automation.
Чтобы завелось наоборот - нужно делать (так называемый) Адаптер. Идеальный вариант - на C++\CAA, но теоретически можно и на CATScript скрипте...
Идея такая:
1. Создаем на .Net сборку с публичным классом (типом) в котором реализуется нужный функционал и в который передается "референс" на КАТЬКИНУ сессию.
2. Из полученной сборки достаем библиотеку типов (используя RegAsm.exe или TlbExp.exe из .Net SDK)
3. Пишем макрос который инстанцирует экземпляр класса (используя VB-шную функцию CreateObject)
3.1 В полученный объект (в "специально обученную" пропертю) кидаем "CATIA", CATIA.ActiveDocument (или что по смыслу).
4. Дергаем за "точку входа" объекта
5. Макрос стандартными средствами пихаем в тулбар
6. Идем за пивом, ибо разобраться что не фурычит, без оного не получится
