линии лежат одна над другой. как выбрать определенную? - Страница 2
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > линии лежат одна над другой. как выбрать определенную?

линии лежат одна над другой. как выбрать определенную?

Ответ
Поиск в этой теме
Непрочитано 07.02.2013, 17:20
линии лежат одна над другой. как выбрать определенную?
Ольга_222
 
Регистрация: 07.02.2013
Сообщений: 5

добрый день!!!
работаю в автокаде 2012. в пылу активной работы сбила настройки. ДО этого при выделении области, где лежат несколько линий одна над другой, выпадало вспомогательное окно со всеми выбранными линиями, из которых можно было выбрать конкретную линию. сейчас максимум вижу quick propertis, который ничем не полезен.
плииииз, хЕЕЕлп, если кто-то сталкивался с подобными делами!!! весь день убила на поиск ответа.
Просмотров: 40919
 
Непрочитано 05.03.2020, 14:43
#21
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от RAD24 Посмотреть сообщение
Подскажите как определить какая из двух или более полилиний лежит выше другой , а какая ниже? Есть ли в свойствах полилиний данная информация?
В видимых нет, да и не может быть в самих свойствах полилиний задан порядок прорисовки - это информация храниться в блоке-контейнере/владельце, где размещаются эти полилинии.
Сергей812 вне форума  
 
Непрочитано 05.03.2020, 14:50
#22
Кулик Алексей aka kpblc
Moderator

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


Elevation + система координат объекта (ЯТД).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.03.2020, 15:05
#23
RAD24


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


Сергей, а что такое "блок-контейнер" ? где его найти?
RAD24 вне форума  
 
Непрочитано 05.03.2020, 15:55
#24
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от RAD24 Посмотреть сообщение
Сергей, а что такое "блок-контейнер" ? где его найти?
Думаю, вот так


Код:
[Выделить все]
 
// AutoCAD
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;


namespace GetOrderPolylines
{
    public class CommandsClass
    {
        /// <summary>
        /// Команда получения порядка отрисовки полилиний относительно друг друга
        /// </summary>
        [CommandMethod("GetOrderPolylines")]
        public void GetOrderPolylines()
        {
            // Получаем текущий документ, его БД и редактор
            Document lAcadDoc = Application.DocumentManager.MdiActiveDocument;
            Database lAcadDb = lAcadDoc.Database;
            Editor lAcadEd = lAcadDoc.Editor;
            // Запрашиваем первую полилинию
            PromptEntityOptions lPromptEntityOptions = 
                new PromptEntityOptions("\nВыберите первую полилинию: ");
            lPromptEntityOptions.SetRejectMessage("Выбирайте полилинию!\n");
            lPromptEntityOptions.AddAllowedClass(typeof(Polyline), true);
            PromptEntityResult lPromptEntityResultPl1 = lAcadEd.GetEntity(lPromptEntityOptions);
            if (lPromptEntityResultPl1.Status != PromptStatus.OK) return;
            // Запрашиваем вторую полилинию
            lPromptEntityOptions.Message = "\nВыберите вторую полилинию: ";
            PromptEntityResult lPromptEntityResultPl2 = lAcadEd.GetEntity(lPromptEntityOptions);
            if (lPromptEntityResultPl2.Status != PromptStatus.OK) return;
            // Если выбрана одна и та же полилиния
            if (lPromptEntityResultPl1.ObjectId.Equals(lPromptEntityResultPl2.ObjectId))
            {
                lAcadEd.WriteMessage("\nБыла выбрана одна и та же полилиния!");
            }
            else
            {
                // Открываем транзакцию
                using (Transaction lAcadTr = lAcadDb.TransactionManager.StartTransaction())
                {
                    // Получаем таблицу записей текущего пространства
                    BlockTableRecord lCurrentSpaceBTR = (BlockTableRecord)
                        lAcadTr.GetObject(lAcadDb.CurrentSpaceId, OpenMode.ForRead);
                    // Получаем таблицу порядка отрисовки
                    DrawOrderTable lDrawOrderTable = (DrawOrderTable)
                        lAcadTr.GetObject(lCurrentSpaceBTR.DrawOrderTableId, OpenMode.ForRead);
                    // Получаем коллекцию идентификаторов в порядке отрисовки
                    ObjectIdCollection lIdOrders = lDrawOrderTable.GetFullDrawOrder(0);
                    // И проверяем порядок отрисовки выбранных полилиний
                    if (lIdOrders.IndexOf(lPromptEntityResultPl1.ObjectId) < 
                        lIdOrders.IndexOf(lPromptEntityResultPl2.ObjectId))
                    {
                        lAcadEd.WriteMessage("\nПервая выбранная полилиния находится под второй");
                    }
                    else
                    {
                        lAcadEd.WriteMessage("\nПервая выбранная полилиния находится сверху второй");
                    }
                    // Завершаем транзакцию
                    lAcadTr.Commit();
                }
            }
        }

    }
}


т.е., например, пространство модели - это тот же блок-контейнер относительно "вложенных" в него примитивов.
Сергей812 вне форума  
 
Непрочитано 05.03.2020, 16:09
#25
RAD24


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


Спасибо всем за помощь!
RAD24 вне форума  
 
Непрочитано 09.03.2020, 10:28
#26
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от RAD24 Посмотреть сообщение
Подскажите как определить какая из двух или более полилиний лежит выше другой , а какая ниже? Есть ли в свойствах полилиний данная информация?
Попробовать покрасить одну из них в другой цвет, тогда будет видно кто выше.
Pilot вне форума  
 
Непрочитано 09.03.2020, 14:44
#27
RAD24


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


Цитата:
Сообщение от Pilot Посмотреть сообщение
Попробовать покрасить одну из них в другой цвет, тогда будет видно кто выше.
Нужно чтобы это имело прикладное значение, желательно через свойства или через lisp.
RAD24 вне форума  
 
Непрочитано 09.03.2020, 16:55
#28
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от RAD24 Посмотреть сообщение
через lisp.
Ну у лиспа тоже есть похожий метод GetFullDrawOrder
Сергей812 вне форума  
 
Непрочитано 10.03.2020, 11:55
#29
RAD24


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Ну у лиспа тоже есть похожий метод GetFullDrawOrder
Спасибо за информацию, посмотрю.
RAD24 вне форума  
 
Непрочитано 10.03.2020, 12:00
#30
Кулик Алексей aka kpblc
Moderator

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


http://forum.dwg.ru/showpost.php?p=165495&postcount=5
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.10.2023, 14:11
#31
posetitel


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


подниму тему.
подскажите, как сделать так, чтобы при подсветке примитивов в табличке циклического выбора отображались еще и слои примитивов, в которых они лежат, а не просто наименование примитива и его цвет
posetitel вне форума  
 
Непрочитано 25.10.2023, 19:44
1 | #32
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от posetitel Посмотреть сообщение
подскажите, как сделать так, чтобы при подсветке примитивов в табличке циклического выбора отображались еще и слои примитивов, в которых они лежат, а не просто наименование примитива и его цвет
написать свой диалог и надстройку в целом) Вроде этот диалог никак не настраивается..
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > линии лежат одна над другой. как выбрать определенную?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как посчитать прочность сварных швов трех квадратных труб 100х100х8 сваренных под углом 135 градусов последовательно одна за другой Victorkzn Металлические конструкции 1 12.11.2013 15:20
Autocad 2010. При наложении линии поверх другой, очертание линий не видно. abcdlv AutoCAD 13 02.11.2012 12:56
При копировании Ctrl и переноса в другой лист размерные линии сбиваются Владимир Кереб AutoCAD 9 30.12.2008 06:31
прокладка сетей одна над другой nash_D Инженерные сети 6 22.08.2008 17:30
Линии одна на другой - можно ли избавиться? Baires AutoCAD 5 04.10.2005 16:59