Blogs
Featured Entries
-
Как из ARCHICAD сохранить BIM-модель в формате IFC, чтобы в nanoCAD Инженерный BIM пришли помещения?
By dows
Часто возникает вопрос со стороны пользователей: Почему из ARCHICAD не приходят помещения? И чаще всего архитекторы забывают отображать помещения в 3D модели при сохранении IFC. Ниже укрупненные шаги, как все-таки подготовить корректные IFC из ARCHICAD. Хотя в общем виде схема универсальна для любых других архитектурных BIM-систем. Итак... Со стороны ARCHICAD процесс достаточно простой: 1. Замоделировать модель с проработкой помещений (помещения = Зоны, какие параметры задаются- 1 comment
- 5,075 views
Our community blogs
-
- 3
entries - 29
comments - 1268
views
Recent Entries
### Назначение:
Создание СПДС объектов в пространстве модели по таблице Excel.#### Логика работы:
1. Скрипт читает указанный файл Excel.
2. В файле должны быть указаны:
* ID объектов (из базы СПДС)
* координаты вставки
* параметры объекта которые необходимо применить к объекту.
3. Одна строка файла равно один объект СПДС.
4. Объект по ID ищется в БД СПДС, к нему применяются параметры.
5. Объект вставляется по координатам.#### Рабочие файлы:
SpdsObjByExcelParams_v1.0.0.zip
#### Важно:
1. Структура таблицы должна быть как в приложенном файле. Кол-во параметров можно расширять вправо.
2. ID и параметры можно найти в "Мастер объектов" СПДС.
3. Чтение Excel реализовано через Open XML библиотеки.
DocumentFormat.OpenXml.dll - должна находится в папке со основной dll.P.S. часть парметров объекта "вид" и "имплементация" жестко прописана в коде.
Поставляется "как есть".#### Пример:
- Read more...
-
- 0 comments
- 3
-
- 2
entries - 0
comments - 57
views
Recent Entries
Latest Entry
Сделать блоки разбиваемыми
(vl-load-com) (defun c:kpblc-make-explodeable (/ err_list adoc) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for item (vla-get-blocks adoc) (if (and (equal (vla-get-isxref item) :vlax-false) (not (wcmatch (vla-get-name item) "`**`*,`*D*,`*T*")) (equal (vla-get-explodable item) :vlax-false) ) ;_ end of and (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (vla-put-explodable item :vlax-true) ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of vl-catch-all-error-p (setq err_list (cons (vla-get-name item) err_list)) ) ;_ end of if ) ;_ end of if ) ;_ end of vlax-for (if err_list (progn (foreach item (vl-sort err_list (function <)) (princ (strcat "\n" item)) ) ;_ end of foreach ) ;_ end of progn ) ;_ end of if (vla-endundomark adoc) (princ) ) ;_ end of defun
- Read more...
-
- 0 comments
- 2
-
- 14
entries - 89
comments - 3146
views
Recent Entries
Latest Entry
Крошки
Иногда пара нажатий на клавиатуру заменяет кучу движений мышкой и вообще...
например кому не хотелось сперва выбрать объекты чертежа, а потом ткнуть в нужный объект и применить к выбранным его свойства))
две строчки с dwg.ru и вот оно ккс
(defun c:ккс (/ ss) ;;выбрать, потом копировать свойства (if (setq ss (ssget)) (command "_.matchprop" pause ss "") ) (princ) )
или работаешь, а некоторые объекты мешаются.. убрать бы их гамузом сглаз подальше.. пока...
выбрал один мешающийся выс и все такие жэж скрыты
(defun c:выс () ;;выбрать похожие и изолировать (command "_SelectSimilar") (command "_HideObjects") (princ) )
иногда нужно поместить объект на задний слой... мышой елозить по менюшке.. , но можно просто набрать 3 пробел и объект на заднем слое
(defun C:3 () ;;на задний план выбранное (command "draworder2") (princ) ) ;_ end defun
а если несколько одинаковых на задний слой... легко жэж
выберем образец и три троечки и подобные выбранному позади...
(defun C:333 () ;; выбрать подобные и переместить на задний план (command "ВЫБРПОХОЖИЕ ") (command "draworder2") (princ) ) ;_ end defun
=========================
понятно, что это всего лишь командные методы, но они экономят время, а время ...
- Read more...
-
- 0 comments
- 14
-
В данном видео рассмотрен процесс параметризации графики объектов, подразумевающий изменение цвета объекта в зависимости от контролируемого параметра. В видео это продемонстрировано на примере отклонения металлических балок и колон от горизонтальности и вертикальности. А также продемонстрирован дополнительный прием контроля точности размещения балок и колон.
Спойлер- Read more...
-
- 0 comments
-
Хочу написать гайд по отчётам таблиц, который будет понятен и нагляден.
Делаю это в первую очередь для коллег с которыми работаю, но, надеюсь, пригодиться и кому-то ещё.0. Оговорка
Работаю в Нанокад СПДС 6.0
1. Задача
Поставим очень простую, но часто встречающуюся задачу - сложить длину объектов - в нашем случае надо будет узнать общую длину всех отрезков в указанной области в определённом слое.
2. Начало работы.
Для удобства прикладываю файл, с которым буду работать
Первым делом вызовем таблицу (команды TABLE, ТАБЛИЦА
)
Теперь надо выбрать поле "Отчёт по выборке объектов"
и нажать кнопку "Выбрать".
Появляется меню быстрого выбора. Тут немного остановимся.
Давайте разберёмся как им правильно пользоваться в текущей ситуации.
Разбираемся в значках- Поиск объектов во всём документе (Модель и листы)
- Поиск объектов в текущем листе (либо модели)
- Поиск в прямоугольнике
- Поиск в текущем наборе
- Указать на чертеже (сейчас серым)
- Загрузка шаблона
- Очистить список условий.
Первые два значка (
и
) в принципе вопросов не должны вызывать - при выборе параметров из меню ниже, поиск объектов будет производится во всём чертеже (
) либо в текущем листе/модели (
)
Что такое "Поиск в прямоугольнике" ()? При выборе этой опции, будет производится поиск элементов только в указанной области. Область можно задать только одну при этом. При нажатии на кнопку у нас появится возможность задать прямоугольный участок в котором будут выбраны все объекты. Вроде бы удобно, но для первоначального создания отчёта по выборке объектов не рекомендую.
СпойлерА не рекомендую вот почему - выбираем нашу область с отрезками и полилиниями и получаем следующую картину:
Выбрались все наши элементы. А нам нужны только отрезки. Но вроде не велика беда, можно выбрать не нужные нам элементы (в данном случае полилинии) и, нажав на "+" убрать их из выборки выбрав строку "(Нет объекта)"
А теперь предположим что мы работаем с реальным чертежом. Задача та же, только в этой же области присутствуют и блоки и размеры и много других элементов которые нам не нужны.
Нам придётся выбрать каждый из них и удалить подобным образом. Не очень-то и удобно, согласитесь.Конечно, мы можем просто нажать
и тем самым удалить все объекты из выбора, а после руками выбрать нужный, но это несколько лишних кликов и затраченное время на поиск нужных параметров из списка.
Поэтому для первоначального выбора объектов советую использовать
- поиск в текущем наборе.
Эта опция позволяет выбрать конкретные объекты на чертеже.
Теперь, чтобы всё сработало корректно, выходим из создания отчёта (жмём esc), повторяем предыдущие шаги, только вместо выбора объекта с помощью
, выбираем
. Вас перекинет на чертёж с возможностью выбрать объекты.
Выбираем отрезок, но не любой, а сразу тот, который находится в слое "Надо сложить" (жёлтый). И вот почему:Сейчас мы будем настраивать наш поиск. Мы сразу выбрали тип элемента который нам нужен, и поэтому сможем легко настроить наш поиск так, чтобы случайно не захватить другие элементы.
Первое - мы выбираем только отрезок - уже есть.
Второе - наш отрезок должен быть в определённом слое - добавляем условие - щёлкаем в столбце "Значение" напротив "Слой" и выбираем слой "Надо сложить":
В столбце "Условие" выбрался автоматически знак "равно" - само за себя говорящие условие)
В значение же выбора слоя из предложенных было всего одно - "Надо сложить" - это благодаря тому, что мы выбрали всего 1 объект. Если бы выбрали несколько объектов в разных слоях, то таких бы вариантов было бы несколько.
Фильтр настроили.
Теперь важный момент - после первоначальной настройки фильтра повторный выбор объектов с помощьюи
уже не будет менять фильтр.
Так же активируется команда
- Указать на чертеже.
Попробуем её нажать.
Нас возвращает к модели и появляется возможность выбрать объекты. Выберем все элементы на нашем чертеже. Подтвердим выбор.
Получаем следующее окно:
Что произошло?
Мы выбрали все элементы на чертеже, но из-за настроек нашего фильтра в выборку попало лишь 5 отрезков - причём наш фильтр учтиво сообщает нам, то отрезков выбрали мы всего 7, но лишь 5 из них соответствуют нашему условию.
Теперь ещё интересней. Нажмём на
- Поиск в прямоугольнике. Выбираем так же все элементы на чертеже, только уже с помощью прямоугольника.
Видим ту же самую картину:
И теперь при нажатие на
у нас появляется возможность повторно выбрать область на чертеже.
Делаем вывод, что
отвечает за повторный выбор элементов ранее указанным способом.
Но в чём же отличие между
и
?
С помощью
- мы выбираем не объекты, а область чертежа, в котором будем искать объекты.
С помощью
- мы выбираем конкретные объекты, среди которых будем искать удовлетворяющие нашему фильтру объекты (простите за тавтологию :)) .
Когда удобнее что из этого использовать, узнаем дальше.
А теперь наконец-то жмём кнопку "ОК".
Получаем следующую картину:
Меню с галочками - это свойства объекта, которые будут доступны в отчёте.Вначале ставим галочку "Изменять свойства объектов из отчёт"
Далее жмём "Ни одного", чтобы снять выбор со всех свойств и выставляем галочку на свойстве "Длина (Length)", так как мы собираемся узнавать длину =)
Жмём "ОК" и вставляем полученную таблицу на чертёж. И сразу по двойному клику заходим в неё3. Работа с отчётом.
Строка "Шаблон отчёта" позволяет вводить формулы, которые будут применяться ко всем элементам отчёта.
Сейчас там у нас строка "=Object.Length", которую можно прочесть так - мы выводим свойства объекта "Object", которое называется "Length"
Т.е. для всех наших 5-ти отрезков мы получили по строчке от каждого, содержащего его длину.
СпойлерВозвращаясь назад к галочке напротив "Изменять свойства объектов из отчёт".
Если бы мы ей не поставили, то получили в ячейках выражение следующего вида:
=Iff(Exist(Object.Length);Object.Length;"")
Кто знаком с формулами, сразу поймёт суть этого выражения. Это выражение читается как "Если в нашем объекте существует параметр Length, то вывести его, иначе пустая строка".
Зачем нанокад создаёт такую сложную строку, вместо обычной =Object.Length? Как раз-таки чтобы мы не могли из таблицы изменить параметр "Length".
Дело вот в чём - некоторые параметры объектов, если в шаблоне они просто выведены не в формуле, можно изменять прямо из таблицы. Я в конце статьи ещё об этом скажу подробнее.
Если хотите узнать какому отрезку принадлежит то или иное значение, то отведите окно таблицы чуть в сторону, чтобы было видно наш чертёж и тыкните в интересующую вас ячейку:
Видим, что зелёным подсветился отрезок, которому соответствует выбранная ячейка отчёта
Если тыкнуть в зелёное поле шаблона отчёта, то подсветятся все элементы, которые участвуют в отчёте.
Хорошо, у нас есть отчёт, что с ним делать?
Нам надо узнать сумму всех отрезков. Самый простой способ - взять калькулятор и сложить то, что мы видим на экране.
А если отрезков много?
Жмём на надпись "Шаблон отчёта" ЛЕВОЙ кнопкой мыши и выбираем "Итог отчёта"Появляется соответствующая строка в конце нашего отчёта.
Правой кнопкой мыши жмём по ней и выбираем "Сумма"
Вуаля. Наши длины просуммировались.
4. Наглядная разница в выборах
и
Нажмём на кнопку
- выбрать исходные объекты. Откроется нам уже знакомый фильтр объектов.
Увидим вверху, что у нас сейчас выбран
- Поиск в прямоугольнике
Повторим наш выбор кнопкой
и выберем область аккурат по замкнутой полилинии в слое 0 на чертеже:
Жмём "ОК", закрываем таблицу
Теперь давайте скопируем один из отрезкой внутри нашей выбранной области
Теперь зайдём в нашу таблицу. В моей версии отчёт придётся обновить нажав на кнопку обновить вверху окошка, либо нажав на жёлтую лампочку
Увидим, что у в отчёте появился дополнительных объект - это копия нашего отрезка
Жмём
и теперь выбираем все объекты на чертеже с помощью
- Поиск в текущем наборе
Закрываем таблицу, копируем отрезок ещё раз:
При обновлении таблицы видим, что новых объектов не появилось
Возвращаемся к тому, что говорилось ранее:
С помощью
- мы выбираем не объекты, а область чертежа, в котором будем искать объекты.
С помощью
- мы выбираем конкретные объекты, среди которых будем искать удовлетворяющие нашему фильтру объекты (опять же, извините за тавтологию :)) .
Т.е. в первом случае мы выбрали область и работали с объектами в этой области - поэтому при копирование отрезка внутри указанной нами области он добавился в отчёт.
Во втором случае мы работали с заранее выбранными объектами, поэтому при добавление нового отрезка на чертёж он никак не учитывался, потому что не входил в изначальный набор
Плюсы и минусы обоих способов:
1.Плюс - при добавление объектов в указанную область отчёт обновляется
Минус - при копирование таблицы с помощью команды COPY, область не перемещается за таблицей, а остаётся на том же месте (хотя в каких-то случаях это и плюс):2.
Плюс - при копирование таблицы вместе с объектом отчёта, отчёт будет привязан к скопированному объекту:
Минус - при добавление новых объектов на чертёж они ни как не учитываются в нашем отчёте.
5. Работа с формулами.
Уже не плохой результат, верно?
Можно, казалось бы на этом и остановиться, но.
Предположим ситуацию, что нам надо сложить длины отрезков разных слоёв по-отдельности. Для каждого типа делать новую таблицу? Как вариант. Но, предположим, что таких типов будет 30?
Тут приходят на помощь формулы и группировка строк.Удалим фильтр наших объектов по слоям.
Жмём
и в строке "Слой" в значение выбираем "Сброс"
Теперь в наш отчёт включены все отрезки, не важно в каком они слое.
Добавим столбец (ПКМ по заглавию столбца А -> "Добавить столбец")Теперь в полученном столбце B жмём ПКМ в 1 строке (строка шаблона отчёта) и выбираем из предложенных вариантов Object.Layer(Слой)
Получаем информацию для каждого нашего отрезка по-мимо его длины ещё и слой в котором он находится.
Теперь заходим в "группировку и объединение"Добавляем правило "Группировать" и закидываем сюда из окошка справа столбец B
Видим, что наш отчёт преобразился.
Что произошло?
Наш отчёт сгруппировался по значениям в столбце B - это значит, что сгруппированные ячейки теперь в себе несут сразу все элементы по тому критерию, по которому мы их сгруппировали.
Проверим это, тыкнув на любую из ячеек, чтобы подсветить элементы на чертеже:СпойлерСейчас для тех, кто ни разу не пользовался группировкой и объединением советую поиграться с этим функционалом и попробовать самостоятельно (и при помощи справки на f1, конечно) разобраться, как им пользоваться
А теперь магия.
Жмём ПКМ по строке шаблона отчёта в столбце А и выбираем "Выражение"Нас перебрасывает в специальное окно, предназначенное для написания формул.
Что мы тут видим
1. Наше записанное выражение
2. Подсказки по существующим формулам и выражениям
3. Результат нашего выраженияРезультат записан несколькими значениями, потому что у наших элементов (отрезков) показатели длины разные.
Теперь самое сложное.
Вспомним, что мы сгруппировали строки по значениям в столбце B.
Т.е. по факту напротив столбца B в столбце А у нас не одно значение, а множество значений элементов, свойства слоя которых соответствуют значению в столбце B.СпойлерНанокад же нам показывает только одно значение в столбце А - это нормально, так устроена программа. В дальнейшем, при работе с объектами, чьи значения можно изменять через отчёт (атрибуты блоков, параметры маркеров и параметрических объектов и т.п.), при редактирование этого одного значения, заменяющего множество, мы тем самым редактируем данное значения для каждого объекта, скрытого в этой ячейке
Простыми словами на нашем примере - напротив значение слоя "Надо сложить" в столбце А у нас не одна длина отрезка, которую мы видим, а несколько.Поэтому, если мы запишем нашу формулу не просто как:
=Object.Length
а как:
=sum(Object.Length)
В ячейка напротив слоя мы получим значение сумм всех отрезком в данном слое
Как итог "итог отчёта" нам уже и не нужен.
Теперь просто наведём красоту и переведём единицы измерения отрезков в метры - разделив на 1000 и округлим до 2-го знака после запятой.
Для этого нашу формулу преобразуем в:=round(sum(Object.Length)/1000;2)
Для того, чтобы подробнее узнать как правильно писать ту или иную формулу и что они делают, открываем "Выражение" и смотрим подсказки:
6. Важное дополнение
С помощью отчётов и группировок в этих отчётов можно массово изменять свойства объектов
В моей версии продукта это не работает с отрезками, но не исключаю, что в новой уже можно.Это, к сожалению, не работает с примитивами платформы (отрезки, полилинии и т.п.) и нативными свойствами объектов (слой, цвет и т.п.).
Я в основном использую для изменения свойств параметрических объектов, а так же атрибутов блоков
К примеру - изменения номеров штампов по положения в прострастве чертежа:Так же знаю, что в новых версиях продукта были добавлены функции, которые позволяют автоматически изменять параметры объектов - одно из применений этих функций - это автоматическое обновления позиций объектов, при добавление новых элементов
Советую так же, после того, как овладеете отчётами, познакомиться с командами
SPTBLPREP - если ввести эту команду и выбрать таблицу, позволит повторно выбрать для этой таблицы объекты отчёта (не надо заходить в редактор таблицы)
SPREFSHOW - при выборе таблицы, простроит линии связей между строками отчёта и элементами
spDataExtraction - позволяет делать отчёт по элементам находящимся на другом чертеже.
А функции
SPTBLPLUSFRAME - привязать таблицу к формату
SPTBLMINUSFRAME - отвязать таблицу от формата
будут в принципе полезны при работе с таблицами. Угол привязки таблицы к формату указываются через свойство таблицы "Угол вставки".
На этом всё. Надеюсь смог познакомить вас с отчётами в таблицах. Таблицы нананокад, а особенно эти самые отчёты, - очень мощный инструмент, и при правильном пользование могут сэкономить вам кучу времени. На данный момент, я работаю с нанокадам в течение уже 6-ти лет, и использую таблицы повсеместно - от подсчёта кладки на чертеже, до автоматического заполнения ТЭПов и спецификаций элементов.
-
- 21
entries - 5
comments - 5558
views
Recent Entries
<Каталог>
<nanoCAD. Программирование и автоматизация>
Подготовил на Powershell скрипт синтаксического разбора LISP модулей с последующей генерацией диаграммы связности функций при помощи GraphViz.
Актуальная версия скрипта будет пока лежат здесь.
Сейчас скрипт в первом приближении.Я запускаю скрипт из под ISE, но, в принципе, работает и из командной строки.
Скрипт опробован на трех модулях:
bgtools_3.11a_Nc_21.lsp,
pltools_NC.lsp,StripMtext_v5-0c1_NC.lsp
При запуске скрипта предлагается выбрать LISP файл для анализа и отметить списки, которые необходимо по окончании работы экспортировать в Excel.
Результатом работы является текстовый файл в каталоге \dot.Для обработки текстового файла необходим комплект утилит GraphViz. Я экспериментировал с утилитами Dot, Circo и Twopi.
В каталоге \dot лежат командные файлы заточенные под мои каталоги. Их необходимо отредактировать.
Кроме этого, можно экспериментировать с:
опциями заполнения окончательного изображения диаграмм (строка опции в текстовом DOT файле)
ratio=fill|expand
с размером генерируемых изображений в дюймах (строка опции в текстовом DOT файле)
size=24|36|48
c опцией разрешения изображения для растров (опция в командном файле)
-Gdpi=0|100|200|300... с другими параметрами
Важно!
При обработке утилитами GraphViz почему то в режиме имен файлов по умолчанию "-O" нормально воспринимаются любые имена файлов, а при указании конкретных имен "-o" только имена файлов без пробелов.В результате получаем схему взаимосвязей вызовов функций вида:
bgtools_3.11a_Nc_21.lsp
pltools_NC.lsp
StripMtext_v5-0c1_NC.lsp
- 21
-
- 2
entries - 2
comments - 1882
views
Recent Entries
Latest Entry
Конкурс «Лучший в машиностроении»
У вас уже есть готовый проект, выполненный в nanoCAD Механика? Или вы готовы спроектировать 3D-модель или написать отзыв/обзор на программу? Мы ждем ваших конкурсных работ, ведь призы действительно серьезные. В конкурсе нет ограничений: участвовать могут как опытные специалисты, так и студенты.
Что вы можете выиграть?
Apple Watch, Apple AirPods, Яндекс.Станция мини, фирменные толстовки и футболки nanoCAD.*
Занявшие 1-е место в каждой номинации получат локальную годовую лицензию nanoCAD Plus с модулями nanoCAD Механика и «3D-моделирование и зависимости». Если победитель выступает от лица компании, то такой компании будут предоставлены специальные условия на приобретение лицензии на платформу nanoCAD Plus и указанные модули.
Как принять участие?
*C полными условиями конкурса можно ознакомиться на сайте nanocad.ru.
Когда подведем итоги? КОНКУРС ПРОДЛЕН
Конкурсные работы принимаются до 1 февраля 2021.
Победители во всех номинациях будут объявлены после 1 марта 2021. - 2
-
При подготовке задания на проектирование для смежных групп в проектной организации помимо словесной формулировки часто требуется приложить графическое изображение. Прикладывать файл с полным комплектом чертежей во многих случаях нецелесообразно. Разумно будет передать небольшой фрагмент графической информации.
Для подобных задач в nanoCAD Plus с модулем СПДС есть утилита Экспортировать в файл (SPEXPORTTOFILE). Она позволяет сохранить в файл выбранные объекты чертежа и оформить для них формат и основную надпись (штамп). Читайте дальше- Read more...
-
- 0 comments
-
- 2
entries - 5
comments - 1481
views
Recent Entries
Часто возникает вопрос со стороны пользователей: Почему из ARCHICAD не приходят помещения? И чаще всего архитекторы забывают отображать помещения в 3D модели при сохранении IFC. Ниже укрупненные шаги, как все-таки подготовить корректные IFC из ARCHICAD. Хотя в общем виде схема универсальна для любых других архитектурных BIM-систем. Итак...
Со стороны ARCHICAD процесс достаточно простой:
1. Замоделировать модель с проработкой помещений (помещения = Зоны, какие параметры задаются для помещений, такие и сохранятся потом в IFC).
2. Перейти в 3D пространство с отображением зон. Можно отображать поэтажно, можно всю модель - тут как удобнее вам. Если архитектор не знает как в 3D отобразить зоны, то это документация. Либо вот скриншот:
3. Сохранить как IFC из 3D окна. В простейшем случае сделать просто Файл\Сохранить как..., выбрать формат IFC и настроить два параметра - Сохранять то, что отображается в 3D + Сохранять через транслятор "Точный экспорт геометрии":
В более сложных случаях там можно десятки параметров настроить: полноту передачи информационных данных, формат IFC, папка сохранения. В идеале можно настроить так, что из ARCHICAD будет сохранять в один клик не только один IFC, а куча данных - DWG, Excel таблицы, PDF, IFC по этажам, BIMx модель и т.д. - функция называется Публикатор. Но тут точно надо читать документацию и думать, что хочешь получить - в рамках краткого ответа на форуме тут не описать все возможности.
- 2
-
- 0
entries - 0
comments - 47
views
No blog entries yet
- 0