Создание индексов в атрибуте блока cредствами NET(C#) для AutoCAD2010
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание индексов в атрибуте блока cредствами NET(C#) для AutoCAD2010

Создание индексов в атрибуте блока cредствами NET(C#) для AutoCAD2010

Ответ
Поиск в этой теме
Непрочитано 23.11.2012, 16:11 #1
Создание индексов в атрибуте блока cредствами NET(C#) для AutoCAD2010
ghost
 
Регистрация: 19.12.2011
Сообщений: 35

Доброго времени суток уважаемые участники форума!

Недавно возникла потребность выводить верхний индекс в атрибуты блоков и в текст в пространстве модели AutoCAD2010 программно, через NET язык C#! На болоте и в блоге Кина Волмслея я не нашел не чего подобного.....Может конечно плохо искал.....
Если кто нибудь встречал что нибудь подобное направьте пожалуйста...
Просмотров: 4406
 
Непрочитано 23.11.2012, 16:28
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Показывай свой код.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 23.11.2012, 16:44
#3
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Верхний индекс есть только у MText. В остальных случаях можно добавить только квадрат и куб
Разъяснение
bargool вне форума  
 
Непрочитано 23.11.2012, 16:50
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от bargool Посмотреть сообщение
Верхний индекс есть только у MText. В остальных случаях можно добавить только квадрат и куб
Разъяснение
Ой ли? А ну ка... Набери в однострочном такое: Фомула спирта C%%2032%%204H%%2035%%204OH



В однострочных текстах – это %% последовательности.
В многострочных текстах – это UNICOD (\U+XXXX) последовательности.
Миниатюры
Нажмите на изображение для увеличения
Название: 23.11.png
Просмотров: 458
Размер:	11.8 Кб
ID:	91076  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 23.11.2012, 16:56
#5
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


hwd, так на то нужен спец. shx файлик. У меня с обычным simplex во что происходит. Тоже самое, что у тебя в Contents значится
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 59
Размер:	11.1 Кб
ID:	91077  
bargool вне форума  
 
Непрочитано 23.11.2012, 17:02
#6
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от bargool Посмотреть сообщение
так на то нужен спец. shx файлик.
MipGost.shx спасёт отца российской демократии
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 23.11.2012, 22:24
#7
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от ghost Посмотреть сообщение
Недавно возникла потребность выводить верхний индекс в атрибуты блоков и в текст в пространстве модели AutoCAD2010 программно, через NET язык C#!
Делай типа того:
Код:
[Выделить все]
string mytext= @"\A;{\fCalibri|b0|i1|c0|p18;\C14;{\H1.2x;P\H0.5x;пав.}\H1.2x; = 123.45 m\H0.6x;\S3^;}
{\fTimes New Roman|b0|i0|c0|p18;\C164;\H1.2x;S = 100.0 m\H0.6x;\S2^;}";
или

Код:
[Выделить все]
string mytext= @"{\fCalibri|b0|i1|c0|p18;\C14;{\H1.2x;P\H0.5x;пав.}\H1.2x; = 123.45 m\H0.6x;\S3^;}
{\fTimes New Roman|b0|i0|c0|p18;\C164;\H1.2x;S = 100.0 m\H0.6x;\S2^;}";
стиль текста по барабану, строка заменит на тот что в ней указан, высота текста в пикселях
после маркера: "| p.. "
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 26.11.2012, 17:38
#8
ghost


 
Регистрация: 19.12.2011
Сообщений: 35


Вот код.
Код:
[Выделить все]
public static void SetMtext()
        {
            DocumentLock lockdoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                try
                {
                    BlockTableRecord btr = (BlockTableRecord)trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
                    MText mtext = new MText();
                    string mytext = @"{\feskd_u.shx|b0|i0|c0|p18;\C7;NUMBER\H0.7x;\SINDEX^;}";
                    mtext.Contents = mytext;
                    mtext.Location = new Point3d(0,0,0);
                    MText mtext2 = new MText();
                    btr.AppendEntity(mtext);
                    trans.AddNewlyCreatedDBObject(mtext, true);
                    trans.Commit();
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show("Исключение из SetMTextOnPoint " + ex.Message);
                }
            }
            lockdoc.Dispose();
        }
Спасибо всем за ответы!
Вроде работает! Но иногда почему - то бывает, строка индекса становиться не сверху ,а где то посередине строки... Где-то можно про это поподробнее почитать???
ghost вне форума  
 
Непрочитано 26.11.2012, 19:57
#9
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


А какого ты ставишь здесь LockDocument если ты работаешь в этом же файле
тогда убери и lockdoc.Dispose();
Или делай лучше обертку
Код:
[Выделить все]
using (DocumentLock lockdoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument())
{
//остальные действия в документе здесь и
// lockdoc.Dispose();  тут писать уже не нужно
}
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание индексов в атрибуте блока cредствами NET(C#) для AutoCAD2010



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Autocad Architecture 2011: Как в атрибуте блока тега двери создать вычисляемое значение DOOROBJECTS:NUMBERSUFFIX+DOOROBJECTS:NUMBER (Д01)? сям Вертикальные решения на базе AutoCAD 6 13.03.2014 09:57
свойство динамичного блока в его атрибуте Pave1 AutoCAD 14 29.12.2011 20:31
Создание атрибута для блока Рyslan AutoCAD 56 14.10.2011 11:32
Повторное создание вхождения блока из внешнего файла hwd AutoCAD 6 02.04.2010 16:16
Создание блока с свободно вращающимся атрибутом gizmo_zx AutoCAD 2 01.09.2008 12:11