Forge, API и программирование – Русский – только для чтения
Задавайте вопросы и делитесь знаниями по Autodesk Forge и программированию на API программного обеспечения Autodesk
отмена
Отображаются результаты для 
Показать  только  | Вместо этого искать 
Вы имели в виду: 

.net C# Получить данные из объекта

9 ОТВЕТ 9
РЕШЕНО
Ответить
Сообщение 1 из 10
aleksey.stukalov
2343 просмотров, 9 ответов

.net C# Получить данные из объекта

Подскажите пожалуйста, как вытащить из объекта примечания (notes). Бьюсь весь день, не могу найти где оно находится.

9 ОТВЕТ 9
Сообщение 2 из 10

Что ты имеешь в виду под 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
Expert Elite Member

Сообщение 3 из 10

У меня стоит цивил 2011. У объектов, например текст в панели "Свойства" на закладке Дополнительно есть поле Примечания. Его можно как-нибудь достать?

Сообщение 4 из 10

Можно.

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
Expert Elite Member

Сообщение 5 из 10

Огромное спасибо! Это то мне и надо было!

Сообщение 6 из 10


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
Expert Elite Member

Сообщение 7 из 10

Ок! Отметил!

Сообщение 8 из 10

Не подскажете где можно найти наиболее полный developer's guide по всем вопросам такого рода?

Сообщение 9 из 10

Ответа на этот вопрос нет ни в одном 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
Expert Elite Member

Сообщение 10 из 10

Я заметилВеселый Еще раз спасибо!

Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.

Новая тема  

Autodesk Design & Make Report