"""Клей нанесён на ступеньку. Вторая секция совмещается с перекрытием. Тонкий отдельный объём показывает клеевой слой. Отверждение и адгезия не рассчитываются.""" import FreeCAD # noqa: F401 (initialize the CAD runtime first) # isort: split import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from common import Piece, Pose, box, join, main, params, require MODEL_ID = "glue-lap" DEFAULTS = {"length": 50, "width": 26, "thickness": 6, "overlap": 20, "glue_gap": 0.2} NOTE = "Клей нанесён на ступеньку. Вторая секция совмещается с перекрытием. Тонкий отдельный объём показывает клеевой слой. Отверждение и адгезия не рассчитываются." MODE = "bonding" def make_parts(supplied=None): p = params(DEFAULTS, supplied) l, w, h, o, g = [ p[k] for k in ("length", "width", "thickness", "overlap", "glue_gap") ] require(l > o + 10 and h > 2 and g < h / 4, "Overlap must fit inside the joint") left = join(box(-l / 2, -w / 2, 0, l / 2, w, h), box(0, -w / 2, 0, o, w, h / 2)) right = join(box(0, -w / 2, h / 2 + g, o, w, h / 2), box(o, -w / 2, g, l / 2, w, h)) glue = box(0, -w / 2, h / 2, o, w, g) return [ Piece("left", "Первая секция со ступенькой", left), Piece( "right", "Вторая секция", right, lambda t: Pose(offset=(18 * (1 - t), 0, 15 * (1 - t))), ), Piece("adhesive", "Клеевой слой", glue, role="process"), ] if __name__ == "__main__": main(make_parts, DEFAULTS, MODEL_ID, __file__, NOTE, MODE)