Предварительный набросок программы для расчета стоимости печати

AndyBig
Идет загрузка
Загрузка
03.12.2019
762
61
печатает на Anet A8
Разное

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

5

Тут у меня уже слегка оформилась часть программы, отвечающая за сам расчет стоимости заказа. О начале этой программы можно почитать тут - https://3dtoday.ru/blogs/andybig/predlozheniya-po-programme-dlya-ucheta-kommercheskoy-3d-pechati

Коротко о принципе составления задания для расчета.

Расчет строится из трех основных разделов:

1. Оборудование. Это принтеры, сушилки, фены - все, что Вы сочтете нужным включить в стоимость заказа. Для каждого оборудования указываются: мощность, стоимость электроэнергии, стоимость амортизации (и единица измерения), количество (часов, минут, включений... что указано в единице измерения), стоимость подготовки, минимальная стоимость работы.

2. Материалы. Это пластик, фотополимер, ацетон, перчатки, чашки выпитого за время печати кофе - все, что угодно. Для каждого материала указываются: количество, единица измерения, цена.

3. Дополнительные расходы. Сюда включаются различные работы (например, постобработка модели после печати) или что-то еще, что нельзя отнести к оборудованию и материалам. Для каждого расхода указываются: количество, единица измерения, цена. В принципе, это то же самое, что и материалы, просто логически вынесено в отдельную категорию.

В каждом разделе может быть сколько угодно пунктов. Например, в оборудовании - принтер, сушилка пластика, ацетоновая баня, в материалах - три вида пластика, ацетон, перчатки, в доп. расходах - подготовка модели к печати, удаление поддержек, обработка поверхности модели.

Для каждого пункта можно указать повышающий коэффициент (в процентах). Такой же коэффициент можно указать для каждого раздела в целом и для всего задания. То есть в справочниках можно указывать цифры себестоимости, а коэффициентами в расчете устанавливать свою наценку.

Во все разделы пункты добавляются из справочников, которые Вы сами наполняете тем, что Вам нужно.

Ссылка на программу под .NET Framework 4.5 (для Windows 10) - http://andybig.xyz/download/my3df/my3df_NET_4_5.zip

Ссылка на программу под .NET Framework 3.5 (для Windows младше 10, протестировано на 7 и XP SP3) - http://andybig.xyz/download/my3df/my3df_NET_3_5.zip

Распаковать архив, запустить исполняемый файл. При первом запуске нужно будет указать файл базы данных (меню Главное -> Открыть базу данных). Файл БД находится в каталоге Data. При последующих запусках программа будет автоматически открывать последнюю использованную базу.

На данный момент в программе работают только справочники и расчет задания, больше ничего пока не реализовано. И мне хотелось бы узнать мнение о реализации расчета, чтобы можно было учесть пожелания и замечания пока структура базы данных еще не слишком сложная и не переплетена внутри различными взаимосвязями :)

Буду рад отзывам :)

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

5
Комментарии к статье

Комментарии

03.12.2019 в 12:34
1

При запуске открывается пустое окно My 3D-factory. 

Хотя я уже пробовал заполнить базу.

Так и должно быть?

03.12.2019 в 12:39
2

Да, главное окно пусто. Работают только справочники и добавление нового задания из меню. Если пункты меню "Действия" и "Справочники" неактивны - значит не открыта база (внизу в статусе будет написано "База данных: Не подключена"), нужно открыть ее - меню "Главное -> Открыть базу данных" - и указать файл 3dprint.m3data в каталоге Data (там, куда программа была распакована).

В главном окне в дальнейшем предполагается таблица с историей заданий :)

03.12.2019 в 12:46
1

В главном окне в дальнейшем предполагается таблица с историей заданий :)

Да, я именно про это и спросил.

Просто непривычно, главное окно и оно пустое.

А так всё работает. Сейчас более детально посмотрю.

Спасибо.

03.12.2019 в 12:48
2

Просто еще ничего не сделано кроме справочников и механизма расчета. Перед тем как закапываться в остальное я хочу услышать мнения по поводу самого расчета, может быть на их основе что-то изменить. Потому что когда будут добавлены другие фичи, изменить что-то в сделанном станет сложнее :)

03.12.2019 в 12:51
3

Сейчас мне сказали, что программа работает и в Линуксе под Моно :) Или в Линуксе с Моно... Как-то так, сам я в линуксах полный ноль :)

03.12.2019 в 13:16
1

> мне сказали, что программа работает и в Линуксе под Моно

Предлагаю для статистики собирать название (версию) линукса и версию mono.

Попробую завтра дома это проверить. Главное чтобы mono подошло и не пришлось ничего переконпелять.

03.12.2019 в 13:28
2

Вариант программы - под .NET Framework 4.5, версия mono - 4.5

По поводу операционки вот ответ:

дебиан
unstable, наверное
я думаю, на любой современной заведется
нужен wine32 только

Я даже не знаю - Моно ставится под Вайн или отдельно от него :)

03.12.2019 в 13:37
2

Вариант программы - под .NET Framework 4.5, версия mono - 4.5, дебиан

Спасибо.

Я даже не знаю - Моно ставится под Вайн или отдельно от него :)

Моно ставится как само по себе, так и как надстройка в вайн вместо вколачивания в вайн фреймворка.

В современном мире первый вариант считается предпочтительнее. Третий вариант тоже имеет место быть, если вайн меньше 1.9.

03.12.2019 в 13:40
1

Понял, спасибо. Но само по себе моно без вайна - бесполезно? Или его одного достаточно для запуска приложений под NET Core?

03.12.2019 в 13:49
2

Если мы сапускаем приложение написанное при помощи .Net, то вайн не обязателен. Достаточно только mono. В контекстном меню исполняемого файла программы появится пункт «Открыть в mono», также как и пункт «Открыть в wine» (при наличии вайна).

Зачем помимо mono тянуть 300 МБ вайна и ещё и вайновские биндинги к mono, если будет работать просто в mono.

ЗЫ: А может и сегодня вечером у друзей загружусь в Mint 19.2 LiveCD и потыкаю.

03.12.2019 в 14:04
1

Вероятно, Вайн будет необходим если в приложении есть обращения к Windows API - функциям...

Спасибо за информацию :)

03.12.2019 в 15:09
1

можно в докер упаковать с окружением, будет работать везде.

Потыкал тестовый проект, кнопка Сохранить не отрабатывает, это нормально?)

03.12.2019 в 15:10
2

кнопка Сохранить не отрабатывает, это нормально?)

Да, это нормально. Эта кнопка должна сохранять составленное задание в историю, но сама история заданий пока еще не реализована :)

03.12.2019 в 16:52
1

Докер зло и ненужный оверхэд по ЦПУ и месту на дисках.

03.12.2019 в 15:13
0

надо сделать окно фиксированного размера, а то не красиво сжимается))


03.12.2019 в 15:22
0

Вы имеете в виду окно нового задания? Оно и было фиксированным, но я недавно переделал его :)

03.12.2019 в 15:16
0

ну раз доллар через $ то и рубли надо как ₽

Ну и раз пустой экран главный, добавьте в центр кнопки создать новый, редактировать и тд

03.12.2019 в 15:23
1

Ну это Вы сами можете задать в справочнике валют :) Там и настраиваются и полные названия, и краткие обозначения :)

Главный экран пустой только временно. В дальнейшем на нем будет своя информация :)

07.12.2019 в 10:02
0

Вы действительно думаете пользователи буду это настраивать? Это можно при первом включении спросить на выбор "вам кг или фунты баксы или рубли" и записать ответ в систем.кофиг или как там называется класс конфигурации приложения в системе, который в %user%\appdata записывает уже не помню, надо смотреть)) вообще должно быть максимум из коробки и минимум необходимых настроек, люди не любят выбирать)) 

07.12.2019 в 14:01
0

Это можно при первом включении спросить на выбор "вам кг или фунты баксы или рубли" и записать ответ в систем.кофиг

Там может быть востребовано сильно больше единиц, чем кг и рубли. Штуки, пары, миллилитры, метры, попугаи... Речь ведь идет не только о пластике для печати, в материалах могут участвовать и краски, перчатки, тара, химия - все что угодно. Разнообразие технологических процессов подготовки, печати и постобработки моделей очень велико :)

Я, конечно, забью изначально в справочники несколько пунктов, но только просто для примера. Например, если взять даже только материалы для печати (пластики, фотополимеры, порошки и т.д.) - их же многие сотни, но каждый пользователь использует только несколько. Ну, два-три десятка максимум. И зачем ему справочник, полный ненужных пунктов? :)

07.12.2019 в 17:39
0

Ну я вообще говорил про систему исчисления, метрика или английская система))

07.12.2019 в 17:54
0

А-а... Ну это уже просто условность, какие названия пользователь забьет - в тех и будет исчисляться :)

03.12.2019 в 15:24
0

Вообще конечно лучше не в классе формы всю логику делать, а выкинуть ее в отдельный класс, так потом можно все к WPF сделать, ну и вообще так более правильно

03.12.2019 в 15:43
0

Все равно очень много логики останется привязанной к окнам, точнее к компонентам отображения информации. 

03.12.2019 в 15:58
0

ну обмен информации да, будет привязан к интерфейсу, но работу с бд и классами можно вынести) ну это уже элементы внутренние, если все так и будет на винформе, то наверно нет особо смысла что-то переделывать)

03.12.2019 в 17:03
0

Да там работы с БД с гулькин нос... Все инкапсулировано в библиотеки SQLite, знай только вызывай методы :)

07.12.2019 в 02:32
0

Я тут сегодня пол-дня думал... Вы правы насчет выноса работы с БД в отдельные независимые классы. Я так и сделаю :) Точнее, уже начал делать, один из справочников уже полностью перевел на абстрагированную от БД основу, только интерфейс и запрос конкретной информации из специализированных классов, которые уже и работают с БД.

Так что спасибо за совет, я с ним согласился полностью :) Причина - получается много дублированного кода работы с одними и теми же данными БД в разных окнах :) Если потом что-то вдруг захотеть поменять в логике работы с определенной таблицей - это будет полный швах :) Я почему-то не подумал об этом сразу...

07.12.2019 в 09:50
0

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

07.12.2019 в 13:55
0

Ну это придет либо с опытом либо с умными книгами))

Да опыт вроде есть, и не сказать, что маленький :) Проблема в том, что нет четкого ТЗ, все делается по слишком общему плану, а детали - "уточним по ходу дела" :))

я бы еще предусмотрел сразу обновление программы и обновление справочника по желанию)

То есть? Нет, обновление программы - это понятно, но справочники ведь наполняются самим пользователем, зачем и откуда их обновлять?

07.12.2019 в 17:54
0

Когда появляется новая программа где куча настроек, что в первую очередь делает пользователь? Ищет нужные настройки, чтоб не настраивать самому, можно банально глянуть на раздел вопросы и ответы этого сайта)) и вот эти базы желательно обновлять, и добавить возможность выгружать отдельные базы что бы делиться ими, хранить преднастройки для конкретной задачи, банально можно раздел сделать где пользователи будут выкладывать свои настройки а другие их выбирать и скачивать. Или уже монетизация не рассматривается?)) просто что в вашей программе такого что выводит ее на другой уровень по сравнению с экселем или аксессом? Я на аксессе подобное при желании за пару дней на vb накидаю скомпилю и выставлю в открытом доступе(ну пару дней конечно я утрирую но за неделю сделаю)) ну или более продумано эксель файл сделать, какой смысл столько времени тратить?

07.12.2019 в 18:18
0

Когда появляется новая программа где куча настроек, что в первую очередь делает пользователь? Ищет нужные настройки, чтоб не настраивать самому,

Да, но справочники - это не настройки, а пользовательский контент, индивидуальный для каждого :)

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

Шаблоны для типовых задач - в планах :) Можно сделать и их экспорт-импорт, думаю, что проблем с этим не будет. Да и на сайте можно организовать раздел, в котором можно будет делиться своими шаблонами, справочниками.

Я на аксессе подобное при желании за пару дней на vb накидаю скомпилю и выставлю в открытом доступе(ну пару дней конечно я утрирую но за неделю сделаю)) ну или более продумано эксель файл сделать, какой смысл столько времени тратить?

Да можно, конечно, сделать такое и на Access, и если как следует попыхтеть, то даже в Excel :) Просто я взялся делать на C#, мне это кажется правильнее для широкой публикации :)

07.12.2019 в 18:24
0

но на главный вопрос так и не ответили)) что же заставит пользователь выбрать вашу программу и тем более на нее потратится?)))

07.12.2019 в 18:59
0

Да ничего не заставляет, и я не заставляю :) Ну разве что отсутствие удобных альтернатив на текущий момент :)

Не будет пользоваться спросом - да и ладно, буду сам пользоваться ею :)

07.12.2019 в 19:33
0

это в корне не верный подход)) надо запиливать что то такое, что открываешь и понимаешь как это круто, либо крутой дизайн, либо удобный интерфейс, либо куча удобных предустановок лучше конечно все и сразу)))

07.12.2019 в 19:44
0

Ну, в идеале - да, к этому нужно стремиться :)

03.12.2019 в 15:33
1

а зачем либа под x64? программа же под x86))

03.12.2019 в 15:44
1

Это либа-прослойка SQLite использует свою основную либо под х32 или х64, определяя разрядность системы.

03.12.2019 в 15:54
0

невозможно из окружения 32 битного приложения запустить x64 dll)) можете для пробы ее удалить из папки)

03.12.2019 в 16:50
0

Андрей, прошу не обижаться на мои комментарии, вы помогли мне разобраться с печатью, я стараюсь помочь вам в разработке))

03.12.2019 в 17:00
0

Андрей, прошу не обижаться на мои комментарии

Вообще никаких обид, что Вы :)

03.12.2019 в 17:00
0

Ну, так было написано у самих SQLite :) И имена папок х86 и х64 строго рекомендованы :)

Хотя, видимо, они имели в виду, что в зависимости от вызывающего приложения...

Странно, но файл System.Data.SQLite.dll - он одинаков и для 32 и 64 бит :)

03.12.2019 в 16:42
2

Посмотрел.

1.Просто.(использование, понимание что, где)

2.Наглядно.

3.удобно

\ Можно добавить окошко недалеко от итоговой суммы за заказ в котором будет отображаться справочно цена за грамм. 

03.12.2019 в 17:02
0

Можно добавить окошко недалеко от итоговой суммы за заказ в котором будет отображаться справочно цена за грамм.

Тогда полимер/филамент/порошок нужно выделять из общих материалов в отдельный раздел. Ну и будут сложности если, например, в одном задании присутствуют и FDM и LCD печать :)

03.12.2019 в 18:36
0

видимо я не точно сформулировал.

У нас есть итоговая сумма со всеми "компонентами заказа" и есть количество материала затраченное на изделия. Делим одно на другое и получаем цена за грамм конкретно в этом заказе. Если есть два вида печати, просто складывать материал.  Цена за грамм  некая условность, зависящая от многих нюансов заказа. Но иногда полезная.

03.12.2019 в 19:01
0

Да, но в материалах может быть не только пластик в килограммах, но и ацетон в миллилитрах, перчатки в штуках, какая-нибудь проволока в метрах и т.п. И чтобы программа могла просуммировать только сам материал печати, его нужно как-то выделять из другого материала :)

04.12.2019 в 13:17
1

Да, но в материалах может быть не только пластик в килограммах, но и ацетон в миллилитрах, перчатки в штуках, какая-нибудь проволока в метрах и т.п. И чтобы программа могла просуммировать только сам материал печати, его нужно как-то выделять из другого материала :)

Достаточно добавить в таблицу с материалами ещё один столбец «Подсчитываемое» по умолчанию „0“ и только такие суммировать.

04.12.2019 в 13:27
0

Ну в общем да, как вариант. Только придумать название покороче, чтобы не растягивать столбец. Ну и цена будет высчитываться за ту единицу, которая указана в единицах измерения. То есть если там указан килограмм, то цена за него и будет считаться :)

04.12.2019 в 13:47
1

Только придумать название покороче, чтобы не растягивать столбец.

„cnt“ — сокр. форма от англицкого.

А, у вас жеж интерфейс на таблицах. Крыжек в форме было бы проще, кмк.

Даже не в материал. а в тип материала. И надо продумать т.н. «дробность» единиц.

ЗЫ: До тестов в линуксах пока не добрался, но обязательно отпишусь.

04.12.2019 в 14:48
0

Ну, крыжик можно и в таблицу вставить, с этим никаких проблем. Название полю желательно бы дать такое, чтобы пользователь понимал что это :)

В принципе, можно сделать в справочнике материалов несколько дополнительных полей для каждого материала. Например:

- "Учитывать в усредненной стоимости единицы задания"

- "Множитель для учета"

Ну и какое-то краткое текстовое пояснение тут же, на форме справочника.

03.12.2019 в 18:26
1

Спасибо за ваш труд! Все отлично! Единственное, при добавлении задания и выборе полей, при нажатии на сохранить, ничего не происходит. Так и должно быть?

03.12.2019 в 19:04
2

Да, так и должно быть. Сохранение еще просто не реализовано. Пока я прошу оценить работу только самой логики расчета стоимости. Попробовать в ней разные случаи из практики, и чем сложнее случай - тем лучше. То есть убедиться, что сам способ расчета стоимости удовлетворяет всем требованиям :)

А сохранение заданий и дальнейшая работа с ними - это будет реализовано, но позже :)

03.12.2019 в 19:11
1

А, спасибо, понял. Еще поковыряюсь

04.12.2019 в 11:09
0

Отлично :) на выходных время будет попробовать и написать отчёт

04.12.2019 в 14:49
0

Было бы хорошо :) Причем, если есть опыт коммерческой печати, то попробовать применить какие-то случаи из реальной практики и посмотреть укладываются ли они в возможности расчета.

05.12.2019 в 20:17
0

Вот как раз самому пригодилось :) Сейчас приедет клиент общаться по стоимости печати его деталек, и я набросал расчет стоимости :)


06.12.2019 в 13:44
0

Скейч отличный, но нуждается в дополнительных фичах, сохранения ордера и истории, статусы(оплаты, сроков, отсылки и др),  печать сметы и др, можно сделать вполне рабочий продукт для 3Дшников.

Откроешь исходники, готов помочь в разработке.

06.12.2019 в 14:17
0

Да, там еще много в планах:

- история заданий

- статусы заданий (в процессе, выполнено, отменено)

- история закупок

- типовые шаблоны заданий

- печать задания для клиента (без себестоимости, только состав задания и конечные суммы)

- печать задания для себя (со всеми подробностями)

- статистические отчеты за выбранный период

Плюс еще дали очень дельное на мой взгляд предложение - добавить справочник по параметрам печати. Выбрал принтер и пластик и получил параметры печати именно этим пластиком на этом принтере :)

Ну и может быть что-то еще будет добавляться в процессе.

По открытию исходников - пока не уверен. Я допускаю вероятность того, что у программы будет какая-то платная версия с дополнительными (для коммерции) фичами.

06.12.2019 в 15:39
1

Это ваше право, открывать исходники. Вполне нормальная практика открывать разработку под MIT лицензии и форкать коммерческую версию, вероятность, что продукт не умрет уже возрастает и также найдется помощь на стороне, ценные замечания от тестеров и пользователей. Ну и все преимущества открытого ПО, гарантия для пользователей, как выбор продукта и его надежность и прозрачность кода.

06.12.2019 в 15:50
0

открывать разработку под MIT лицензии и форкать коммерческую версию

Возможно, так и будет. Я еще просто не определился :) Хочу сначала закончить минимальный набор работающих функций, которые в любом случае будут в бесплатной версии, а потом уже посмотрю по обстоятельствам что будет дальше :)

07.12.2019 в 20:09
1

Откроешь исходники, готов помочь в разработке

Не обязательно всем открывать. Можно создать закрытый проект и дать права нужному пользователю (разработчику). Можно на гитхабе или на visualstudio.com. Только нужно предварительно с потенциальным разработчиком договориться и поверить ему под честное слово, что исходники не выложит...

11.12.2019 в 17:08
1

Можно на гитхабе или на visualstudio.com

GitLab наше все.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Sirius Hardlight - Принтер который вы искали

Печатаем гибкую, эластичную, мягкую деталь полимерником

КОМПАС-3D v18 Home. Основы 3D-проектирования. Часть 16.3. Создание игрушечного паровоза. Крыша и тележка паровоза

Boot or not to boot или ректальная реанимация MKS TFT32.

Контейнеры для филамента, которые я использую.

Спасение новогодней елки