+9

Нарезать солид по заданному объему

Илья (Moderator (RUS)) 8 months ago in Micromine / Scripting 0

Добрый день!

В нашем чате Майкромайн в телеграмме( https://t.me/microminechat ) был вопрос:

Как разделить каркас на равные части по объему. При этом задать угол плоскости, по которой буду резать каркас? 

Стандартным функционалом автоматически данную задачу не решить, поэтому был написан скрипт, которым я хочу с вами поделиться. Инструкция как запустить скрипт и сам скрипт в архиве. Если будут вопросы, пожелания по даработке, пишите.

Разделение каркаса по объемам.rar

Скрипт использует следующий подход:

1. Указанный каркас разбивается на более мелкие срезы, мощность которых мы задаем в предела от 0.1м до 10м. 

Для определения направления плоскости можно использовать Ортогональные плоскости (План, На север , на Запад) или можно задать Азимут падения и Угол падения плоскости, а также координату точки отсчета для Неортогональных плоскостей.

Image 3902

Image 3901

2. Далее последовательно складываются объемы срезов пока не будет достигнут заданный целевой объем. Как только целевой объем достигнут, срезам приваривается уникальный номер в атрибут Code, и для последующих срезов расчет накопленного объемов начинается с начала и так последовательно по всем срезам.

Данный алгоритм не позволяет идеально нарезать каркасы на заданный объем, но чем меньше срез, тем ближе к целевому значению, но увеличивается время работы скрипта.

Также сделана обратная проверка, для максимального приближения к целевому значению. Например, сложив первые три среза мы получаем объем 999 при целевом 1000, так как 999<1000 необходимо добавить еще срез, но при добавлении получаем объем 1100. Логичнее будет оставить 999, так как он ближе к целевому значению.

Каркасы срезов  сохраняются во временный файл slice.tridb в паке Разделение каркаса по объемам.


3. Третьим шагом каркасы объединяются по присвоенному коду и загружаются в визекс с чередующей раскраской.

Image 3903


Надеюсь эта информация вам будет полезна.

C Уважением,

Илья