Найти в Дзене

Оставит первый уровень структуры и разрушит все внутренности блоков первого уровня, а также схемы крепежа

В ответ на пост 🔤🔤🔤🔤🔤🔤 Оставит первый уровень структуры и разрушит все внутренности блоков первого уровня, а также схемы крепежа. Доработка включает в себя удаление плоских объектов, содержимое сборок, размеров. Также включен обход первого уровня. Это мой крик души (на скриншоте результат работы скрипта) Всем приятной работы❤️ let t = [] if (Model.SelectionCount > 0) { for (let i = 0; i < Model.SelectionCount; i++) { forEach(Model.Selections[i], Model.Selections[i]) } } else { for (let i = 0; i < Model.Count; i++) { forEach(Model[i], Model[i]) } } if (t.length && confirm(`Объектов к удалению: ${t.length}шт\nПродолжить?`)) { StartEditing(Model) for (let i = t.length; i > 0; i--) { DeleteObject(t[i - 1]) } Model.Build(); Action.Commit(); confirm("Очистить историю?") && Undo.New(); } Action.Finish() function forEach(o, p) { if (o.List) { for (let i = o.Count; i > 0; i--) { let l = o[i - 1] if (l instanceof TFurnBlock) { t.includes(l) ? true : t.push(l); forEach(l, p) } else

В ответ на пост

🔤🔤🔤🔤🔤🔤

Оставит первый уровень структуры и разрушит все внутренности блоков первого уровня, а также схемы крепежа.

Доработка включает в себя удаление плоских объектов, содержимое сборок, размеров. Также включен обход первого уровня.

Это мой крик души

(на скриншоте результат работы скрипта)

Всем приятной работы❤️

let t = []

if (Model.SelectionCount > 0) {

for (let i = 0; i < Model.SelectionCount; i++) { forEach(Model.Selections[i], Model.Selections[i]) }

} else { for (let i = 0; i < Model.Count; i++) { forEach(Model[i], Model[i]) } }

if (t.length && confirm(`Объектов к удалению: ${t.length}шт\nПродолжить?`)) {

StartEditing(Model)

for (let i = t.length; i > 0; i--) { DeleteObject(t[i - 1]) }

Model.Build(); Action.Commit();

confirm("Очистить историю?") && Undo.New();

}

Action.Finish()

function forEach(o, p) {

if (o.List) {

for (let i = o.Count; i > 0; i--) {

let l = o[i - 1]

if (l instanceof TFurnBlock) { t.includes(l) ? true : t.push(l); forEach(l, p) }

else if (l instanceof TFurnAsm) { l.forEach(_ => { t.includes(_) ? true : ((_.Holes != undefined && _.Holes.Count == 0) || _.Holes == undefined) ? t.push(_) : false }; moveTo(l, p)) }

else if (l instanceof TModelLimits || check(l)) {t.includes(l) ? true : t.push(l) }

else moveTo(l, p)

}

} else {

if (check(o)) { t.includes(o) ? true : t.push(o) }

}

}

function check(_) { return (_ instanceof TSize3D || _ instanceof TPlane3DObject) }

function moveTo(m, e) { m.ReTransform(m.Owner, e); m.Owner = e }