Копирование размерных стилей между чертежами при помощи C#
Этот пример показывает, как использовать метод WblockCloneObjects для копирования объектов между чертежами – в данном случае это набор размерных стилей. Он так же демонстрирует малоизвестный метод для получения последних (до 6 штук) использованных размерных стилей – GetDimRecentStyleList (по крайней мере, я раньше не натыкался на него).
Небольшое замечание. Распространенная ошибка многих людей для клонирования DBObjects использовать метод Clone. Его следует использовать осторожно, так как он производит лишь «поверхностное» копирование. В зависимости от того, зачем вам нужны клоны как правило лучше использовать WblockClone или DeepClone вместо обычного Clone.
- [CommandMethod("ImportStyles")]
- static public void importStyles()
- {
- Database db = new Database(false, false);
- db.ReadDwgFile("C:\\Styles.dwg", System.IO.FileShare.Read, true, "");
- // Получаем до 6 последних использованных размерных стилей
- ObjectIdCollection dimStyles = db.GetDimRecentStyleList();
- Database destDb =
- Application.DocumentManager.MdiActiveDocument.Database;
- ObjectId destDictId = destDb.DimStyleTableId;
- IdMapping iMap = new IdMapping();
- // Копируем с заменой всех существующих стилей
- destDb.WblockCloneObjects(dimStyles, destDictId, iMap,
- DuplicateRecordCloning.Replace, false);
- }
Источник: http://adndevblog.typepad.com/autocad/2012/06/copying-dimstyles-between-drawings-using-c.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=3186
Опубликовано 05.11.2015Отредактировано 09.11.2015 в 13:20:48