24/02/2014
Как получить список канонических имен для плоттера?
Следующий код позволяет получить правильный размер листа, определенный в диалоге параметров листа. Чтобы проверить код будем подразумевать что страница “PlotSetName_HP” для плоттера HP LaserJet 8150 PCL 5e доступна.
Код - C#: [Выделить]
- [CommandMethod("getCanName")]
- public void getCanName()
- {
- // assume a plot setting exists
- string strPlotSetName = "PlotSetName_HP";
- bool PlotSettingExists = false;
- StringCollection strMediaNameList = null;
- Editor editor =
- Autodesk.AutoCAD.ApplicationServices.
- Application.DocumentManager.MdiActiveDocument.Editor;
- Database db = editor.Document.Database;
- using (Transaction t =
- db.TransactionManager.StartTransaction())
- {
- try
- {
- // Получаем словарь PlotSettings
- DBDictionary psDicts =
- (DBDictionary)t.GetObject(
- db.PlotSettingsDictionaryId,
- OpenMode.ForRead);
- foreach (
- System.Collections.DictionaryEntry psDict
- in psDicts)
- {
- object o = psDict.Value;
- string key = (string)psDict.Key;
- if (key == strPlotSetName)
- {
- // Находим установки плоттера
- PlotSettingExists = true;
- }
- }
- if (PlotSettingExists)
- {
- // открываем словарь настроек плоттера
- DBDictionary plotsettingdic =
- (DBDictionary)t.GetObject(
- db.PlotSettingsDictionaryId,
- OpenMode.ForRead);
- // открываем настройки
- PlotSettings setting =
- (PlotSettings)t.GetObject(
- plotsettingdic.GetAt(strPlotSetName),
- OpenMode.ForWrite);
- // получаем объект PlotSettingsValidator
- PlotSettingsValidator psv =
- Autodesk.AutoCAD.DatabaseServices.
- PlotSettingsValidator.Current;
- psv.RefreshLists(setting);
- // получаем список имен
- strMediaNameList =
- psv.GetCanonicalMediaNameList(setting);
- editor.WriteMessage("Список имен:\n");
- foreach (String str in strMediaNameList)
- {
- editor.WriteMessage(str + "\n");
- }
- }
- t.Commit();
- }
- catch (System.Exception ex)
- {
- editor.WriteMessage(ex.Message);
- }
- ///////------------------------------
- }
- }
Источник: http://adndevblog.typepad.com/autocad/2012/05/how-to-list-the-canonical-media-names-of-a-ploter.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=552
Опубликовано 24.02.2014