Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 23 октября 2025 19:27

Написать 3 программы которые относятся к САПРУ

Ответ нейросети

23 октября 2025 19:27

Ниже приведены три простые программы на Python, которые демонстрируют задачи, встречающиеся в САПР (CAD): 2D черчение в SVG, 3D-моделирование в OBJ и формат DXF. Каждая программа автономна и не требует внешних библиотек.

  1. Программа для 2D черчения и экспорта в SVG
  • Что делает: строит полилинию по точкам и сохраняет в файл drawing.svg.
  • Подойдет для набросков 2D схем, планировок и т. п.
# drawing_svg.py
# Простая программа: создаёт SVG-документ из заданных точек.

def generate_svg(points, filename="drawing.svg", width=400, height=400, stroke="black"):
    # Простейшее масштабирование по минимальным и максимальным значениям точек
    minx = min(p[0] for p in points)
    maxx = max(p[0] for p in points)
    miny = min(p[1] for p in points)
    maxy = max(p[1] for p in points)
    pad = 10
    dx = maxx - minx if maxx != minx else 1.0
    dy = maxy - miny if maxy != miny else 1.0
    scale = min((width - 2*pad) / dx, (height - 2*pad) / dy)

    def to_screen(p):
        x = pad + (p[0] - minx) * scale
        y = height - (pad + (p[1] - miny) * scale)
        return x, y

    path = " ".join(f"{to_screen(p)[0]},{to_screen(p)[1]}" for p in points)

    svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">
  <polyline points="{path}" fill="none" stroke="{stroke}" stroke-width="2"/>
</svg>'''
    with open(filename, "w") as f:
        f.write(svg)

def main():
    # Пример: прямоугольник
    points = [(50, 50), (350, 50), (350, 200), (50, 200), (50, 50)]
    generate_svg(points, "drawing.svg")

if __name__ == "__main__":
    main()

Как запустить:

  • python3 drawing_svg.py
  • В текущей папке появится drawing.svg.
  1. Программа для простого 3D-моделя: экспорт куба в OBJ
  • Что делает: генерирует вершины куба и треугольные faces, сохраняет в cube.obj.
  • Подойдет для базового 3D-моделирования и проверки импорта в другие ПО (Blender, MESHMAGIC и т. п.).
# cube_obj.py
# Генерация простого куба и экспорт в OBJ

def write_cube_obj(side=1.0, filename="cube.obj"):
    s = side / 2.0  # полубоковая ширина
    verts = [
        (-s, -s, -s), ( s, -s, -s), ( s,  s, -s), (-s,  s, -s),  # задняя грань
        (-s, -s,  s), ( s, -s,  s), ( s,  s,  s), (-s,  s,  s),  # передняя грань
    ]
    faces = [
        (1, 2, 3), (1, 3, 4),  # задняя грань
        (5, 6, 7), (5, 7, 8),  # передняя грань
        (1, 2, 6), (1, 6, 5),  # нижняя грань
        (2, 3, 7), (2, 7, 6),  # правая грань
        (3, 4, 8), (3, 8, 7),  # верхняя грань
        (4, 1, 5), (4, 5, 8),  # левая грань
    ]

    with open(filename, "w") as f:
        for v in verts:
            f.write(f"v {v[0]} {v[1]} {v[2]}\n")
        f.write("s off\n")
        for a, b, c in faces:
            f.write(f"f {a} {b} {c}\n")

if __name__ == "__main__":
    write_cube_obj(2.0, "cube.obj")

Как запустить:

  • python3 cube_obj.py
  • В текущей папке появится cube.obj, которую можно открыть в любом 3D-редакторе.
  1. Проба DXF-генератора: минимальная запись LINE и CIRCLE
  • Что делает: создаёт минимальный DXF-файл с двумя примитивами: линией и окружностью.
  • Подойдет для демонстрации базового формата CAD-вида данного стандарта.
# dxf_writer.py
# Минимальный DXF-файл с примитивами LINE и CIRCLE

def write_dxf(filename="scene.dxf"):
    parts = []
    parts.append("0\nSECTION\n2\nHEADER\n0\nENDSEC\n")
    parts.append("0\nSECTION\n2\nENTITIES\n")

    # Линия: от (0,0,0) до (100,0,0)
    parts.append("0\nLINE\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n100.0\n21\n0.0\n31\n0.0\n")

    # Окружность: центр (200,200,0), радиус 50
    parts.append("0\nCIRCLE\n8\n0\n10\n200.0\n20\n200.0\n30\n0.0\n40\n50.0\n")

    parts.append("0\nENDSEC\n0\nEOF\n")

    with open(filename, "w") as f:
        f.write("".join(parts))

if __name__ == "__main__":
    write_dxf()

Как запустить:

  • python3 dxf_writer.py
  • В текущей папке появится scene.dxf, который можно открыть в CAD-программе и проверить примитивы.

Советы и варианты расширения

  • Язык: если нужен другой язык (C++, Java, C#) — скажите, могу переписать.
  • Расширение: можно сделать параметры через ввод пользователя, или чтение сцен из файлов (CSV/JSON).
  • Расширение 2D: можно добавить экспорт в формат DXF напрямую из SVG-дрыв, или добавить поддержку полилиний, кругов и дуг.
  • Расширение 3D: можно добавить сетку и нормали, сохранить в STL илиPLY, добавить плавную топологию.

Если нужно, могу адаптировать эти примеры под конкретный язык, IDE или требования вашего курса (например, добавить обработку ошибок, командную строку, тесты).

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Написать 3 программы которые относятся к САПРУ
Ниже приведены три простые программы на Python, которые демонстрируют задачи, встречающиеся в САПР (CAD): 2D черчение в SVG, 3D-моделирование в OBJ и формат DXF. Каждая программа автономна и не требует внешних библиотек. 1) Программа для 2D черчения и экспорта в SVG - Что делает: строит полилинию по точкам и сохраняет в файл drawing.svg. - Подойдет для набросков 2D схем, планировок и т. п. ```python # drawing_svg.py # Простая программа: создаёт SVG-документ из заданных точек. def generate_svg(points, filename="drawing.svg", width=400, height=400, stroke="black"): # Простейшее масштабирование по минимальным и максимальным значениям точек minx = min(p[0] for p in points) maxx = max(p[0] for p in points) miny = min(p[1] for p in points) maxy = max(p[1] for p in points) pad = 10 dx = maxx - minx if maxx != minx else 1.0 dy = maxy - miny if maxy != miny else 1.0 scale = min((width - 2*pad) / dx, (height - 2*pad) / dy) def to_screen(p): x = pad + (p[0] - minx) * scale y = height - (pad + (p[1] - miny) * scale) return x, y path = " ".join(f"{to_screen(p)[0]},{to_screen(p)[1]}" for p in points) svg = f''' ''' with open(filename, "w") as f: f.write(svg) def main(): # Пример: прямоугольник points = [(50, 50), (350, 50), (350, 200), (50, 200), (50, 50)] generate_svg(points, "drawing.svg") if __name__ == "__main__": main() ``` Как запустить: - python3 drawing_svg.py - В текущей папке появится drawing.svg. 2) Программа для простого 3D-моделя: экспорт куба в OBJ - Что делает: генерирует вершины куба и треугольные faces, сохраняет в cube.obj. - Подойдет для базового 3D-моделирования и проверки импорта в другие ПО (Blender, MESHMAGIC и т. п.). ```python # cube_obj.py # Генерация простого куба и экспорт в OBJ def write_cube_obj(side=1.0, filename="cube.obj"): s = side / 2.0 # полубоковая ширина verts = [ (-s, -s, -s), ( s, -s, -s), ( s, s, -s), (-s, s, -s), # задняя грань (-s, -s, s), ( s, -s, s), ( s, s, s), (-s, s, s), # передняя грань ] faces = [ (1, 2, 3), (1, 3, 4), # задняя грань (5, 6, 7), (5, 7, 8), # передняя грань (1, 2, 6), (1, 6, 5), # нижняя грань (2, 3, 7), (2, 7, 6), # правая грань (3, 4, 8), (3, 8, 7), # верхняя грань (4, 1, 5), (4, 5, 8), # левая грань ] with open(filename, "w") as f: for v in verts: f.write(f"v {v[0]} {v[1]} {v[2]}\n") f.write("s off\n") for a, b, c in faces: f.write(f"f {a} {b} {c}\n") if __name__ == "__main__": write_cube_obj(2.0, "cube.obj") ``` Как запустить: - python3 cube_obj.py - В текущей папке появится cube.obj, которую можно открыть в любом 3D-редакторе. 3) Проба DXF-генератора: минимальная запись LINE и CIRCLE - Что делает: создаёт минимальный DXF-файл с двумя примитивами: линией и окружностью. - Подойдет для демонстрации базового формата CAD-вида данного стандарта. ```python # dxf_writer.py # Минимальный DXF-файл с примитивами LINE и CIRCLE def write_dxf(filename="scene.dxf"): parts = [] parts.append("0\nSECTION\n2\nHEADER\n0\nENDSEC\n") parts.append("0\nSECTION\n2\nENTITIES\n") # Линия: от (0,0,0) до (100,0,0) parts.append("0\nLINE\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n100.0\n21\n0.0\n31\n0.0\n") # Окружность: центр (200,200,0), радиус 50 parts.append("0\nCIRCLE\n8\n0\n10\n200.0\n20\n200.0\n30\n0.0\n40\n50.0\n") parts.append("0\nENDSEC\n0\nEOF\n") with open(filename, "w") as f: f.write("".join(parts)) if __name__ == "__main__": write_dxf() ``` Как запустить: - python3 dxf_writer.py - В текущей папке появится scene.dxf, который можно открыть в CAD-программе и проверить примитивы. Советы и варианты расширения - Язык: если нужен другой язык (C++, Java, C#) — скажите, могу переписать. - Расширение: можно сделать параметры через ввод пользователя, или чтение сцен из файлов (CSV/JSON). - Расширение 2D: можно добавить экспорт в формат DXF напрямую из SVG-дрыв, или добавить поддержку полилиний, кругов и дуг. - Расширение 3D: можно добавить сетку и нормали, сохранить в STL илиPLY, добавить плавную топологию. Если нужно, могу адаптировать эти примеры под конкретный язык, IDE или требования вашего курса (например, добавить обработку ошибок, командную строку, тесты).