Как оформить калькулятор эксельке или маткаде в програмку?
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как оформить калькулятор эксельке или маткаде в програмку?

Как оформить калькулятор эксельке или маткаде в програмку?

Ответ
Поиск в этой теме
Непрочитано 18.06.2020, 16:32 #1
Как оформить калькулятор эксельке или маткаде в програмку?
Engineer_dyslexic
 
инженер-конструктор
 
Ницца
Регистрация: 22.03.2012
Сообщений: 81

Добрый день!
есть необходимость переоформить калькуляторы в эксельке и маткаде в относительно симпатичные программы, что б как BASE выглядели или как на форуме данном выкладывают. Но сельское происхождение и слабое образование не позволяют мне разобраться самому с чего начать.
Как делать калькуляторы?
Просмотров: 10532
 
Непрочитано 18.06.2020, 17:38
#2
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,202


Offtop: "Странно", что еще ни кто не ответил)))
stas_org вне форума  
 
Непрочитано 19.06.2020, 09:51
1 | #3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


https://download.microsoft.com/docum...n/c_sharp2.pdf
trir вне форума  
 
Непрочитано 19.06.2020, 10:18
1 | #4
Дмитррр

НЛО
 
Регистрация: 09.07.2007
Тутошние мы.
Сообщений: 6,420


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Но сельское происхождение и слабое образование не позволяют мне разобраться самому с чего начать.
Как делать калькуляторы?
Освоить какой-нибудь язык программирования. А заодно и среду программирования. На это уйдёт несколько месяцев. После этого с самим кодом быть проблем не должно, если есть программа в экселе, но код нужно будет сделать весь с нуля. На это тоже уйдёт несколько месяцев.
Дмитррр вне форума  
 
Непрочитано 19.06.2020, 10:20
1 | #5
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


kirill_krikunov, Вам сюда: https://forum.dwg.ru/showthread.php?t=92154
Boxa вне форума  
 
Непрочитано 19.06.2020, 10:24
1 | #6
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Но сельское происхождение и слабое образование не позволяют мне разобраться самому с чего начать.
С изучения, как и с помощью каких языков программирования создаются графические интерфейсы программ (т.е. "как выглядит его окно в винде"). Потом - создание кнопок действия. Потом - закладывание математических действий при условии нажатия на эти кнопки. Потом - как вывести результат действия в текстовом виде для пользователя в соответствующее поле. Проще простого
PS я сам не программист. Вернее программист, но не компьютерный.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.06.2020, 11:27
1 | #7
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,261
Отправить сообщение для hentan с помощью Skype™


Имхо, если не устраивает эксель, то самый простой вариант - это html + css + js, сделать можно практически что угодно. Но таки надо выучить хотя бы базовые вещи в каждом из языков.
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Непрочитано 19.06.2020, 14:07
2 | 1 #8
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от Boxa Посмотреть сообщение
kirill_krikunov, Вам сюда: https://forum.dwg.ru/showthread.php?t=92154
О да, это ссылка меня очень порадовала...

Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Как делать калькуляторы?
SMATh Studio - это бесплатный и упрощенный Маткад.
SMATh Studio позволяет сохранять расчеты в виде исполняемого файла ехе, простые и не простые расчеты при должной тренировке можно оформить в виде программки, вполне даже аккуратной. Но я этим пользуюсь редко
А так все правильно пишут, открывай учебник по программированию и вперед...
veb86 вне форума  
 
Автор темы   Непрочитано 22.06.2020, 16:28
#9
Engineer_dyslexic

инженер-конструктор
 
Регистрация: 22.03.2012
Ницца
Сообщений: 81


Цитата:
Сообщение от hentan Посмотреть сообщение
Имхо, если не устраивает эксель, то самый простой вариант - это html + css + js, сделать можно практически что угодно. Но таки надо выучить хотя бы базовые вещи в каждом из языков.
Мне выше предложили книгу для школьников по с#. Вы предлагаете html + css + js, просто я на долгосрочную перспективу хочу начать клацать по мелочи. Вот просто не хочется пытаться разобраться в менее используемых языках программирования. Вот например в институте меня учили Старку, а в соседнем Лире САПР. После выпуска я понял что знать кнопки в Лире куда полезней.
Engineer_dyslexic вне форума  
 
Непрочитано 22.06.2020, 16:57
#10
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,261
Отправить сообщение для hentan с помощью Skype™


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Мне выше предложили книгу для школьников по с#. Вы предлагаете html + css + js, просто я на долгосрочную перспективу хочу начать клацать по мелочи. Вот просто не хочется пытаться разобраться в менее используемых языках программирования. Вот например в институте меня учили Старку, а в соседнем Лире САПР. После выпуска я понял что знать кнопки в Лире куда полезней.
Если по мелочи, то я думаю этого хватит. Просто с оформлением отчетов в СиШарпе придется сильнее подзагнаться, плюс сам язык со статической типизацией и порог вхождения повыше (правда у js свои закидоны с автоматическим преобразованием типов данных). Для себя делал расчеты в python (без интерфейса - ибо Tkinter зло), либо html+css+js.
Совсем простенький пример (без баз данных и остального загона) во вложении
Вложения
Тип файла: zip стоимость пустотных плит.zip (5.8 Кб, 52 просмотров)
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Непрочитано 22.06.2020, 21:09
#11
kopekopa

типа инженер
 
Регистрация: 23.06.2011
Сообщений: 758


Цитата:
Сообщение от hentan Посмотреть сообщение
html + css + js
На этом задолбаешься делать даже простой расчет ввиду несоразмерных затрат времени с конечным продуктом.
Тоже хочется программу написать. Но, попробовав и вб, и жс, никак не могу заставить себя сделать что-либо до конца, ибо простота экселя и маткада не оставляет шансов, чтоб не нащупать на языке фразу "да на кой мне это надо"
kopekopa вне форума  
 
Непрочитано 23.06.2020, 07:09
1 | #12
DMSskop


 
Регистрация: 23.01.2019
Сообщений: 132


Чем интерфейс по типу https://dwg.ru/dnl/15042 не устраивает?
DMSskop вне форума  
 
Непрочитано 23.06.2020, 08:05
#13
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,261
Отправить сообщение для hentan с помощью Skype™


Цитата:
Сообщение от kopekopa Посмотреть сообщение
На этом задолбаешься делать даже простой расчет ввиду несоразмерных затрат времени с конечным продуктом.
Тоже хочется программу написать. Но, попробовав и вб, и жс, никак не могу заставить себя сделать что-либо до конца, ибо простота экселя и маткада не оставляет шансов, чтоб не нащупать на языке фразу "да на кой мне это надо"
Ну тут вопрос целесообразности, у меня есть отдельные виды расчетов на нынешней работе, которые приходится повторять с завидной периодичностью (например расчет массы арматуры, подсчет ведомости расхода имея готовые массы отдельных ЗД и кое-что другое). Вот для них считаю есть смысл сделать что-то, а для расчета, которые на один раз нафиг надо загоняться - эксель вполне себе подойдет.
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Непрочитано 23.06.2020, 09:32
1 | 1 #14
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от hentan Посмотреть сообщение
Ну тут вопрос целесообразности, у меня есть отдельные виды расчетов на нынешней работе, которые приходится повторять с завидной периодичностью (например расчет массы арматуры, подсчет ведомости расхода имея готовые массы отдельных ЗД и кое-что другое). Вот для них считаю есть смысл сделать что-то, а для расчета, которые на один раз нафиг надо загоняться - эксель вполне себе подойдет.
Считаю что связка Excel + SMath. Используя их можно решить практически все задачи аккуратно и элегантно.
Smath легко позволяет импортировать большие списки из внешних файлов XLS или CSV. Тем самым создавая некое подобие базы данных. Ставя дополнительные модули можно получить выпадающие списки, точки, галочки. Плюс возможность обрабатывать эти данные циклом и добротно выводить результат, делает его незаменимым инструментом. Просто нужно почитать и разобраться. как там все устроенно, и оформить аккуратно расчет.
Создание расчетных программ связано с большим количеством затрачиваемого времени, плюс трудно контролировать расчет и его проверять, ваши коллеги должны Вам верить на слово. Здесь же можно огромный расчет обсуждать с коллегами по цеху, и все равно все делать самому, потому что настоящие расчеты надо делать только на python, ну накрайняк C#, но все таки С++ будет побыстрее...
veb86 вне форума  
 
Непрочитано 23.06.2020, 10:00
#15
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Мне выше предложили книгу для школьников по с#. Вы предлагаете html + css + js, просто я на долгосрочную перспективу хочу начать клацать по мелочи. Вот просто не хочется пытаться разобраться в менее используемых языках программирования. Вот например в институте меня учили Старку, а в соседнем Лире САПР. После выпуска я понял что знать кнопки в Лире куда полезней.
В программировании есть различные направления с наиболее используемых в них ЯПах. Если хотите писать под WEB, т.е. те программы, которые будут работать через браузер интернета, то html + css. Если нужны самостоятельные приложения для windows, то c# и winforms или WPF.
румата вне форума  
 
Непрочитано 23.06.2020, 10:50
#16
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


Цитата:
Сообщение от veb86 Посмотреть сообщение
потому что настоящие расчеты надо делать только на python,
я бы поостерегся использовать для расчетов языки с динамической, слабой или не явной типизацией... может получиться всякое, отловить ошибки сложно, а получиться может очень не хорошо.
Boxa вне форума  
 
Непрочитано 23.06.2020, 11:09
#17
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от veb86 Посмотреть сообщение
потому что настоящие расчеты надо делать только на python
Интересно почему?
румата вне форума  
 
Непрочитано 23.06.2020, 12:06
#18
Rokot


 
Регистрация: 14.02.2020
Сообщений: 10


Кроме экселя и маткада, есть хорошая бесплатная программа scilab (аналог матлаба). Если заморачиваться с программированием, то придется вначале изучить сам язык, например С++, далее освоить возможности библиотеки построения графического интерфейса пользователя (GUI). Библиотек много, на русском языке информация далеко не вся (wxWidgets, Qt, GTK, ...).
Rokot вне форума  
 
Автор темы   Непрочитано 23.06.2020, 12:10
#19
Engineer_dyslexic

инженер-конструктор
 
Регистрация: 22.03.2012
Ницца
Сообщений: 81


Цитата:
Сообщение от DMSskop Посмотреть сообщение
Чем интерфейс по типу https://dwg.ru/dnl/15042 не устраивает?
Очень красиво на мой взгляд.
Но причины, по которым эксель и маткад не подходят, есть. Вам я их сказать не могу.
Engineer_dyslexic вне форума  
 
Непрочитано 23.06.2020, 13:18
#20
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


Цитата:
Но причины, по которым эксель и маткад не подходят, есть. Вам я их сказать не могу.
расстреляют?
trir вне форума  
 
Непрочитано 23.06.2020, 13:26
#21
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


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

Цитата:
Сообщение от румата Посмотреть сообщение
Интересно почему?
Это просто модно... Хотя может я уже устарел...

Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Но причины, по которым эксель и маткад не подходят, есть. Вам я их сказать не могу.
На ум приходят три причины. Они платные, коллеги с прямыми руками и хотите спрятать расчеты. Ну не можете, и не можете...
veb86 вне форума  
 
Непрочитано 23.06.2020, 14:16
| 1 #22
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


Цитата:
Сообщение от veb86 Посмотреть сообщение
есть чувство, что матерые питонисты Вам бы дали хорошую заумную сдачу
Матерых мое замечание не касается, они осознают что делают, почему и для чего, а вот начинающему "бриться опасной бритвой" все таки не стоит.

У меня нет цели обидеть питонистов или еще как-то кого-то обидеть, я предупреждаю о раскиданных "граблях", наступание на которые в инженерном деле может стоить очень дорого. Видел ошибки, когда волей случая в условие сравнения прилетали не 2 числа, а число и текст с содержанием примерно похожим на число, при этом интерпретатор не явно приводил их к более общему типу, сравнивал эти объекты и возвращал результат очень далекий от правильного, но при этом никаких ошибок в работе программы... Видел опечатки, которые интепретатор принимал за объявление новых переменных и инициировал их без спросу... и опять, никаких ошибок.
Я не против питона и я пишу не только про питон, но и про JS, VBA, php и прочие... , я за осознанный, разумный подход.

Последний раз редактировалось Boxa, 23.06.2020 в 14:22.
Boxa вне форума  
 
Непрочитано 23.06.2020, 15:00
#23
Дмитррр

НЛО
 
Регистрация: 09.07.2007
Тутошние мы.
Сообщений: 6,420


Спор ни о чём пошёл. Что знаешь, в том и пиши. Программы, которые можно замутить в экселе, можно сделать в чём угодно в 1000-кратном размере.

Проблема Питона для данной задачи не в типизации, а в том, что он интерпретируемый язык. В нём без хитрых манипуляций не скомпилируешь EXE, которая будет работать где угодно. Но по лёгкости освоения он один из лидеров (хотя для новичков это не всегда плюс - это как учиться водить автомобиль с автоматом).
C# с ВижуалСтудио в этом плане лучше, особенно если цель сделать программки только для Виндовса.
Яваскрипт в паре с html/css решение для ваб-приложений, хотя при желании можно успешно сделать и оффлайн, но это несколько странно. Оно не для этого.
Дмитррр вне форума  
 
Непрочитано 23.06.2020, 15:05
#24
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
Вам я их сказать не могу.
нужна защита от загребущих лапок коллег/руководства?)
Сергей812 вне форума  
 
Непрочитано 23.06.2020, 15:17
#25
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,261
Отправить сообщение для hentan с помощью Skype™


Цитата:
Сообщение от Дмитррр Посмотреть сообщение
Проблема Питона для данной задачи не в типизации, а в том, что он интерпретируемый язык
Проблема питона в том, что интерфейс без танцев с бубном и штудированием библиотек не сделаешь, а если нужно оперативное решение - то вполне себе.
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Автор темы   Непрочитано 03.07.2020, 11:56
#26
Engineer_dyslexic

инженер-конструктор
 
Регистрация: 22.03.2012
Ницца
Сообщений: 81


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
нужна защита от загребущих лапок коллег/руководства?)
Да нет, жизнь как булочка с изюмом и сгущенкой. Коллеги сплошь приятные люди, начальство вообще супер. Лицензий ПО в конторе сколько хочешь и каких хочешь. Тут личный интерес. Да и не важно это, уже есть возможность обучиться, пока есть желание. Вот собственно и все. Ну и вопрос понтов в какой то мере.
Engineer_dyslexic вне форума  
 
Непрочитано 06.07.2020, 12:54
#27
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


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

да же "ВИЖУЛИЗАЦИЯ" не облегчает разработку интерфейса.
CalcProg вне форума  
 
Непрочитано 06.07.2020, 14:44
1 | 1 #28
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от CalcProg Посмотреть сообщение
нафига это тебе нужно?
опыт показывает, что на разработку интерфейса уходит времени порой в несколько раз больше чем на разработку алгоритма решения задачи.

да же "ВИЖУЛИЗАЦИЯ" не облегчает разработку интерфейса.
Человек интеллектуального роста хочет! Хочет сам все пощупать...
Знать программирование, очень полезно, еще бы было время что бы программировать
veb86 вне форума  
 
Непрочитано 06.07.2020, 20:11
#29
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от veb86 Посмотреть сообщение
Человек интеллектуального роста хочет! Хочет сам все пощупать...
Ну "нет такой буквы" про "интеллектуальный рост". Человек сам написал:

Цитата:
есть необходимость переоформить калькуляторы в эксельке и маткаде в относительно симпатичные программы, что б как BASE выглядели или как на форуме данном выкладывают. Но сельское происхождение и слабое образование не позволяют мне разобраться самому с чего начать.
Как делать калькуляторы?
При этом:
Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
причины, по которым эксель и маткад не подходят, есть. Вам я их сказать не могу.
и вообще
Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
вопрос понтов в какой то мере
Тут рост не интеллекта, а понтов желателен. "В какой-то мере".

Интересно бы знать, что такое "калькуляторы" в представлении автора ветки? Это что, такое окошечко, в котором 2х2 можно сосчитать? Так примеры таких "калькуляторов" есть в любой среде программирования. Тут интеллект не нужен - скомпилировал "democalc" и готово.

Или "калькулятор" - это наподобие Excel, только собственной, где можно в ячейки формулы вводить и прочее? И программа "переоформленная" как свой, да еще "что б как BASE" выглядела?

Ну и такую можно безо всякого "интеллектуального роста" склепать. Тоже имеются готовые компоненты (например ExpressSpreadSheet), в которых можно любые "батоны" свои сделать - "как на форуме данном выкладывают".

А вот с нуля такую "эксельку" сделать очень непросто. Но возможно, изучая, как люди делали подобное. Года два уйдет, да и то если уже программированием давно занимался. Вот тогда интеллектуальный рост и будет.

Но тогда и вопросы надо задавать другие, например "Хочу сделать аналог Excel на языке Анаконда. Подскажите, где взять примеры"?
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 07.07.2020, 23:52
#30
Engineer_dyslexic

инженер-конструктор
 
Регистрация: 22.03.2012
Ницца
Сообщений: 81


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Интересно бы знать, что такое "калькуляторы" в представлении автора ветки?
Вот например нужно посчитать каре резервуара, на аварийную ситуацию. Там все просто v, h, l ; уравнение Торричелли, проверили геометрию; и как уголковую подпорную стену.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Тут интеллект не нужен - скомпилировал "democalc" и готово
Вот это мне подходит, можно по подробней?

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Года два уйдет
Я не спешу
Engineer_dyslexic вне форума  
 
Непрочитано 08.07.2020, 02:54
#31
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,083


Цитата:
Сообщение от kirill_krikunov Посмотреть сообщение
можно по подробней
По результатам обсуждений в теме Бесплатный софт проектировщика(Создание) единственное готовое решение - TechEditor. Позволяет автоматизировать и оформить расчеты, но сделано это все неудобно - одну формулу нужно набирать вручную три-четыре раза в разных форматах, да еще и в разных местах.


Можно обходиться подручными средствами. На предыдущей работе, где было все нельзя, расчеты автоматизировал в блокноте. Сохранить с расширением HTA, запустить как обычную программу:
Код:
[Выделить все]
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
	<title>Интерполируй меня быстро</title>
	<hta:application innerborder="no" scroll="no">
</head>

<style>
body {
	text-align: center;
	background-color: #C0C0C0;
}

input {
	text-align: center;
}
</style>

<script language=JScript>


function Interpolate(x1, x2, y1, y2, x)
{
	var k1 = (x  - x1) / (x2 - x1);
	var k2 = (x2 - x)  / (x2 - x1);

	return y1 * k2 + y2 * k1;
}


function CalcX()
{
	var x1 = txtX1.value;
	var x2 = txtX2.value;
	var y1 = txtY1.value;
	var y  = txtY.value;
	var y2 = txtY2.value;

	var x = Interpolate(y1, y2, x1, x2, y);

	txtX.value = x;

	txtX.style.background = "#7FFF7F";
	txtY.style.background = "#FFFFFF";
}


function CalcY()
{
	var x1 = txtX1.value;
	var x  = txtX.value ;
	var x2 = txtX2.value;
	var y1 = txtY1.value;
	var y2 = txtY2.value;

	var y = Interpolate(x1, x2, y1, y2, x);

	txtY.value = y;

	txtY.style.background = "#7FFF7F";
	txtX.style.background = "#FFFFFF";
}

var g_calcX = true;

function Calc()
{
	if(g_calcX)
		CalcX();
	else
		CalcY();
}

</script>


<BODY onload="window.resizeTo(500, 120); Calc();">
<table cellspacing=0 cellpadding=0 width="33%" border=0>
  <tr>
    <td>x:&nbsp;</td>
    <td><input id=txtX1 type=text value=1 onchange="Calc();"></td>
    <td><input id=txtX  type=text value=2 onchange="g_calcX = false; Calc();"></td>
    <td><input id=txtX2 type=text value=3 onchange="Calc();"></td>
  </tr>
  <tr>
    <td>y:&nbsp;</td>
    <td><input id=txtY1 type=text value=1 onchange="Calc();"></td>
    <td><input id=txtY  type=text value=2 onchange="g_calcX = true; Calc();"></td>
    <td><input id=txtY2 type=text value=3 onchange="Calc();"></td>
  </tr>
</table>
</html>
Код:
[Выделить все]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
<title>Расчет в сеточку</title>
<hta:application innerborder="no" scroll="no">
</head>
<style>
	body	{text-align=center; background-color: silver; font-family: Fixedsys; margin: 0;}
	input	{text-align: Center; border: 1px; border-style: solid; font-family: Fixedsys;}
	select	{font-family: Fixedsys;}
	td	{text-align: Center;}
	.tblData	{}
	.tblResults	{background-color: #707070;}
	.tblResults td	{background-color: silver; padding: 0.3em;}
	.radUnits {border-style: none;}
</style>


<script language=JScript>

var dx      = 0;   // Диаметр
var dy      = 0;
var cx      = "";  // Класс арматуры
var cy      = "";
var sx1     = 0;   // Шаг
var sx2     = 0;
var sy1     = 0;
var sy2     = 0;
var ex1     = 0;   // Выпуски
var ex2     = 0;
var ey1     = 0;
var ey2     = 0;
var nx      = 0;   // Количество
var ny      = 0;
var Lx      = 0;   // Длина
var Ly      = 0;
var digits  = 0; // Десятичных знаков
var mxi     = 0;   // Погонные массы
var myi     = 0;
var mx      = 0;   // Массы отдельных стержней
var my      = 0;
var mxx     = 0;   // Суммарные массы стержней
var myy     = 0;
var m       = 0;   // Масса сетки


function ReadX()
{
	var sDiameter = "([0-9]+)";
	var sArmature = "([АA]I{1,3}|[ВB][рp]I)";
	var sStep1    = "([0-9]+)";
	var sStep2    = "[(]([0-9]+)[)]";

	// 	Полный формат: 6АI-100(75)
	var re = new RegExp("^" + sDiameter + sArmature + "-" + sStep1 + sStep2 + "$");
	if(re.test(txtX.value)) {
		re.exec(txtX.value);
		dx  = RegExp.$1;
		cx  = RegExp.$2;
		sx1 = RegExp.$3;
		sx2 = RegExp.$4;
		return true;
	}

	// 	Без дополнительного шага: 6АI-100
	re = new RegExp("^" + sDiameter + sArmature + "-" + sStep1 + "$");
	if(re.test(txtX.value)) {
		re.exec(txtX.value);
		dx  = RegExp.$1;
		cx  = RegExp.$2;
		sx1 = RegExp.$3;
		sx2 = 0;
		return true;
	}

	// 	Краткий формат (стандартный шаг 200): 6АI
	re = new RegExp("^" + sDiameter + sArmature + "$");
	if(re.test(txtX.value)) {
		re.exec(txtX.value);
		dx  = RegExp.$1;
		cx  = RegExp.$2;
		sx1 = 200;
		sx2 = 0;
		return true;
	}

	return false;
}


function ReadY()
{
	var sDiameter = "([0-9]+)";
	var sArmature = "([АA]I{1,3}|[ВB][рp]I)";
	var sStep1    = "([0-9]+)";
	var sStep2    = "[(]([0-9]+)[)]";

	// 	Полный формат: 6АI-100(75)
	var re = new RegExp("^" + sDiameter + sArmature + "-" + sStep1 + sStep2 + "$");
	if(re.test(txtY.value)) {
		re.exec(txtY.value);
		dy   = RegExp.$1;
		cy   = RegExp.$2;
		sy1  = RegExp.$3;
		sy2 =  RegExp.$4;
		return true;
	}

	// 	Без дополнительного шага: 6АI-100
	re = new RegExp("^" + sDiameter + sArmature + "-" + sStep1 + "$");
	if(re.test(txtY.value)) {
		re.exec(txtY.value);
		dy   = RegExp.$1;
		cy   = RegExp.$2;
		sy1  = RegExp.$3;
		sy2 = 0;
		return true;
	}

	// 	Краткий формат (стандартный шаг 200): 6АI
	re = new RegExp("^" + sDiameter + sArmature + "$");
	if(re.test(txtY.value)) {
		re.exec(txtY.value);
		dy  = RegExp.$1;
		cy  = RegExp.$2;
		sy1  = 200;
		sy2 = 0;
		return true;
	}

	return false;
}


function ReadXY()
{
	var sSize = "([0-9.]+)";

	var re = new RegExp("^" + sSize + "[хx]" + sSize + "$");
	if(re.test(txtXY.value)) {
		re.exec(txtXY.value);
		Lx = 10 * RegExp.$2; // мм
		Ly = 10 * RegExp.$1; // мм
		
		if(radUnits[0].checked) {
			
		} else if (radUnits[1].checked) {
			Lx /= 10;
			Ly /= 10;
		}

		return  !isNaN(Lx)  &&  !isNaN(Ly);
	}

	return false;
}


function ReadEx()
{
	var sExt = "([0-9]+)";
	
	// Полный формат: 45+35
	var re = new RegExp("^" + sExt + "[+]" + sExt + "$");
	if(re.test(txtEx.value)) {
		re.exec(txtEx.value);
		ex1 = RegExp.$1;
		ex2 = RegExp.$2;
		return true;
	}
	
	// Краткий формат: 45
	re = new RegExp("^" + sExt + "$");
	if(re.test(txtEx.value)) {
		re.exec(txtEx.value);
		ex1 = ex2 = RegExp.$1;
		return true;
	}

	// По умолчанию выпуски 25
	if(txtEx.value == "") {
		ex1 = ex2 = 25;
		return true;
	}

	return false;
}


function ReadEy()
{
	var sExt = "([0-9]+)";
	
	// Полный формат: 45+35
	var re = new RegExp("^" + sExt + "[+]" + sExt + "$");
	if(re.test(txtEy.value)) {
		re.exec(txtEy.value);
		ey1 = RegExp.$1;
		ey2 = RegExp.$2;
		return true;
	}
	
	// Краткий формат: 45
	re = new RegExp("^" + sExt + "$");
	if(re.test(txtEy.value)) {
		re.exec(txtEy.value);
		ey1 = ey2 = RegExp.$1;
		return true;
	}

	// По умолчанию выпуски 25
	if(txtEy.value == "") {
		ey1 = ey2 = 25;
		return true;
	}

	return false;
}


function ReadDigits()
{
	digits = selDigits.value;

	return true;
}


function ReadData()
{
	return ReadX()  &&  ReadY()  &&  ReadXY()  &&  ReadEx()  &&  ReadEy() && ReadDigits();
}


function GetM(c, d)
{
	var re = new RegExp("^[АA]I{1,3}$");
	if(re.test(c)) { // AI, AII, AIII
		switch(d) {
			case "6":  return 0.222;
			case "8":  return 0.395;
			case "10": return 0.617;
			case "12": return 0.888;
			case "14": return 1.21;
			case "16": return 1.58;
			case "18": return 2.00;
			case "20": return 2.47;
			case "22": return 2.98;
			case "25": return 3.85;
			case "28": return 4.83;
			case "32": return 6.31;
			case "36": return 7.99;
			case "40": return 9.87;
			case "45": return 12.48;
			case "50": return 15.41;
			case "55": return 18.65;
			case "60": return 22.19;
			case "70": return 30.21;
			case "80": return 39.46;
		}
	}

	re = new RegExp("^[ВB][рp]I$");
	if(re.test(c)) { // BpI
		switch(d) {
			case "3":  return 0.052;
			case "4":  return 0.092;
			case "5":  return 0.144;
		}
	}

	return NaN;
}


function Round(x, d)
{
//	return x.toFixed(d);
	return x.toPrecision(d);
}


function Calc()
{
	if(sx2 == 0)
		nx = (Ly - ey1 - ey2) / sx1 + 1;
	else
		nx = (Ly - ey1 - ey2 - sx2) / sx1 + 2;

	if(sy2 == 0)
		ny = (Lx - ex1 - ex2) / sy1 + 1;
	else
		ny = (Lx - ex1 - ex2 - sy2) / sy1 + 2;

	var DIGITS = 2;

	mxi = GetM(cx, dx);
	myi = GetM(cy, dy);
	mx  = Round(mxi * Lx / 1000, digits);
	my  = Round(myi * Ly / 1000, digits);
	mxx = Round(mx*nx, digits);
	myy = Round(my*ny, digits);
	m   = Round(mxx*1 + myy*1, digits);

	if(isNaN(mx)  ||  isNaN(my)  ||  isNaN(m))
		return false;

	return true;
}


function ShowResults()
{
	tdMARKx.innerText = "" + dx + cx + ", L=" + Lx;
	tdNx.innerText    = nx;
	tdMxi.innerText   = mxi;
	tdMx.innerText    = mx;
	tdMxx.innerText   = mxx;
	tdM.innerText     = m;
	tdMARKy.innerText = "" + dy + cy + ", L=" + Ly;
	tdNy.innerText    = ny;
	tdMyi.innerText   = myi;
	tdMy.innerText    = my;
	tdMyy.innerText   = myy;
}


function ClearResults()
{
	tdMARKx.innerHTML = "&nbsp;";
	tdNx.innerHTML    = "&nbsp;";
	tdMxi.innerHTML   = "&nbsp;";
	tdMx.innerHTML    = "&nbsp;";
	tdMxx.innerHTML   = "&nbsp;";
	tdM.innerHTML     = "&nbsp;";
	tdMARKy.innerHTML = "&nbsp;";
	tdNy.innerHTML    = "&nbsp;";
	tdMyi.innerHTML   = "&nbsp;";
	tdMy.innerHTML    = "&nbsp;";
	tdMyy.innerHTML   = "&nbsp;";
}


function go()
{
	if(ReadData()  &&  Calc()) {
		ShowResults();
	} else
		ClearResults();
}
</script>


<body onload="go();">
<table class=tblData>
	<tr>
		<td>С</td>
		<td>
			<table>
				<tr><td>
					<input name=txtX value="6АI-100(75)" onchange="go();">
				</td></tr>
				<tr><td>
					<input name=txtY value="5ВрI-100(85)" onchange="go();">
				</td></tr>
			</table>
		</td>
		<td>
			<table>
				<tr><td>
					&nbsp;
				</td></tr>
				<tr><td>
					<input name=txtXY value="94x226.5" onchange="go();">
				</td></tr>
				<tr><td>
					<input class=radUnits type=radio name=radUnits onclick="go();" checked>см
					<input class=radUnits type=radio name=radUnits onclick="go();">мм
				</td></tr>
			</table>
		</td>
		<td>
			<table>
				<tr><td>
					<input name=txtEx value="45+35" onchange="go();">
				</td></tr>
				<tr><td>
					<input name=txtEy value="25+40" onchange="go();">
				</td></tr>
			</table>
		</td>
	<tr>
</table>
<table class=tblResults>
  <TR>
    <TD>&nbsp;Знаков:
      <select id=selDigits onchange="go();">
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3 selected>3</option>
        <option value=4>4</option>
        <option value=5>5</option>
        <option value=6>6</option>
        <option value=7>7</option>
        <option value=8>8</option>
      </select>
    
    </TD>
    <TD>&nbsp;Обозначение&nbsp;</TD>
    <TD>&nbsp;Кол.&nbsp;</TD>
    <TD>&nbsp;Масса п.м., кг&nbsp;</TD>
    <TD>&nbsp;Масса ед., кг&nbsp;</TD>
    <TD colSpan=2>&nbsp;Общая масса, кг&nbsp;</TD>
  </TR>
  <TR>
    <TD>&nbsp;Продольные стержни&nbsp;</TD>
    <TD id=tdMARKx>&nbsp;</TD>
    <TD id=tdNx>&nbsp;</TD>
    <TD id=tdMxi>&nbsp;</TD>
    <TD id=tdMx>&nbsp;</TD>
    <TD id=tdMxx>&nbsp;</TD>
    <TD id=tdM rowSpan=2>&nbsp;</TD>
  </TR>
  <TR>
    <TD>&nbsp;Поперечные стержни&nbsp;</TD>
    <TD id=tdMARKy>&nbsp;</TD>
    <TD id=tdNy>&nbsp;</TD>
    <TD id=tdMyi>&nbsp;</TD>
    <TD id=tdMy>&nbsp;</TD>
    <TD id=tdMyy>&nbsp;</TD>
  </TR>
</table>
</body>
</html>
Третий пример - тут: Расчет свайных фундаментов на откосе. Пост #10


Еще Word в последних версиях обзавелся текстовым форматом формул, что позволяет достаточно просто генерировать отчеты из любой программы:
Код:
[Выделить все]
{\rtf1

{\mmath
{\moMath

{\msSup
{\me{\mr\mscr0\msty2 a}}
{\msup{\mr\mscr0\msty2 2}}
}

{\mr\mscr0\msty2 =}

{\msSup
{\me{\mr\mscr0\msty2 b}}
{\msup{\mr\mscr0\msty2 2}}
}

{\mr\mscr0\msty2 +}

{\msSup
{\me{\mr\mscr0\msty2 c}}
{\msup{\mr\mscr0\msty2 2}}
}

}
}

}
Все не доходят руки проверить, сработает ли копирование такого RTF в буфер, чтобы сразу в WORD вставлять, без промежуточного файла.
Нубий-IV вне форума  
 
Непрочитано 09.07.2020, 23:27
#32
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


оконный интерфейс нужен, если ты в дальнейшем собираешься продовать или бесплатно распространять программу, что бы пользователю было удобно пользоваться твоей программой.
CalcProg вне форума  
 
Непрочитано 10.07.2020, 00:50
#33
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от CalcProg Посмотреть сообщение
оконный интерфейс нужен, если ты в дальнейшем собираешься продовать или бесплатно распространять программу, что бы пользователю было удобно пользоваться твоей программой.
Из вики
Цитата:
Око́нный интерфе́йс — способ организации полноэкранного интерфейса программы (разновидность графического интерфейса), в котором каждая интегральная часть располагается в графическом окне — собственном субэкранном пространстве, находящемся в произвольном месте «над» основным экраном. Несколько окон, одновременно располагающихся на экране, могут перекрываться, виртуально находясь «выше» или «ниже» друг относительно друга.
делать несколько вариантов интерфейса - для себя, для распространения - можно, конечно... )

Последний раз редактировалось Сергей812, 10.07.2020 в 00:56.
Сергей812 вне форума  
 
Непрочитано 10.07.2020, 08:57
#34
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Я сейчас принял для себя довольно удобную штуку, это Python Notebook.
Формировать расчеты и выводить значения, единственное с чем не разобрался как формировать формулы из переменных.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 10.07.2020, 09:09
#35
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от DEM Посмотреть сообщение
Я сейчас принял для себя довольно удобную штуку, это Python Notebook.
Формировать расчеты и выводить значения, единственное с чем не разобрался как формировать формулы из переменных.
ответьте на вопрос, чем вас не устраивает маткад(smath) с его программирование? хочу понять, может что то важное упускаю
veb86 вне форума  
 
Непрочитано 10.07.2020, 13:13
#36
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от veb86 Посмотреть сообщение
ответьте на вопрос, чем вас не устраивает маткад(smath) с его программирование? хочу понять, может что то важное упускаю
Под пайтон библиотек вагон и маленькая тележка.
Плюс различные визуализации и графики, плюс работа с mesh
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как оформить калькулятор эксельке или маткаде в програмку?

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как оформить доп соглашение на разработку новых редакций (изменение к РД) AbuAidar Организация проектирования и оформление документации 0 28.02.2020 13:17
Как оформить чертеж детали с исполнениями Vin Машиностроение 22 06.09.2018 07:41
Существует ли какой-нибудь простой калькулятор для среды Брикскада? SilvioManuel Прочее. Программное обеспечение 3 31.05.2018 10:33
Как правильно оформить групповой чертеж? Vika1904kon Машиностроение 3 20.03.2016 18:43
Можно ли сделать калькулятор фундамента под строительство коттеджа? Dyuk Программирование 2 29.06.2012 15:35