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

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

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

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

Добрый день!
есть необходимость переоформить калькуляторы в эксельке и маткаде в относительно симпатичные программы, что б как BASE выглядели или как на форуме данном выкладывают. Но сельское происхождение и слабое образование не позволяют мне разобраться самому с чего начать.
Как делать калькуляторы?
Просмотров: 5239
 
Непрочитано 23.06.2020, 13:26
#21
veb86

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


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

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

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

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


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

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

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

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


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

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


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


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


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


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

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


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


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


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

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

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


Цитата:
Сообщение от 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"В
Сообщений: 11,695


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

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

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

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

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

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

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

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


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

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

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

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


Цитата:
Сообщение от 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
Сообщений: 172


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


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


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

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

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


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

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


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

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


Цитата:
Сообщение от 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