30/05/2013
Чтение и изменение настроек AutoCAD
Изменение настроек AutoCAD возможно при помощи прямого изменения реестра или с использованием ActiveX объекта Preferences. Заметим, что прямое изменение реестра не влияет на настройки текущей сессии AutoCAD. ActiveX объект Preferences экспортирует многие свои свойства через интерфейс, который можно использовать в VBA/VB.NET или в C++/MFC приложениях. Ниже пример кода (на VB и C++), который добавляет новый путь к существующим путям доступа к вспомогательным файлам AutoCAD.
Код - VB.NET: [Выделить]
- Public acadApp As Object ' AcadApplication
- Public acadPrefFiles As Object 'AcadPreferencesFiles
- Sub f_preferences()
- On Error Resume Next
- Set acadApp = GetObject(, "AutoCAD.Application")
- If Err Then
- Err.Clear
- If Err Then
- MsgBox Err.Description & " " & Err.Number
- Exit Sub
- End If
- End If
- On Error GoTo 0
- acadApp.Visible = True
- Set acadPrefFiles = acadApp.Preferences.Files
- Dim strCurrentSuppPath As String
- ' устанавливаем временной переменной текущий путь
- strCurrentSuppPath = acadPrefFiles.SupportPath
- ' Пример: Мы хотим добавить путь
- ' "c:\test" к путям вспомогательных файлов
- acadPrefFiles.SupportPath = strCurrentSuppPath & _
- ";" & "c:\test"
- End Sub
Код - C++: [Выделить]
- void fSetSupportPath()
- {
- IAcadApplicationPtr pApp = NULL;
- IAcadPreferencesPtr pPref = NULL;
- IAcadPreferencesFilesPtr pPrefFiles = NULL;
- pApp = acedGetAcadWinApp()->GetIDispatch(TRUE);
- pPref = pApp->Preferences;
- pPrefFiles = pPref->Files;
- _bstr_t strOldPath;
- strOldPath = pPrefFiles->GetSupportPath();
- // Печатаем старые пути
- acutPrintf(_T("\nСтарые пути поддержки: %s"),
- (ACHAR *)(_bstr_t)pPrefFiles->GetSupportPath());
- // Устанавливаем новые пути
- pPrefFiles->PutSupportPath(strOldPath + _bstr_t(";c:\\temp"));
- }
Источник: http://adndevblog.typepad.com/autocad/2013/02/accessing-and-changing-the-autocad-preferences.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=91.0
Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:46:11
Отредактировано 08.06.2013 в 02:46:11