Назначение шаблона
Этот материал даёт готовый prompt, чтобы параметрический скрипт FreeCAD. Он специально построен для инженерного review: модель обязана сохранить исходные данные, показать допущения и назвать то, что она не смогла подтвердить.
Что подготовить
| Поле | Требование |
|---|---|
| CAD/формат и версия | Фактическое значение/описание; для числа — единица; для документа — версия и источник. |
| файл/фрагмент или параметры | Фактическое значение/описание; для числа — единица; для документа — версия и источник. |
| единицы и система координат | Фактическое значение/описание; для числа — единица; для документа — версия и источник. |
| что можно изменять | Фактическое значение/описание; для числа — единица; для документа — версия и источник. |
| контрольные размеры/признаки | Фактическое значение/описание; для числа — единица; для документа — версия и источник. |
Таблицу можно прокручивать по горизонтали →
Готовый промпт
Ты — CAD/чертёжный инженер и reviewer автоматизации.
ЗАДАЧА
Параметрический скрипт FreeCAD.
РАБОЧИЙ СЦЕНАРИЙ
Для FreeCAD создайте параметрический объект и в конце измерьте контрольные размеры через API.
ИСХОДНЫЕ ДАННЫЕ
- CAD/формат и версия: [ЗАПОЛНИТЬ / НЕТ ДАННЫХ]
- файл/фрагмент или параметры: [ЗАПОЛНИТЬ / НЕТ ДАННЫХ]
- единицы и система координат: [ЗАПОЛНИТЬ / НЕТ ДАННЫХ]
- что можно изменять: [ЗАПОЛНИТЬ / НЕТ ДАННЫХ]
- контрольные размеры/признаки: [ЗАПОЛНИТЬ / НЕТ ДАННЫХ]
ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА
1. Не придумывай отсутствующие числа, размеры, свойства, стандарты, ссылки, паспортные параметры или результаты испытаний.
2. Не меняй значения и единицы молча. Любое преобразование покажи отдельно.
3. Разделяй ФАКТ ИЗ ВХОДА / ИЗВЛЕЧЁННЫЙ ФАКТ / ВЫЧИСЛЕНИЕ / ИНТЕРПРЕТАЦИЮ / ДОПУЩЕНИЕ.
4. Если критического входа или доказательства нет, верни вопрос или статус «требует проверки», а не правдоподобную подстановку.
5. Не выдавай интерпретацию изображения за нативную CAD-геометрию; любые изменения проверяются измерениями/constraints в CAD.
СПЕЦИФИЧЕСКАЯ ПРОЦЕДУРА
Для FreeCAD раздели Document/Object creation, Sketcher constraints и recompute. Параметры вынеси в начало и не привязывайся к случайным внутренним именам без необходимости.
ТРЕБУЕМЫЙ РЕЗУЛЬТАТ
Параметрический Python-скрипт; feature tree; constraints; recompute/save policy; контрольная проверка геометрии.
ACCEPTANCE
- не считать пиксельную координату точным CAD-размером
- перечислить объекты/constraints, которые модель только предполагает
- скрипт выполнять на копии и вернуть измерения контрольных размеров
- не удалять/перестраивать исходную геометрию вне согласованного scope
ФИНАЛЬНЫЙ SELF-CHECK
- перечисли все новые числа/утверждения, появившиеся не напрямую из входа;
- укажи, чем инженер должен независимо проверить критический результат;
- перечисли незакрытые вопросы;
- не выполняй write/deploy/publish и другие необратимые действия без явного разрешения.
STOP CONDITION
Если без отсутствующего критического параметра, первичного источника или разрешения корректный вывод невозможен — остановись и запроси это явно.Почему он работает лучше короткой команды
Короткая команда обычно оставляет модели слишком много свободы: неизвестно, какие данные считать истинными, можно ли придумывать пропуски и в каком виде вернуть результат. Здесь контракт задан заранее. Это не гарантирует правильность ответа, но делает ошибку наблюдаемой: видно, какое поле использовано, где возникло допущение и какой шаг должен проверить человек.
Self-check остаётся проверкой внутри той же генеративной системы, поэтому он полезен только как фильтр очевидных несогласованностей. Независимое подтверждение выполняется профильным средством: расчётным модулем, первичным стандартом, CAD/CAE, измерением, unit-test или контрольным экспериментом.
Адаптация под облачную и локальную модель
- В ChatGPT/GPT, Gemini или Claude передавайте только релевантный контекст и фиксируйте используемый режим/tools.
- Через API задайте JSON-schema или другой строгий output contract и машинную валидацию.
- Для локальной LLM через Ollama/другой runtime сохраните тот же контракт, но проверяйте качество на собственном eval-наборе.
- Если есть web/RAG/коннекторы, явно ограничьте допустимые источники и права на запись.
- После смены модели, тарифа или системной инструкции повторите эталонные тесты.
Разбор рабочего примера
Промпт: Параметрический скрипт FreeCAD. Рабочий вариант применения: Для FreeCAD создайте параметрический объект и в конце измерьте контрольные размеры через API.
Перед первым запуском заполните placeholders реальными значениями и сохраните исходный prompt как версию. После ответа сравните его с acceptance-критериями статьи: любое новое число, ссылка или действие без происхождения переводится в open question. Для регулярного использования добавьте этот пример в eval-набор и прогоняйте после смены модели, тарифа, runtime или системной инструкции.
Критерии acceptance для этой задачи
Для CAD/чертежей разделяйте интерпретацию изображения и операции над нативной геометрией. Просите модель сформировать список объектов/ограничений и проверяемый скрипт, а размеры и связи подтверждайте средствами CAD. Запуск — на копии документа с измерениями до/после.
- не считать пиксельную координату точным CAD-размером
- перечислить объекты/constraints, которые модель только предполагает
- скрипт выполнять на копии и вернуть измерения контрольных размеров
- не удалять/перестраивать исходную геометрию вне согласованного scope
Короткий скрипт и проверка геометрии
Ниже — пример для Python-консоли или макроса внутри FreeCAD. Он создаёт отдельный документ и сравнивает объём полученной геометрии с произведением заданных размеров. Параметры объекта можно менять и затем повторять recompute и проверку. Объём Shape.Volume выражается в мм³; перевод в см³ требует деления на 1000, а не на 10.
import FreeCAD as App
length_mm, width_mm, height_mm = 10.0, 10.0, 10.0
if min(length_mm, width_mm, height_mm) <= 0:
raise ValueError("Dimensions must be positive")
doc = App.newDocument("ParameterCheckBox")
box = doc.addObject("Part::Box", "CheckBox")
box.Length = length_mm
box.Width = width_mm
box.Height = height_mm
doc.recompute()
expected_mm3 = length_mm * width_mm * height_mm
measured_mm3 = box.Shape.Volume
if abs(measured_mm3 - expected_mm3) > 1e-6:
raise RuntimeError("Volume check failed")
print("Volume: %.3f mm^3 = %.3f cm^3" %
(measured_mm3, measured_mm3 / 1000.0))
# No save: inspect the new document and save separately if approved.
Ожидаемая строка для исходных параметров: Volume: 1000.000 mm^3 = 1.000 cm^3. Это расчётное ожидание, а не протокол выполненного запуска FreeCAD. Перед использованием выполните пример в своей версии FreeCAD и проверьте дерево объекта, его размеры и объём. Проверка объёма полезна для этого прямоугольного примитива, но сама по себе не доказывает корректность произвольной сложной детали.
Контрольный прогон именно для этой задачи
Проверка чертежа и CAD. В этой группе всегда разделяйте визуальное понимание и нативную геометрию. Растровое изображение используется для гипотез и review, а размеры, constraints, feature tree и результат скрипта подтверждаются внутри CAD либо по исходному векторному документу.
Для «Промпт: Параметрический скрипт FreeCAD» соберите небольшой fixture, где явно присутствуют CAD/формат и версия, файл/фрагмент или параметры, единицы и система координат и что можно изменять. Сохраните этот набор без изменений: он нужен как эталон для повторного запуска после смены модели, режима, тарифа, system prompt или подключённых tools.
Фиксируйте результат прогона как PASS/FAIL по каждому тесту и сохраняйте причину исправления. Это превращает prompt из одноразового текста в проверяемую инженерную процедуру: последующее обновление модели можно оценить на тех же входах, а не по субъективному впечатлению от нового ответа.
Как запускать шаблон
Сначала заполните все поля, которые реально известны, и не удаляйте placeholder у неизвестного критического параметра — лучше явно написать «нет данных». Первый запуск используйте как draft. Затем сравните ответ с acceptance-критериями выше и верните модели только конкретные замечания, а не просьбу «улучшить всё». Для регулярной задачи сохраните prompt, входной fixture и ожидаемые свойства результата в системе версий. После смены модели/режима повторите минимум три кейса: нормальный, граничный и с отсутствующим критическим входом.
Проверка результата
Когда ответ нужно остановить
- появились новые исходные числа без источника;
- ссылка или стандарт не открывается/не относится к задаче;
- вывод зависит от отсутствующего параметра;
- модель пытается выполнить write/deploy/publish без разрешения;
- нет способа восстановить, какие входы дали итог.
Навигация по 10 промптам этой части
Внутри части — 10 взаимосвязанных материалов. Переходы между частями и перекрёстные ссылки сохраняют учебную последовательность.
Источники и документация
- OpenAI — Prompt engineering
- Google AI — Prompt design strategies
- Anthropic — Prompt engineering
- NIST — AI Risk Management Framework
- FreeCAD — Python scripting tutorial (официальный архив документации)
- FreeCAD — Expressions: свойства объекта и единицы объёма (официальный архив документации)
