Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Отображение точки вставки атрибутов у блока

Отображение точки вставки атрибутов у блока

Ответ
Поиск в этой теме
Непрочитано 10.10.2016, 13:12 #1
Отображение точки вставки атрибутов у блока
Cren
 
Регистрация: 17.02.2016
Сообщений: 11

При программном создании блока и вставке его ссылки чертеж видна точка вставки его атрибутов. Если применить к ссылке команду ATTSYNC, то точка вставки пропадает, но и пропадают отображаться атрибуты в свойствах блока. Как сделать точку вставки невидимой и вместе с тем видимые атрибуты в свойствах блока?

Код:
[Выделить все]
static public bool IsertingBlock(string Name, Point3d InsertPoint, out ObjectId objID, List<AttributeDefinition> lstAttrDef)
        {
            bool result = false;
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            Database CurDB = Application.DocumentManager.MdiActiveDocument.Database;
            using (Transaction Trans = CurDB.TransactionManager.StartTransaction())
            {
                BlockTable BT = Trans.GetObject(CurDB.BlockTableId, OpenMode.ForWrite) as BlockTable;
                objID = ObjectId.Null;
                BlockTableRecord CurSpace = Trans.GetObject(CurDB.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
                if (!BT.Has(Name))
                {
                    BlockTableRecord BTR = new BlockTableRecord();
                    BTR.Origin = new Point3d(InsertPoint.X, InsertPoint.Y, InsertPoint.Z);
                    BTR.Name = Name;
                    BT.UpgradeOpen();
                    BT.Add(BTR);
                    Trans.AddNewlyCreatedDBObject(BTR, true);
                    objID = BTR.Id;

                    AttributeDefinition adAttr = null;
                    foreach (AttributeDefinition AttrDef in lstAttrDef)
                    {
                        adAttr = new AttributeDefinition();
                        adAttr.Tag = AttrDef.Tag;
                        adAttr.Position = BTR.Origin;
                        adAttr.Visible = false;
                        adAttr.Constant = true;
                        adAttr.LockPositionInBlock = true;
                        BTR.AppendEntity(adAttr);
                        Trans.AddNewlyCreatedDBObject(adAttr, true);
                    }
                }
                else
                {
                    objID = BT[Name];
                    result = true;
                }
                if (objID != ObjectId.Null)
                {
                    BlockReference BR = new BlockReference(InsertPoint, objID);
                    CurSpace.AppendEntity(BR);
                    Trans.AddNewlyCreatedDBObject(BR, true);
                    foreach (AttributeDefinition AttrDef in lstAttrDef)
                    {
                        AttributeReference arAttr = new AttributeReference();
                        arAttr.SetAttributeFromBlock(AttrDef, BR.BlockTransform);
                        arAttr.Position = InsertPoint;
                        arAttr.Visible = AttrDef.Visible;
                        arAttr.LockPositionInBlock = AttrDef.LockPositionInBlock;
                        arAttr.TextString = AttrDef.TextString;
                        BR.AttributeCollection.AppendAttribute(arAttr);
                        Trans.AddNewlyCreatedDBObject(arAttr, true);
                    }
                }
                Trans.Commit();
                return result;
            }
        }
Просмотров: 6606
 
Непрочитано 10.10.2016, 13:51
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Посмотри http://adn-cis.org/kak-vstavit-blok-...vo-modeli.html
http://adn-cis.org/sozdanie-bloka-s-...-atributa.html
Ну и вообще: http://adn-cis.org/search.html?query...BB%D0%BE%D0%BA
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Отображение точки вставки атрибутов у блока

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как настроить отображение атрибутов блока в панели "Свойства"? Taurustau AutoCAD 3 26.11.2014 16:45
Lisp. авто-нумерация атрибута блока. DonJad LISP 10 26.10.2014 02:04
Точка вставки блока Visla AutoCAD 14 03.05.2012 22:59
Непонятное смещение атрибутов блока PAULkan Программирование 3 19.04.2009 22:40
Не отображаюся подсказки атрибутов блока ct_ycte AutoCAD 7 07.05.2008 10:24