Подскажите пожалуйста, как вытащить из объекта примечания (notes). Бьюсь весь день, не могу найти где оно находится.
Решено! Перейти к решению.
Решено: Alexander.Rivilis. Перейти к решению.
Что ты имеешь в виду под notes? У примитивов "чистого" AutoCAD нет такого свойства. Поконкретнее, пожалуйста.
Уточни:
1. Продукт и версия.
2. Примитив (объект)
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
У меня стоит цивил 2011. У объектов, например текст в панели "Свойства" на закладке Дополнительно есть поле Примечания. Его можно как-нибудь достать?
Можно.
using System; using System.Reflection; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using AcDb = Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; using Autodesk.Aec.DatabaseServices; using AecDb = Autodesk.Aec.DatabaseServices; // This line is not mandatory, but improves loading performances [assembly: CommandClass(typeof(Rivilis.MyNotes))] namespace Rivilis { public class MyNotes { [CommandMethod("MySetNote")] public void MySetNote() { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; PromptEntityOptions optEnt = new PromptEntityOptions("\nКривая для добавления примечания"); optEnt.SetRejectMessage("\nЭто не кривая! Повторите."); optEnt.AddAllowedClass(typeof(Curve), false); PromptEntityResult resEnt = ed.GetEntity(optEnt); if (resEnt.Status != PromptStatus.OK) return; using (Transaction tr = doc.TransactionManager.StartTransaction()) { Curve obj = tr.GetObject(resEnt.ObjectId, OpenMode.ForWrite) as Curve; if (obj.ExtensionDictionary == AcDb.ObjectId.Null) obj.CreateExtensionDictionary(); TextNote txt = new TextNote(); txt.Note = "Моё поле комментария из C#"; DBDictionary extDict = tr.GetObject(obj.ExtensionDictionary, OpenMode.ForWrite) as DBDictionary; extDict.SetAt(TextNote.ExtensionDictionaryName, txt); tr.AddNewlyCreatedDBObject(txt, true); tr.Commit(); } } [CommandMethod("MyGetNote")] public void MyGetNote() { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; PromptEntityOptions optEnt = new PromptEntityOptions("\nКривая для получения примечания"); optEnt.SetRejectMessage("\nЭто не кривая! Повторите."); optEnt.AddAllowedClass(typeof(Curve), false); PromptEntityResult resEnt = ed.GetEntity(optEnt); if (resEnt.Status != PromptStatus.OK) return; using (Transaction tr = doc.TransactionManager.StartTransaction()) { Curve obj = tr.GetObject(resEnt.ObjectId, OpenMode.ForWrite) as Curve; if (obj.ExtensionDictionary == AcDb.ObjectId.Null) obj.CreateExtensionDictionary(); DBDictionary extDict = tr.GetObject(obj.ExtensionDictionary, OpenMode.ForRead) as DBDictionary; TextNote txt = null; try { txt = tr.GetObject(extDict.GetAt(TextNote.ExtensionDictionaryName), OpenMode.ForRead) as TextNote; } catch { } if (txt != null) { ed.WriteMessage("\nNote: {0}", txt.Note); } else { ed.WriteMessage("\nНет Notes!"); } tr.Commit(); } } } }
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
aleksey.stukalov написано:
Огромное спасибо! Это то мне и надо было!
Пожалуйста!
P.S.: На этом форуме принято отмечать правильные ответы (решения) вот так.
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Не подскажете где можно найти наиболее полный developer's guide по всем вопросам такого рода?
Ответа на этот вопрос нет ни в одном Developer Guide.
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.