Платформа nanoCAD 22.0 (6122)
Любую вкладку чертежа теперь можно отделить от окна Платформы nanoCAD, сделав ее плавающей. Этот функционал удобен в тех случаях, когда требуется разделить рабочее пространство и видеть несколько файлов. При этом в каждом открепленном окне можно выбрать предпочтительный тип интерфейса.
Модернизированный Диспетчер чертежа
Усовершенствованная панель Диспетчера чертежа содержит теперь три категории блоков: стандартные, динамические и 3D-блоки. Добавлены категории мультилиний, а также некоторых объектов «Топоплана», таких как группы точек координатной геометрии, наборы стилей маркеров точек и стилей их меток.
Оптимизация работы в 4К
- локатора;
- инструментов управления видами, проекциями и визуальными стилями;
- кнопок на функциональной панели Свойства;
- командной строки;
- строки состояния.
Проверка орфографии
Панель Проверка орфографии стала эргономичнее: ошибки теперь представляются в виде таблицы, а настройка выбора – в виде иконок. Появилась опция, которая позволяет в режиме реального времени следить за правильностью написания текстов.
Ускорение открытия файлов
Для ускорения открытия чертежей реализована многопоточная загрузка *.dwg-файлов, управление которой осуществляется системной переменной MTMODE.
Ассоциативные массивы по траектории
Добавлен функционал создания и редактирования нового типа ассоциативных (динамических) массивов – Массив по траектории. Команда позволяет равномерно распределять копии объекта вдоль траектории или ее части. В качестве объекта можно выбрать линию, полилинию, 3D-полилинию, сплайн, спираль, дугу, окружность или эллипс.
Редактирование источника ассоциативного массива
Команда ARRAYEDIT позволяет изменить или полностью заменить исходный объект ассоциативного массива, при этом сохраняя связь между объектами. По результатам редактирования изменится каждый объект в массиве – это избавит пользователей от необходимой ранее разбивки и перестройки массива.
Множественное управление параметром видимости
В редакторе динамических блоков можно задавать неограниченное количество параметров видимостей командой BVSTATEADD. А каждому параметру видимостей в свою очередь назначать сколь угодно много состояний видимостей командой BVSTATE. Это позволит управлять видимостью объектов у каждой видимости динамического блока.
Автоматический подбор требований
Новая функциональная панель автоматически подбирает требования нормативных документов к объектам информационной модели. Интеллектуальный поиск требований осуществляется на основе фактических наименований элементов IFC и кодов Классификатора строительной информации (КСИ).
Объектные 3D-привязки
3D-привязки позволяют точно указывать положение точек привязки на объектах, что значительно повышает удобство и скорость при работе с 3D-инструментами.
Пересчет координат облака точек
Появилась возможность пересчета координат облака точек из одной системы координат в другую, а также по EPSG-кодам.
Ограничивающая призма
Механизм создания и управления ограничивающей видовой призмы (MCLIP) полностью переработан и оптимизирован. Использование призмы стало простым и интуитивным.
Новые форматы облаков точек
Новый формат импорта файла LAZ. Расширены параметры импорта формата PTS, появилась возможность экспорта в формат PTS.
Новые геопараметры в облаках точек
Реализовано сохранение параметров географической системы координат эллипсоида. Привязку в географической системе координат можно увидеть на панели свойств выбранного облака точек.
Расширенная информация об облаке
Для совместимости с другими ОС обновлены диалоги работы с облаками точек. Они позволяют увидеть подробную статистику по точкам облака, определяя количество точек по параметрам (например, точки определенного класса).
Новые возможности модуля 3D
Редактор 3D-блоков
Редактирование блоков, содержащих твердотельные объекты (3D-солиды) или параметрические тела, теперь осуществляется в отдельном редакторе, который вызывается по двойному щелчку на таком блоке командой 3DBEDIT. В диспетчере чертежа 3D-блоки вынесены в отдельный раздел.
2D-виды на листах
Ранее для оформления чертежа в листе необходимо было создавать проекции 3D-объектов в пространстве модели и затем вставлять эти проекции с помощью видовых экранов в листы. В 22-й версии реализована дополнительная опция, с помощью которой можно создавать 2D-виды напрямую в листах, без их дублирования в пространстве модели.
Автоналожение зависимостей
В параметрическом моделировании при построении плоских эскизов будущих моделей реализован режим автоналожения зависимостей. Теперь можно не тратить время на создание геометрических зависимостей – система самостоятельно параметризует объект.
Новые возможности модуля Топоплан
Разбивка на листы для печати
Реализована возможность разбивки чертежа на оформленные листы для последующей печати. Команда Создание рамок листов позволяет разместить на чертеже рамки видов будущих листов, а команда Создание листов по рамкам создает листы на основе рамок с нужным оформлением и масштабом.
Отрисовка откосов
Появилась возможность отрисовки нового условного знака – Откос (откос укрепленный, неукрепленный, берег обрывистый, подпорные стенки, обрыв земляной).
Расширенный интерфейс импорта геоточек
Появилась возможность настройки параметров объекта «Геоточка» (номер точки, высотная отметка, размещение на слое, цветовое отображение объекта и т.д.). Кроме того, в момент импорта точки её можно представить в виде геоточки или блока. Также появилась возможность пакетного открытия нескольких файлов данных съемок.
Новые возможности модуля СПДС
Новые свойства деталей крепежа
Для библиотечных крепежных элементов по старым стандартам добавлены дополнительные свойства по ГОСТ 1759.0 (направление резьбы, поле допуска резьбы, материал, класс и т.д.). Для библиотечных крепежных элементов по новым стандартам добавлены дополнительные свойства по ГОСТ Р ИСО 8991-2011.
Маскировка в маркерах
Маркеры СПДС стали еще удобнее: в них появилась дополнительная опция – маскировка. Это позволит применять маркеры СПДС для насыщенных чертежей, что сделает их более универсальными.
Новые возможности модуля Механика
Местные разрезы
Команда Местный разрез позволяет автоматически получать изображения элементов базы типа шпоночных пазов и центровых отверстий на валах. На деталях передач и фланцах средствами этой команды можно делать полуразрезы, а на днищах и обечайках с местными разрезами – показывать их толщину.
Развертка как отдельное тело
При работе с листовыми моделями реализована возможность создания развертки как отдельного тела. Этот функционал предоставляет больше свободы при оформлении чертежей по 3D-моделям из листовых тел. Чертежи разверток теперь можно оформлять одновременно в двух состояниях, разогнутом и согнутом, сохраняя при этом ассоциативность с 3D-моделью.
Новые материалы в базе
- стали ГОСТ 1050-88, ГОСТ 1050-2013, ГОСТ 4543-2016 с полным обозначением по стандартам;
- иностранные материалы по EN, DIN и ASTM;
- прокаты ГОСТ 801-78, ГОСТ 1051-73, ГОСТ 20072-74, ГОСТ 23570-79, ГОСТ Р 54908-2012, ГОСТ Р 56299-2014.
Примитив – блок? Или ассоциативный массив?
Столкнулся тут на работе с вопросом «как определить ассоциативный массив?».
В .NET для этого есть отдельный метод AssocArray.IsAssociativeArray, а вот в lisp что-то подобного не видать. Ну ладно, займемся снова велосипедостроением
Код писать буду постепенно, поэтому статья получится ни фига не короткая. Кому лениво читать — не раскрывайте спойлер
История разбора
Ну ок, есть у нас какой-то указатель на примитив. Скорее всего, понадобится нам и его ename-, и vla-указатель.
1
2
3
4
5
6
7
8
9
10
11
( defun _kpblc — is — ent — assoc — array ( ent )
;|
* Определяет, является ли переданный примитив указателем на ассоциативный список
* Параметры вызова:
ent ; указатель (ename- или vla-) на обрабатываемый примитив
* Возвращает t, если примитив является ассоциативным массивом
* Примеры вызова:
(_kpblc-is-ent-assoc-array (car (entsel «\nSelect entity : «)))
(_kpblc-is-ent-assoc-array (vlax-ename->vla-object (car (entsel «\nSelect entity : «))))
|;
)
Первое – приводим ent к хоть какому-то виду. Ну, например, ename. Код элементарен, отдельно его показывать не буду.
Второе, что надо сообразить – что с точки зрения лиспа ассоциативный массив не больше чем блок. Анонимный блок. Следовательно, проверяем – является ли примитив а) блоком; б) анонимным блоком; в) не является вхождением динамического блока (ведь известно, что вхождения дин.блоков практически всегда являются анонимными блоками):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
( defun _kpblc — is — ent — assoc — array ( ent / name vla_ename )
;|
* Определяет, является ли переданный примитив указателем на ассоциативный список
* Параметры вызова:
ent ; указатель (ename- или vla-) на обрабатываемый примитив
* Возвращает t, если примитив является ассоциативным массивом
* Примеры вызова:
(_kpblc-is-ent-assoc-array (car (entsel «\nSelect entity : «)))
(_kpblc-is-ent-assoc-array (vlax-ename->vla-object (car (entsel «\nSelect entity : «))))
|;
( and ( setq ent ( cond ( ( = ( type ent ) ‘ename ) ent )
( ( = ( type ent ) ‘vla — object ) ( vlax — vla — object -> ename ent ) )
) ;_ end of cond
) ;_ end of setq
( = ( cdr ( assoc 0 ( entget ent ) ) ) «INSERT» )
( setq vla_ename ( vlax — ename -> vla — object ent ) )
( setq name ( if ( vlax-property-available-p vla_ename ‘effectivename )
( vla — get — effectivename vla_ename )
( vla — get — name vla_ename )
) ;_ end of if
) ;_ end of setq
( wcmatch name «‘**» ;; Здесь вместо ‘ надо ставить обратный апостроф
) ;_ end of and
) ;_ end of defun
И вот тут начинается самое интересное. С точки зрения вхождения блока различить – простой это анонимный блок или ассоциативный массив – невозможно. Ни через ename, ни через vla. Кто не верит – проверьте, у меня на AutoCAD 2019 и 2020 разницы не было никакой.
Но как-то их ACAD же различает, верно?!
Значит, ползем в сторону описаний блоков – вдруг там что-то есть?
Тут для упрощения кода сделаю предположение, что работа выполняется только в текущем документе. Для нетекущего просто придется делать дополнительные преобразования, которые особого влияния на общую картину не окажут.
Если выполнить строки
( setq def ( vla — item ( vla — get — blocks ( vla — get — activedocument ( vlax-get-acad-object ) ) ) name ) )
( vlax-dump-object def t )
то разницы с обычным блоком будет ноль.
Ну хорошо, ACAD, не хочешь по плохому, по хорошему будет еще хуже:
( setq def ( vlax — vla — object -> ename ( vla — item ( vla — get — blocks ( vla — get — activedocument ( vlax-get-acad-object ) ) ) name ) ) )
( entget def ‘ ( «*» ) )
И вот тут обнаруживаются забавные вещи:
( entget ( cdr ( assoc 330 ( member ‘ ( 102 . «
Ух ты! Вспоминаем начальный уровень английского и внимательно смотрим либо на 0, либо на 100 группу: Бла-бла-ASSOCDEPENDENCY, то бишь ассоциативные зависимости. Может, достаточно просто проверять наличие подобных реакторов и, если они есть – то примитив у нас ассоциативный массив?
Несколько десятков проверок так и показали. Следовательно, конечный код будет…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
( defun _kpblc — is — ent — assoc — array ( ent / name vla_ename def def_list )
;|
* Определяет, является ли переданный примитив указателем на ассоциативный список
* Параметры вызова:
ent ; указатель (ename- или vla-) на обрабатываемый примитив
* Возвращает t, если примитив является ассоциативным массивом
* Примеры вызова:
(_kpblc-is-ent-assoc-array (car (entsel «\nSelect entity : «)))
(_kpblc-is-ent-assoc-array (vlax-ename->vla-object (car (entsel «\nSelect entity : «))))
|;
( and ( setq ent ( cond ( ( = ( type ent ) ‘ename ) ent )
( ( = ( type ent ) ‘vla — object ) ( vlax — vla — object -> ename ent ) )
) ;_ end of cond
) ;_ end of setq
( = ( cdr ( assoc 0 ( entget ent ) ) ) «INSERT» )
( setq vla_ename ( vlax — ename -> vla — object ent ) )
( setq name ( if ( vlax-property-available-p vla_ename ‘effectivename )
( vla — get — effectivename vla_ename )
( vla — get — name vla_ename )
) ;_ end of if
) ;_ end of setq
( wcmatch name «`**» ) ; здесь уже иичего менять не надо
( setq def ( vlax — vla — object -> ename
( vla — item ( vla — get — blocks ( vla — get — activedocument ( vlax-get-acad-object ) ) ) name )
) ;_ end of vlax-vla-object->ename
) ;_ end of setq
( setq def_list ( cdr ( assoc 330 ( member ‘ ( 102 . » ( = ( cdr ( assoc 0 ( entget def_list ) ) ) «ACDBASSOCDEPENDENCY» )
) ;_ end of and
) ;_ end of defun
Новые возможности Платформы nanoCAD 22
Русская Промышленная компания анонсирует вам новые возможности Платформы nanoCAD 22!
Плавающие окна
Любую вкладку чертежа теперь можно отделить от окна Платформы nanoCAD, сделав ее плавающей. Этот функционал удобен в тех случаях, когда требуется разделить рабочее пространство и видеть несколько файлов. При этом в каждом открепленном окне можно выбрать предпочтительный тип интерфейса.
Модернизированный Диспетчер чертежа
Усовершенствованная панель Диспетчера чертежа содержит теперь три категории блоков: стандартные, динамические и 3D-блоки. Добавлены категории мультилиний, а также некоторых объектов «Топоплана», таких как группы точек координатной геометрии, наборы стилей маркеров точек и стилей их меток.
Оптимизация работы в 4К
Оптимизирована работа на экранах с разрешением 4К (3840х2160). Исправлено искажение на высоких разрешениях и на 4К-мониторах отображений
- локатора;
- инструментов управления видами, проекциями и визуальными стилями;
- кнопок на функциональной панели Свойства;
- командной строки;
- строки состояния.
Проверка орфографии
Панель Проверка орфографии стала эргономичнее: ошибки теперь представляются в виде таблицы, а настройка выбора – в виде иконок. Появилась опция, которая позволяет в режиме реального времени следить за правильностью написания текстов.
Ускорение открытия файлов
Для ускорения открытия чертежей реализована многопоточная загрузка *.dwg-файлов, управление которой осуществляется системной переменной MTMODE.
Ассоциативные массивы по траектории
Добавлен функционал создания и редактирования нового типа ассоциативных (динамических) массивов – Массив по траектории. Команда позволяет равномерно распределять копии объекта вдоль траектории или ее части. В качестве объекта можно выбрать линию, полилинию, 3D-полилинию, сплайн, спираль, дугу, окружность или эллипс.
Редактирование источника ассоциативного массива
Команда ARRAYEDIT позволяет изменить или полностью заменить исходный объект ассоциативного массива, при этом сохраняя связь между объектами. По результатам редактирования изменится каждый объект в массиве – это избавит пользователей от необходимой ранее разбивки и перестройки массива.
Множественное управление параметром видимости
В редакторе динамических блоков можно задавать неограниченное количество параметров видимостей командой BVSTATEADD. А каждому параметру видимостей в свою очередь назначать сколь угодно много состояний видимостей командой BVSTATE. Это позволит управлять видимостью объектов у каждой видимости динамического блока.
Автоматический подбор требований
Новая функциональная панель автоматически подбирает требования нормативных документов к объектам информационной модели. Интеллектуальный поиск требований осуществляется на основе фактических наименований элементов IFC и кодов Классификатора строительной информации (КСИ).
Объектные 3D-привязки
3D-привязки позволяют точно указывать положение точек привязки на объектах, что значительно повышает удобство и скорость при работе с 3D-инструментами.
Пересчет координат облака точек
Появилась возможность пересчета координат облака точек из одной системы координат в другую, а также по EPSG-кодам.
Ограничивающая призма
Механизм создания и управления ограничивающей видовой призмы (MCLIP) полностью переработан и оптимизирован. Использование призмы стало простым и интуитивным.
Новые форматы облаков точек
Новый формат импорта файла LAZ. Расширены параметры импорта формата PTS, появилась возможность экспорта в формат PTS.
Новые геопараметры в облаках точек
Реализовано сохранение параметров географической системы координат эллипсоида. Привязку в географической системе координат можно увидеть на панели свойств выбранного облака точек.
Расширенная информация об облаке
Для совместимости с другими ОС обновлены диалоги работы с облаками точек. Они позволяют увидеть подробную статистику по точкам облака, определяя количество точек по параметрам (например, точки определенного класса).
Что такое ассоциативный массив в нанокад
Скачать пробную версию на 30 дней Скачать пробную версию
Программный продукт Платформа nanoCAD включен за № 8814 в Единый реестр российских программ для ЭВМ и БД в информационно-телекоммуникационной сети Интернет
Платформа nanoCAD
Скачать пробную версию
Задать вопрос
Возможности продукта Платформа nanoCAD
Ключевые возможности
Динамический ввод
Динамический ввод помогает устанавливать размеры элементов чертежа без необходимости доступа к командной строке. Это проецирование с вводом указателя, вводом размеров и динамическими подсказками. Динамический ввод, доступный при создании и редактировании объектов, значительно упрощает работу с чертежами
Палитры инструментов
Палитры инструментов обеспечивают быстрый и легкий доступ к наиболее часто используемым командам и блокам. Организации могут формировать собственные наборы стандартных блоков, штриховок и сценариев, а затем загружать их на все рабочие станции для доступа к ним одним щелчком мыши
Мощный редактор таблиц
Редактор таблиц nanoCAD превосходит конкурирующие решения мощным набором средств, подобных базам данных, а также возможностями таблиц: в ячейки встраиваются макросы и формулы, позволяя формировать динамические спецификации для ваших проектов
Работа с внешними ссылками
Внешние ссылки (Xref) позволяют использовать один и тот же файл (например, чертеж или блок) в нескольких проектах. Это упрощает работу и экономит время, так как изменения в исходном файле автоматически отражаются во всех проектах, где он используется. Xref также позволяет распределять задания между несколькими пользователями, обеспечивая одновременную работу над одним проектом
Работа с растровыми изображениями
Программа содержит набор средств для создания и редактирования растровых изображений. В зависимости от применяемого средства редактировать можно монохромные, цветные и/или полутоновые растровые изображения, сохраненные во внутреннем или внешних форматах (TIFF, BMP, JPG, JPEG, PNG, PCX)
Группы объектов
Для удобства редактирования объектов документа их можно объединить в группу. Это позволит выбирать и редактировать как всю группу, так и отдельные объекты, входящие в нее
Сравнение чертежей
Платформа nanoCAD позволяет находить различия между двумя похожими чертежами в пространстве модели. При сравнении обнаруживаются объекты, которые были изменены, добавлены или удалены
Интеллектуальные размеры
Удобные функции простановки размеров позволят сэкономить время при оформлении чертежей. Размеры поддерживают ассоциативную связь с объектами, что, в свою очередь, позволяет в дальнейшем их корректировать без перестроения размеров