вторник, 25 декабря 2018 г.

Откуда крольчишка

Как и обещал однажды, рассказываю.

На AU 2014 я приобрёл известную книгу Ланцова:


Если посмотреть со стороны корешка, то появляется кролик:


Сперва использовал перевёрнутую иконку Revit, чуть позже Рома Митин добавил пару деталей и придал изображению завершённый вид:





пятница, 7 сентября 2018 г.

[AutoLISP] - Куда уходит память?

При разработке приложения на AutoLISP столкнулся с утечкой памяти. На тестах под нагрузкой сжиралась вся оперативная память (всего - 16 Гб).
Запуск сборщика мусора не помог, все переменные проекта проверил, всё в порядке.
При отладке выявил, что виновником утечки памяти является функция 
vlax-ename->vla-object

После безуспешных попыток найти решение помог уже не раз выручавший меня способ: последовательное чтение списка всех функций. 
В книге "Autolisp и Visual Lisp в среде AutoCAD" есть очень удобное приложение - в одну таблицу собраны все функции и методы, сначала пробежался по ней, но безуспешно. Пошёл шерстить всю книгу и нашёл метод получения vla-объекта по хэндлу примитива HandleToObject

Ну а дальше дело техники - забираем хэндл из DXF-данных примитива и по нему получаем vla-object:

(defun kha_vlax-ename->vla-object (e doc)
  (vla-HandleToObject doc (cdr (assoc 5 (entget e)))))

Удачи!

воскресенье, 1 апреля 2018 г.

[Revit - Электрика] - Обновление программы R-One Line Diagrams

Готовится к выпуску обновление программы R-One Line Diagrams.

Ключевое изменение - добавлена уменьшенная иконка для размещения кнопки запуска программы
на панели быстрого доступа:

С праздником! :)

UPD 08.04.2018: 
1 апреля прошло, настал черёд описания остальных изменений.

1. Повышение производительности.
    По сравнению с предыдущим выпуском скорость генерации схем увеличилась в 5-10 раз.

2. Поддержка работы с Revit 2018.

3. Автообновление схем.
    Эту функцию ждали от меня практически с самого возникновения программы:

4. Редактирование однолинейных схем.
    Вслед за автоматическим обновлением схем появилась потребность обратной связи - от схем к элементам модели Revit.
    Наиболее простое решение этого вопроса - по выбранным линиям на схеме найти и выбрать элементы модели Revit. Все изменения автоматически отражаются на схемах.
    При такой реализации единым источником данных остаются элементы модели Revit, не требуется отслеживать изменения сгенерированных схем.

5. Задание ширины столбца однолинейной схемы.
    В некоторых линиях для имени нагрузки не всегда хватает ширины столбца. Теперь есть возможность задать ширину столбца для отдельных щитов или линий:

6. Нумерация цепей.
    Про исправление нумерации трёхфазных цепей было описано и решено уже давно, но на всякий случай напоминаю. Кроме того, добавлена возможность задания суффикса или префикса для отдельных цепей:

Благодарю пользователей программы за обратную связь.