I have this source code in Delphi, why I get this error «Floating point overflow.» when I run the code? and how to correct it?
The error message:
The code:
procedure TForm1.Button1Click(Sender: TObject);
var n, d, i, j, maxiter , iter: Integer;
Lower,Upper : Double;
X, V : TArray<TArray<Double>>;
begin
Lower := 0;
Upper := 0.2;
n := 100;
d := 55;
SetLength(V, n, d);
SetLength(X, n, d);
maxiter := 2000;
iter := 1;
for i:= 0 n-1 do
for j:=0 to d-1 do
begin
X[i][j]:= Lower + (Upper - Lower) * Random;
V[i][j] := 0.1 * X[i][j];
end;
while (iter <= maxiter) do
begin
for i:= 0 to n-1 do
for j:= 0 to D-1 do
V[i][j]:= 5 * V[i][j] + 2.0 * Random;
iter := iter +1;
end;
end;
asked Oct 23, 2016 at 8:13
shdotcomshdotcom
1471 silver badge11 bronze badges
5
Look here: V[i][j]:= 5 * V[i][j] + 2.0 * Random;
You make 2000 iterations, so your results might be as large as 7^2000 ~ 10^1690, but max value for Double type is about 10^308. So “Floating point overflow” error is exact diagnosis.
You could see V[] values about 10^307 in debug watch or immediate watch (mouse over V[]) when error occurred.
You can use 10-byte Extended type(probably not available for 64-bit compilers) to avoid overflow for these given variable values, but this is not good solution in general case.
Aside note: You did not set i index value for this code piece:
for j:=0 to d-1 do
begin
X[i][j]:= Lower + (Upper - Lower) * Random;
V[i][j] := 0.1 * X[i][j];
end;
answered Oct 23, 2016 at 8:52
MBoMBo
76.7k5 gold badges51 silver badges84 bronze badges
0 / 0 / 0 Регистрация: 21.04.2015 Сообщений: 20 |
|
1 |
|
24.12.2017, 18:30. Показов 3187. Ответов 4
Здраствуйте помогите мне с программой при считывании у меня выходит ошибка «floating point overflow».
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
24.12.2017, 18:30 |
Ответы с готовыми решениями: Floating point overflow floating point overflow Floating point overflow Floating point overflow 4 |
1073 / 986 / 340 Регистрация: 07.08.2012 Сообщений: 2,790 |
|
24.12.2017, 19:19 |
2 |
Дельфи не признает разделитель «запятая» между целой и дробной частями числа. Миниатюры
0 |
Модератор 1436 / 1011 / 228 Регистрация: 31.05.2013 Сообщений: 6,645 Записей в блоге: 6 |
|
24.12.2017, 19:28 |
3 |
Дельфи не признает разделитель «запятая» между целой и дробной частями числа. Признаёт. Просто Delimiter по умолчанию установлен на «.» . Так что либо установить Delimiter := ‘,’ либо заменить в поле ввода запятую на точку. 1 |
Скандербег 1073 / 986 / 340 Регистрация: 07.08.2012 Сообщений: 2,790 |
||||
24.12.2017, 20:00 |
4 |
|||
Да, действительно, можно изменить умолчальный разделитель, но попробуйте это популярно растолковать новичкам. —
0 |
пофигист широкого профиля 4599 / 3059 / 850 Регистрация: 15.07.2013 Сообщений: 17,631 |
|
25.12.2017, 02:33 |
5 |
Скандербег, Matan!, 0 |
Умея
пользоваться массивами, условными
операторами и операторами цикла, вы
можете писать довольно серьезные
программы. При выполнении этих программ
неизбежно будут возникать критические
ошибки, приводящие к аварийному завершению
программы. Такие ошибки по английски
называются Run-time errors — ошибки времени
выполнения. Рассмотрим пока только
наиболее часто встречающиеся арифметические
ошибки:
Division
by zero — код ошибки 200;
Arithmetic
overflow — код ошибки 215;
Range
check error — код ошибки 201;
Floating
point overflow — код ошибки 205;
Invalid
floating point operation — код ошибки 207.
Ошибка
Division
by zero
— деление на ноль — возникает при выполнении
операций DIV,
MOD
и /,
когда делитель равен нулю.
Ошибка
Arithmetic overflow
— целочисленное переполнение — возникает
при выполнении арифметической операции
над целыми числами, когда результат
операции выходит за границы соответствующего
типа. Такая ошибка произойдет, например,
при выполнении программы
VAR
a,b : Word; c : Integer; BEGIN a:=100; b:=200; c:=a-b; END.
Ошибка
произошла, когда вычислилось значение
выражения a-b,
равное -100.
Мы знаем, что при выполнении операции
над операндами типа Word
результат будет иметь тип Word,
а -100 не является допустимым значением
этого типа. То обстоятельство, что это
значение мы собирались присвоить
переменной типа Integer,
не
имеет значения, т.к. ошибка произошла
до
присваивания. Интересно, что, если
описать a
и
b
как
Byte,
то ошибки не будет (см. таблицу 2 в главе
5).
Ошибка
Range
check error
— ошибка проверки диапазона — происходит
в двух случаях. Во-первых, при попытке
присвоить целочисленной переменной
недопустимое значение, и, во-вторых, при
использовании недопустимого индексного
выражения для элемента любого массива.
Проиллюстрируем оба эти случая на
простых примерах.
VAR
a,b,c : Word; BEGIN a:=$FFFF; b:=1; c:=a+b; END.
Мы
попытались присвоить переменной типа
Word
значение 65536, которое не является
допустимым для этого типа.
VAR
x : ARRAY[2..8] OF Real; i : Byte;
BEGIN
FOR i:=8 DOWNTO 1 DO x[i]:=Sqrt(i); END.
Ошибка
произошла при обращении к первому
элементу массива, который не существует.
Фактически этот второй случай полностью
аналогичен первому — мы попытались
«присвоить» индексу массива, тип
которого-2..8, значение 1.
Ошибка
Floating
point overflow
— вещественное переполнение — возникает
при выполнении операции над вещественными
числами, когда результат операции
слишком велик, или при попытке присвоить
вещественной переменной слишком большое
значение. Когда речь идет о вещественных
числах, термин «слишком большое»
следует понимать как большое по абсолютной
величине — знак числа не имеет значения.
Приведем пример программы, содержащей
такую ошибку.
VAR
r : Real; BEGIN r:=-1E20; r:=Sqr(r); END.
При
возведении в квадрат величины r
мы получим слишком большое для типа
Real
число
1E40.
Ошибка
Invalid
floating point operation
возникает в трех случаях:
1)
при вычислении корня из отрицательного
числа;
2)
при вычислении логарифма неположительного
числа;
3)
при вычислении функций Trunc и Round от
слишком большого (по абсолютной величине)
вещественного числа. Эта ошибка довольно
очевидна, и мы не станем ее иллюстрировать.
Как
же должен поступать программист, когда
при выполнении его программы возникают
ошибки? Прежде всего нужно локализовать
ошибку, то есть найти оператор, в котором
она произошла. В этом вам может помочь
среда Turbo Pascal, если в ней правильно
установлены опции
компилятора.
Опции компилятора позволяют изменять
режим компиляции и задаются в подменю
Compiler
меню Options
среды Turbo Pascal. Пока нас будут интересовать
лишь пять опций: Range
checking,
Stack
cheking,
I/O
checking,
Overflow
checking,
Debug
information.
Если они включены, то настройка среды
благоприятна для отладки вашей программы.
Если они выключены, то их обязательно
следует включить, а еще лучше задать их
непосредственно в тексте своей программы.
Опции записываются в программе в виде:
{$
буква
+
/ —
}
Каждой
опции соответствует своя буква (эти
буквы выделены в подменю Compiler
цветом), символ «+» означает включить,
а символ «-» — выключить. В программе
можно задать одну опцию, например, {$R+}
или несколько опций — {$R+,I-,S+}
. Некоторые опции можно записывать
только в самом начале программы, другие
могут размещаться в любом ее месте.
Опция
Range
checking
(R) отвечает за контроль ошибок Range
check error,
Overflow
checking
(C) — за контроль ошибок Ariphmetic
overflow,
I/O
cheking
(I) — за контроль ошибок ввода-вывода.
Смысл опции Stack
cheking
(S) будет объяснен несколько позже, а
опция Debug
information
(D) включает в код программы отладочную
информацию, что позволяет среде Turbo
Pascal при аварийном завершении программы
показать курсором оператор, в котором
произошла ошибка. Позаботьтесь, чтобы
при отладке программы перед первым ее
оператором была строка {$R+,C+,I+,S+,D+}
— это поможет вам найти и устранить все
ошибки. Некоторые неопытные программисты
выключают эти опции, тогда программа
не прерывается при некоторых ошибках,
а продолжает выполняться, на этом
основании делается вывод, что программа
верна. Это самообман — программа
выполняется, но выполняется неправильно
и никак не сообщает об ошибках.
Соседние файлы в папке Учебники
- #
- #
Maybe you need to debug an implementation of an algorithm where you may have made a coding mistake and want to trace the floating point computations being carried out. Maybe you need a hook to inspect all values being operated on, looking for values that appear to be out of the range you expect. In C++ you can define your own floating point
class and use operator overloading to write your calculations in a natural way, while retaining the ability to inspect all calculations.
For example, here’s a program that defines an FP
class, and prints out all additions and multiplications.
#include <iostream>
struct FP {
double value;
FP( double value ) : value(value) {}
};
std::ostream & operator<< ( std::ostream &o, const FP &x ) { o << x.value; return o; }
FP operator+( const FP & lhs, const FP & rhs ) {
FP sum( lhs.value + rhs.value );
std::cout << "lhs=" << lhs.value << " rhs=" << rhs.value << " sum=" << sum << std::endl;
return sum;
}
FP operator*( const FP & lhs, const FP & rhs ) {
FP product( lhs.value * rhs.value );
std::cout << "lhs=" << lhs.value << " rhs=" << rhs.value << " product=" << product << std::endl;
return product;
}
int main() {
FP x = 2.0;
FP y = 3.0;
std::cout << "answer=" << x + 2 * y << std::endl;
return 0;
}
Which prints
lhs=2 rhs=3 product=6
lhs=2 rhs=6 sum=8
answer=8
Update: I’ve enhanced the program (on x86) to show the floating point status flags after each floating point operation (only implemented addition and multiplication, others could be easily added).
#include <iostream>
struct MXCSR {
unsigned value;
enum Flags {
IE = 0, // Invalid Operation Flag
DE = 1, // Denormal Flag
ZE = 2, // Divide By Zero Flag
OE = 3, // Overflow Flag
UE = 4, // Underflow Flag
PE = 5, // Precision Flag
};
};
std::ostream & operator<< ( std::ostream &o, const MXCSR &x ) {
if (x.value & (1<<MXCSR::IE)) o << " Invalid";
if (x.value & (1<<MXCSR::DE)) o << " Denormal";
if (x.value & (1<<MXCSR::ZE)) o << " Divide-by-Zero";
if (x.value & (1<<MXCSR::OE)) o << " Overflow";
if (x.value & (1<<MXCSR::UE)) o << " Underflow";
if (x.value & (1<<MXCSR::PE)) o << " Precision";
return o;
}
struct FP {
double value;
FP( double value ) : value(value) {}
};
std::ostream & operator<< ( std::ostream &o, const FP &x ) { o << x.value; return o; }
FP operator+( const FP & lhs, const FP & rhs ) {
FP sum( lhs.value );
MXCSR mxcsr, new_mxcsr;
asm ( "movsd %0, %%xmm0 nt"
"addsd %3, %%xmm0 nt"
"movsd %%xmm0, %0 nt"
"stmxcsr %1 nt"
"stmxcsr %2 nt"
"andl $0xffffffc0,%2 nt"
"ldmxcsr %2 nt"
: "=m" (sum.value), "=m" (mxcsr.value), "=m" (new_mxcsr.value)
: "m" (rhs.value)
: "xmm0", "cc" );
std::cout << "lhs=" << lhs.value
<< " rhs=" << rhs.value
<< " sum=" << sum
<< mxcsr
<< std::endl;
return sum;
}
FP operator*( const FP & lhs, const FP & rhs ) {
FP product( lhs.value );
MXCSR mxcsr, new_mxcsr;
asm ( "movsd %0, %%xmm0 nt"
"mulsd %3, %%xmm0 nt"
"movsd %%xmm0, %0 nt"
"stmxcsr %1 nt"
"stmxcsr %2 nt"
"andl $0xffffffc0,%2 nt"
"ldmxcsr %2 nt"
: "=m" (product.value), "=m" (mxcsr.value), "=m" (new_mxcsr.value)
: "m" (rhs.value)
: "xmm0", "cc" );
std::cout << "lhs=" << lhs.value
<< " rhs=" << rhs.value
<< " product=" << product
<< mxcsr
<< std::endl;
return product;
}
int main() {
FP x = 2.0;
FP y = 3.9;
std::cout << "answer=" << x + 2.1 * y << std::endl;
std::cout << "answer=" << x + 2 * x << std::endl;
FP z = 1;
for( int i=0; i<310; ++i) {
std::cout << "i=" << i << " z=" << z << std::endl;
z = 10 * z;
}
return 0;
}
The last loop multiplies a number by 10
enough times to show overflow happen. You’ll notice precision errors happen as well. It ends with the value being infinity once it overflows.
Here’s the tail of the output
lhs=10 rhs=1e+305 product=1e+306 Precision
i=306 z=1e+306
lhs=10 rhs=1e+306 product=1e+307
i=307 z=1e+307
lhs=10 rhs=1e+307 product=1e+308 Precision
i=308 z=1e+308
lhs=10 rhs=1e+308 product=inf Overflow Precision
i=309 z=inf
lhs=10 rhs=inf product=inf
10
13 марта 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Dmitri
Разделитель в системах один, я его еще в конструкторе формы определяю.
ИМХО, если где-то в программе производится ввод данных, это не совсем корректно с точки зрения конечного пользователя. Но, не будем спорить по данной теме. Мы на работе стараемся писать программы таким образом, чтобы они работали независимо от локальных настроек разделителей.
Цитата:
Originally posted by Dmitri
А клинит программу на таком участке кода:
Код:
a[o+1]=b*(c[n]-d[i+1])/(5.0*e);
А каковы значения на данном участке кода? Надо их вывести и проанализировать. Возможно, действительно происходит переполнение при вещественном умножении или делении.
Кстати, чем определяются данные для вычисления данного выражения? Читаются из локальной базы или файла?
Цитата:
Originally posted by Dmitri
В смысле? Использует ли она runtime packages и dynamic rtl? Или что вы имели в виду? В любом случае прога на одном компе работает (w98), а на другом не работает (wxp).
Да, это. Возможно, на разных платформах по-разному работает один и тот же код. Хотя, тут приходят веселые мысли об «ошибке в процессоре/сопроцессоре».
Цитата:
Originally posted by Dmitri
Причем, ВНИМАНИЕ: раньше этот же кусок кода, на котором происходит overflow нормально работал на обеих системах. И он не менялся… В чем же тогда собака зарыта???
Если ничего не поможет, придется тебе привести код ассемблера для данной строки (результат работы компилятора). Кстати, на используемых машинах одинаковые процессоры или нет?
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2016 Enterprise Core SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Standard More…Less
Symptoms
Consider the following scenario:
-
You use In-Memory OLTP in Microsoft SQL Server.
-
You create a natively compiled module, such as a natively compiled user-defined function, that uses EXP functions.
-
You refer to that natively compiled module in another natively compiled module.
In this scenario, when you run the second natively compiled module, you receive an error message that resembles the following:
Msg 41328, Level 16, State 0
A floating point operation has overflowed.
Resolution
This issue is fixed in the following cumulative update for SQL Server:
Cumulative Update 7 for SQL Server 2017
Cumulative Update 1 for SQL Server 2016 SP2
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the «Applies to» section.
References
Learn about the standard terminology Microsoft uses to describe software updates.
Need more help?
Умея
пользоваться массивами, условными
операторами и операторами цикла, вы
можете писать довольно серьезные
программы. При выполнении этих программ
неизбежно будут возникать критические
ошибки, приводящие к аварийному завершению
программы. Такие ошибки по английски
называются Run-time errors — ошибки времени
выполнения. Рассмотрим пока только
наиболее часто встречающиеся арифметические
ошибки:
Division
by zero — код ошибки 200;
Arithmetic
overflow — код ошибки 215;
Range
check error — код ошибки 201;
Floating
point overflow — код ошибки 205;
Invalid
floating point operation — код ошибки 207.
Ошибка
Division
by zero
— деление на ноль — возникает при выполнении
операций DIV,
MOD
и /,
когда делитель равен нулю.
Ошибка
Arithmetic overflow
— целочисленное переполнение — возникает
при выполнении арифметической операции
над целыми числами, когда результат
операции выходит за границы соответствующего
типа. Такая ошибка произойдет, например,
при выполнении программы
VAR
a,b : Word; c : Integer; BEGIN a:=100; b:=200; c:=a-b; END.
Ошибка
произошла, когда вычислилось значение
выражения a-b,
равное -100.
Мы знаем, что при выполнении операции
над операндами типа Word
результат будет иметь тип Word,
а -100 не является допустимым значением
этого типа. То обстоятельство, что это
значение мы собирались присвоить
переменной типа Integer,
не
имеет значения, т.к. ошибка произошла
до
присваивания. Интересно, что, если
описать a
и
b
как
Byte,
то ошибки не будет (см. таблицу 2 в главе
5).
Ошибка
Range
check error
— ошибка проверки диапазона — происходит
в двух случаях. Во-первых, при попытке
присвоить целочисленной переменной
недопустимое значение, и, во-вторых, при
использовании недопустимого индексного
выражения для элемента любого массива.
Проиллюстрируем оба эти случая на
простых примерах.
VAR
a,b,c : Word; BEGIN a:=$FFFF; b:=1; c:=a+b; END.
Мы
попытались присвоить переменной типа
Word
значение 65536, которое не является
допустимым для этого типа.
VAR
x : ARRAY[2..8] OF Real; i : Byte;
BEGIN
FOR i:=8 DOWNTO 1 DO x[i]:=Sqrt(i); END.
Ошибка
произошла при обращении к первому
элементу массива, который не существует.
Фактически этот второй случай полностью
аналогичен первому — мы попытались
«присвоить» индексу массива, тип
которого-2..8, значение 1.
Ошибка
Floating
point overflow
— вещественное переполнение — возникает
при выполнении операции над вещественными
числами, когда результат операции
слишком велик, или при попытке присвоить
вещественной переменной слишком большое
значение. Когда речь идет о вещественных
числах, термин «слишком большое»
следует понимать как большое по абсолютной
величине — знак числа не имеет значения.
Приведем пример программы, содержащей
такую ошибку.
VAR
r : Real; BEGIN r:=-1E20; r:=Sqr(r); END.
При
возведении в квадрат величины r
мы получим слишком большое для типа
Real
число
1E40.
Ошибка
Invalid
floating point operation
возникает в трех случаях:
1)
при вычислении корня из отрицательного
числа;
2)
при вычислении логарифма неположительного
числа;
3)
при вычислении функций Trunc и Round от
слишком большого (по абсолютной величине)
вещественного числа. Эта ошибка довольно
очевидна, и мы не станем ее иллюстрировать.
Как
же должен поступать программист, когда
при выполнении его программы возникают
ошибки? Прежде всего нужно локализовать
ошибку, то есть найти оператор, в котором
она произошла. В этом вам может помочь
среда Turbo Pascal, если в ней правильно
установлены опции
компилятора.
Опции компилятора позволяют изменять
режим компиляции и задаются в подменю
Compiler
меню Options
среды Turbo Pascal. Пока нас будут интересовать
лишь пять опций: Range
checking,
Stack
cheking,
I/O
checking,
Overflow
checking,
Debug
information.
Если они включены, то настройка среды
благоприятна для отладки вашей программы.
Если они выключены, то их обязательно
следует включить, а еще лучше задать их
непосредственно в тексте своей программы.
Опции записываются в программе в виде:
{$
буква
+
/ —
}
Каждой
опции соответствует своя буква (эти
буквы выделены в подменю Compiler
цветом), символ «+» означает включить,
а символ «-» — выключить. В программе
можно задать одну опцию, например, {$R+}
или несколько опций — {$R+,I-,S+}
. Некоторые опции можно записывать
только в самом начале программы, другие
могут размещаться в любом ее месте.
Опция
Range
checking
(R) отвечает за контроль ошибок Range
check error,
Overflow
checking
(C) — за контроль ошибок Ariphmetic
overflow,
I/O
cheking
(I) — за контроль ошибок ввода-вывода.
Смысл опции Stack
cheking
(S) будет объяснен несколько позже, а
опция Debug
information
(D) включает в код программы отладочную
информацию, что позволяет среде Turbo
Pascal при аварийном завершении программы
показать курсором оператор, в котором
произошла ошибка. Позаботьтесь, чтобы
при отладке программы перед первым ее
оператором была строка {$R+,C+,I+,S+,D+}
— это поможет вам найти и устранить все
ошибки. Некоторые неопытные программисты
выключают эти опции, тогда программа
не прерывается при некоторых ошибках,
а продолжает выполняться, на этом
основании делается вывод, что программа
верна. Это самообман — программа
выполняется, но выполняется неправильно
и никак не сообщает об ошибках.
Соседние файлы в папке Учебники
- #
- #
Автор:
vin_erra,
25 сентября 2011 в ANSYS CFX
-
Ответить в тему
-
Создать тему
Рекомендованные сообщения
vin_erra
0
-
- Жалоба
- Рассказать
Здравствуйте уважаемые форумчане)
я произвожу расчет в Cfx входного аппарата компрессора. и в Solver он мне выдает ошибку «Floating point exception: Overflow «. сначала он мне выдал это после 6 итерации. тогда я сменила модель турбулентности с к-эпсилон на SST, он посчитал тогда уже 28 итераций и снова выдал мне эту же ошибку.
чем это может быть вызвано и что в этом случае можно предпринять??
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
stydentium
0
-
- Жалоба
- Рассказать
Проверьте масштабы импортируемой в CFX модели… или какая-то из входных/выходных переменных из ГУ задана не в тех единицах…
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
- 1 месяц спустя…
Red Ember
0
-
- Жалоба
- Рассказать
не так давно столкнулся с этим при задании теплового потока. потом глянул (я его через expressions задавал) — ба! ошибся на порядок в формуле для теплоемкости, после чего тепловой поток расходится просто астрономически)))
Проверьте физические величины (например, если задавали материалы и их свойства), поставьте точки для отслеживания величин различных параметров
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
sergeyd
3
-
- Жалоба
- Рассказать
для начала нужно посмотреть сетку. Вероятно, она излишне груба.
sst менее требовательна к ее качеству. и вытерпела дольше.
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
Doomed
0
-
- Жалоба
- Рассказать
Ошибка «Floating point exception: Overflow» обычно означает, что какая то расчетная величина превысила допустимые пределы.
Это бывает если есть плохой элемент в сетке и в этом месте большая погрешность численной схемы, иногда — если задаете стенку с проскальзыванием, если входные/выходные условия заданы неверно(например иногда при задании входных и выходных условий давлением задача расходится или при задании очень больших скоростей), если вводите дополнительные переменные определяя, например, свойства расчетной среды через expressions и там есть ошибка. Может быть в каком то месте расчета возникло деление на ноль.
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
- 2 недели спустя…
vitefimov
0
-
- Жалоба
- Рассказать
попробуйте уменьшить Phisical Timescale в Solver Control
- Цитата
Ссылка на сообщение
Поделиться на других сайтах
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже.
Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.
-
Сейчас на странице
0 пользователей
Нет пользователей, просматривающих эту страницу.
-
Сообщения
-
Автор:
boomeeeer · Опубликовано: 2 минуты назад
Если привод аналоговый, то скорее всего стороннего производителя, а не сименс и нулевая точка может настраиваться в его параметрах. Встречал такую конфигурацию на Hurco.
-
Автор:
Serval · Опубликовано: 18 минут назад
Добрый день,
Ищу специалистов с хорошим практическими опытом настройки и администрирования Teamcenter. Позиция — в зависимости от опыта — архитектор или инженер-консультант в слаженную профессиональную команду PLM. Проекты стратегические — работа в долгую.
Работодатель: Крупная группа компаний. Разработка+производство. Не бюджетники. Без игр в показуху и замещения. Локация головного офиса — Москва.
Причина поиска: развитие, новые проекты в группе компаний.
Формат работы: очный, удаленный, смешанный.
Гарантируем: Неординарные инженерные задачи, профессиональный рост, отличные (цивилизованные) условия для работы.
Вопросы — в личку
-
-
Автор:
gudstartup · Опубликовано: 30 минут назад
Вообще то есть функция M19 и она обычно прописана в подпрограмме смены инструмента.
34090 работает в любом случае так как это смещение референтной точки и ЧПУ обязано его отработать при выполнении позиционирования хотя могут и SPOS использовать это от станкостроителя зависит.
-
Автор:
Maik812 · Опубликовано: 38 минут назад
Зачитывает версии,любые Солида! ТС х64 , Винда 64 и хоть Солид х64 2023 зачитывает написал же.
Менять нельзя их только читать. Данные тоже самое перекидывай в mPDM, а оттуда в компас можно через промежуточный формат step или еще какой.
-
-
Автор:
Student MGOTU · Опубликовано: 58 минут назад
Здравствуйте.
Пытаюсь настроить постпроцессор под Syntec6MB для 4-х осей (ось B).
Достиг того что станок управляет осью B,
Для примера обрабатывал полуцилиндр, и постпроцессор выводит G-код, как будто, не учитывая расстояние от оси поворота до края фрезы
Симуляция в PowerMill идет нормально
В этом окошке я если правильно понял регулируется вылет от оси до патрона
Прошу помощи, подскажите в каком направлении дальше двигаться.
-
-
-
Автор:
ValeryMoscow · Опубликовано: 1 час назад
не знал, но оказывается в дайне можно задавать «ограничения» по степеням свободы только в одной системе координат
кстати , с помощью EFG удалось посчитать даже образование складки на поверхности…. и визуально — это довольно точно совпадает с видеозаписями с экспериментапользуясь случаем, хочу «порекламировать» библиотеку PolyUMod — очень полезная…
-
0 / 0 / 0 Регистрация: 21.04.2015 Сообщений: 20 |
|
1 |
|
24.12.2017, 18:30. Показов 3885. Ответов 4
Здраствуйте помогите мне с программой при считывании у меня выходит ошибка «floating point overflow».
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
24.12.2017, 18:30 |
Ответы с готовыми решениями: Floating point overflow floating point overflow Floating point overflow Floating point overflow 4 |
1073 / 986 / 340 Регистрация: 07.08.2012 Сообщений: 2,790 |
|
24.12.2017, 19:19 |
2 |
Дельфи не признает разделитель «запятая» между целой и дробной частями числа. Миниатюры
0 |
1436 / 1013 / 228 Регистрация: 31.05.2013 Сообщений: 6,645 Записей в блоге: 6 |
|
24.12.2017, 19:28 |
3 |
Дельфи не признает разделитель «запятая» между целой и дробной частями числа. Признаёт. Просто Delimiter по умолчанию установлен на «.» . Так что либо установить Delimiter := ‘,’ либо заменить в поле ввода запятую на точку.
1 |
Скандербег 1073 / 986 / 340 Регистрация: 07.08.2012 Сообщений: 2,790 |
||||
24.12.2017, 20:00 |
4 |
|||
Да, действительно, можно изменить умолчальный разделитель, но попробуйте это популярно растолковать новичкам. —
0 |
пофигист широкого профиля 4658 / 3093 / 854 Регистрация: 15.07.2013 Сообщений: 17,843 |
|
25.12.2017, 02:33 |
5 |
Скандербег, Matan!,
0 |