Ящики для хранения резисторов 10 мм x 15 мм x 70 мм

Источник:

Я разработал свою собственную коробку, потому что не смог найти то, что искал:

Для серии E12 должно быть 12 столбцов.

Ящики должны быть как можно меньше, не хочу занимать много места.

Резисторы должны подходить по всей длине и иметь глубину не менее 65 мм.

Печать и сборка — утомительный процесс, поскольку каждый ящик состоит из трех частей, поэтому требовалась плоская печать, но конечный результат очень удовлетворил, я точно знаю, где найти резистор, который мне нужен.

В папке с макетами пластин вы найдете параметры двухцветной печати, уже настроенные для Bambu Studio и Orca Slicer.

Я ненавижу повторяющиеся шаги, поэтому плитки генерируются с помощью скрипта Python в fusion 360 из списка значений в файле csv. Он генерирует все 97 фасадов ящиков с различными значениями резисторов за 2 минуты. Выбор цвета на рабочей пластине затем выполняется вручную. Это немного утомительно, но вполне осуществимо. См. наборы деревьев, созданные в папке макетов пластин.

Сценарий Python находится в папке сценариев. Если вам нужна помощь в настройке, я напишу это в вики, пожалуйста, свяжитесь с вами.

импорт adsk.core,adsk.fusion,adsk.cam, обратная трассировка
импортировать CSV, ОС

# — КОНФИГ —
CSV_PATH = r«C:\Users\Jattie\Documents\E12_series.csv»
TEXT_PARAMETER = «имя_значения_резистора»
EXPORT_FOLDER = r«C:\Users\Jattie\Documents\print»
USE_PARAMETER = Истина
EXPORT_FORMAT = «шаг» # «шаг» или «3мф»
SKETCH_NAME = «Текстовый эскиз»
TEXT_NAME = «Основной текст»
# — ЗАВЕРШИТЬ КОНФИГ ---

защита запуска (контекст):
пользовательский интерфейс = Нет
попробуйте:
приложение = adsk.core.Application.get()
ui = app.userInterface
дизайн = приложение.активныйпродукт

если нет os.path.exists(EXPORT_FOLDER):
os.madeirs(EXPORT_FOLDER)

с open(CSV_PATH, newline='',coding='utf-8-sig') в виде CSV-файла:
читатель = csv.DictReader(csvfile)
строки = список (читатель)

для строки в строках:
нормализованный = {k.strip().lower().lstrip('\ufeff'): v для k, v в row.items()}
значение = нормализованное[«метка»]

Safe_value = value.strip().replace("'", "").replace('\n', '').replace('\r', '')

если USE_PARAMETER:
параметр = design.userParameters.itemByName(TEXT_PARAMETER)
если не параметр:
поднять RuntimeError(f«Параметр '{TEXT_PARAMETER}' не найден.»)
param.expression = "'" + безопасное_значение + "'"
еще:
эскиз = design.rootComponent.sketches.itemByName(SKETCH_NAME)
text_obj = эскиз.sketchTexts.itemByName(ИМЯ_ТЕКСТА)
text_obj.text = безопасное_значение

adsk.doEvents()
design.computeAll()

экспортMgr = design.exportManager
filename_step = os.path.join(EXPORT_FOLDER, f"{safe_value}.step")
filename_3mf = os.path.join(EXPORT_FOLDER, f"{safe_value}.3mf")

если EXPORT_FORMAT.lower() == «шаг»:
options = ExportMgr.createSTEPExportOptions(имя_файла_шаг)
elif EXPORT_FORMAT.lower() == «3mf»:
# 3MF нужен объект (корневой компонент) + имя файла
root_comp = design.rootComponent
options = ExportMgr.createC3MFExportOptions(root_comp, filename_3mf)
еще:
поднять RuntimeError(«EXPORT_FORMAT должен быть „step“ или „3mf“.»)

ExportMgr.execute (параметры)

ui.messageBox(«Пакетный экспорт завершен.»)

кроме:
если интерфейс:
ui.messageBox(«Ошибка:\n{}».format(traceback.format_exc()))

CSV-файл:
этикетка
1Р
1R2
1R5
1R8
2R2
2R7
3R3
3R9
4R7
5R6
6Р8
8R2
10р
12Р
15Р
18Р
22Р
27Р
33Р
39Р
47Р
56Р
68Р
82Р
100р
120р
150р
180р
220р
270р
330р
390р
470р
560р
680р
820р
1К
1К2
1К5
1К8
2К2
2К7
3К3
3К9
4К7
5К6
6К8
8К2
10 тыс.
12К
15 тыс.
18К
22К
27К
33 тыс.
39 тыс.
47К
56К
68К
82К
100 тыс.
120 тыс.
150 тыс.
180 тыс.
220 тыс.
270 тыс.
33

18:11
0
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.