Здравствуйте!
Для того, чтобы программно создавать и изменять подшивки в AutoCAD нужно использовать COM-библиотеки AcSmComponentsXXLib. Для каждой версии AutoCAD своя версия библиотеки. Подробнее об этом по ссылке:
http://adndevblog.typepad.com/autocad/2013/09/using-sheetset-manager-api-in-vbnet.html.
Отсюда проблема - для каждой версии AutoCAD нужно делать отдельную .NET библиотеку, которая будет обращаться к нужной COM-библиотеке.
Я знаю, что в некоторых случаях можно сделать позднее связывание, чтобы программа уже в процессе выполнения определила нужную библиотеку. Например по ссылке
http://www.c-sharpcorner.com/article/calling-a-com-component-from-C-Sharp-late-binding/ можно посмотреть пример позднего связывания с Excel.
Я попытался написать что-то похожее (код для создания новой подшивки):
string str = "Interop.ACSMCOMPONENTS" + Application.Version.Major + "Lib.AcSmSheetSetMgr";
Type t = Type.GetTypeFromProgID(str);
dynamic mgr = Activator.CreateInstance(t);
dynamic ssdb = mgr.CreateDatabase(@"C:\Test.dst",
@"C:\Образец.dst", false);
но это не работает.
Прошу подсказать, есть ли какое-нибудь решение этой проблемы.
Для примера, вот работающий код (при загруженной COM библиотеке)
AcSmSheetSetMgr mgr = new AcSmSheetSetMgr();
AcSmDatabase ssdb = mgr.CreateDatabase(@"C:\Test.dst",
@"C:\Образец.dst", false);