Основы Windchill > Поиск в Windchill > Справка по поиску > Диапазон поиска и преобразование базовых единиц измерения
  
Диапазон поиска и преобразование базовых единиц измерения
При выполнении поиска атрибутов с использованием типов значений Вещественное число и Вещественное число с единицей измерения в системе Windchill можно задать определенный диапазон для возвращаемых результатов поиска. Дополнительные сведения см. в разделе Диапазон поиска для чисел.
При поиске значений с типом Вещественное число с единицей измерения диапазон вычисляется на основе базовой единицы измерения. Эта единица измерения может отличаться от отображаемой единицы измерения, которой можно управлять с помощью настроек пользователя. Дополнительные сведения см. в следующих разделах.
Базовые измерения и единицы;
Отображение значений атрибутов с единицами измерения
Различия в отображаемых единицах могут привести к существенным различиям в результатах поиска. Это может также вызвать путаницу в случаях, если пользователи совместно используют данные, но конфигурируют свою среду для использования различных систем измерений.
Рассмотрим следующий пример.
У пользователя Джона отображаемые единицы измерения заданы в системе USCS. При создании или поиске деталей он назначает вес в единицах фунт (фунты).
У пользователя Арнольда отображаемые единицы измерения заданы в системе SI. При создании или поиске деталей он назначает вес в единицах кг (килограммы).
В Windchill базовая единица веса (массы) - килограмм.
Джон и Арнольд работают в одной и той же организации, использующей общие данные.
Арнольд создает следующие детали и задает вес каждой в килограммах:
Наименование
Вес
Arnold_1
0,317515 кг
Arnold_2
0,317548 кг
Arnold_3
0,317562 кг
Arnold_4
0,318 кг
Arnold_5
0,3 кг
Arnold_6
0,3401987 кг
Джон создает следующие детали и задает вес в фунтах:
Наименование
Вес
John_1
0,7 фунта
John_2
0,67 фунта
John_3
0,73 фунта
John_4
0,69 фунта
John_5
0,71 фунта
John_6
0,70 фунта
Отображаемые единицы в сравнении с базовыми единицами
Когда Джон просматривает детали Арнольда, он видит их вес в килограммах, преобразованных в фунты.
Однако вес, который фактически записан в базе данных, - это вес в базовых единицах. Поскольку отображаемые единицы Арнольда совпадают с базовыми единицами, значения веса, которые он ввел, идентичны значениям, сохраненным в базе данных.
Наименование
Вес, введенный Арнольдом
Отображение веса для Джона
Вес, сохраненный в базе данных
Arnold_1
0,317515 кг
0,700001 фунта
0,317515 кг
Arnold_2
0,317548 кг
0,7000003 фунта
0,317548 кг
Arnold_3
0,317562 кг
0,7000034 фунта
0,317562 кг
Arnold_4
0,318 кг
0,701 фунта
0,318 кг
Arnold_5
0,3 кг
0,7 фунта
0,3 кг
Arnold_6
0,3401987 кг
0,7500097 фунта
0,3401987 кг
Однако со стороны Арнольда все это выглядит несколько сложнее. Когда Джон вводит значение веса в фунтах, происходят две вещи:
Windchill преобразовывает входное значение в свою чистую базовую единицу и сохраняет результат в базе данных. Для веса это килограммы с соотношением преобразования: 1 фунт = 0,45359237 килограмма. Поэтому 0,7 фунта записываются в базу данных как 0,317514659 килограмма.
Преобразованный вес округляется до некоторого количества значащих цифр, которые ввел Джон, когда указывал свои входные значения в фунтах. Эта округленная величина отображается в интерфейсе (на информационных страницах, в таблицах и т. д.).
Поэтому то, что видит Арнольд, возможно, отличается от фактического значения, сохраненного в базе данных.
Наименование
Вес, введенный Джоном
Отображение веса для Арнольда
Вес, сохраненный в базе данных
John_1
0,7 фунта
0,3 кг
0,317514659 кг
John_2
0,67 фунта
0,30 кг
0,3039068879 кг
John_3
0,73 фунта
0,33 кг
0,3311224301 кг
John_4
0,69 фунта
0,31 кг
0,3129787353 кг
John_5
0,71 фунта
0,32 кг
0,3220505827 кг
John_6
0,70 фунта
0,32 кг
0,317514659 кг
* 
При округлении преобразованных значений единиц до их отображаемых значений применяются традиционные правила округления. Например: 0,25 округляется до 0,3. Это отличается от округления в диапазонах поиска.
Пример. Поиск с небазовыми единицами
Когда Джон выполняет расширенный поиск по атрибуту Вес, числовой диапазон результатов поиска рассчитывается по их преобразованным эквивалентам.
Например, Джон выполняет поиск в базе данных по атрибуту Вес, используя значение критериев, равное 0,70 фунта:
После того как он нажмет кнопку Поиск, будут выполнены следующие действия.
1. Windchill получает входное значение и преобразовывает его в значение в базовой единице, округленное до любого количества значащих цифр, указанных во входном значении поиска. Это тот же вид округления, который был описан ранее при определении преобразованных отображаемых единиц измерения, которые видит Арнольд. Например:
Полное преобразованное значение равно 0,317514659 кг
Входное значение 0,7 фунта округляется до 0,3 кг
Входное значение 0,70 фунта округляется до 0,32 кг
Входное значение 0,700 фунта округляется до 0,318 кг
2. Диапазон поиска, определенный на основе преобразованной и округленной базовой единицы измерения:
0,70 фунта = 0,32 кг
0,32 кг - диапазон поиска от 0,315 до 0,325 кг (включительно)
3. При возвращении Джону результатов поиска значения веса отображаются как соответствующие значения USCS. Для применяемого диапазона поиска от 0,315 до 0,325 кг возвращается отображаемый диапазон от 0,69445612588 до 0,7165023521 фунта.
* 
Это различие является важным. Если бы в качестве базовой единицы измерения использовались фунты и преобразования не выполнялись, Джон мог бы ожидать, что поиск возвратит намного меньший диапазон: от 0,705 до 0,795 фунта.
Поиск Джона возвращает следующие результаты.
Наименование
Отображаемый вес
John_1
0,7 фунта
John_5
0,71 фунта
* 
Эта деталь не была бы возвращена, если бы преобразование базовой единицы не выполнялось, поскольку она выходит за пределы диапазона от 0,705 до 0,795.
John_6
0,70 фунта
Arnold_1
0,700001 фунта
Arnold_2
0,7000003 фунта
Arnold_3
0,7000034 фунта
Arnold_4
0,701 фунта
Пример. Поиск с базовыми единицами по преобразованным значениям данных
Теперь Арнольд выполняет поиск детали с помощью критериев Вес= 0,317514659кг (это полное преобразование Windchill для 0,70 фунта).
Перед выполнением поиска никаких преобразований не выполняется. В результате Арнольду возвращается намного меньший диапазон: от 0,3175146585 до 0,3175146605.
Наименование
Отображаемый вес
John_1
0,3 кг
John_6
0,32 кг
В этот момент Арнольд мог бы быть в естественном замешательстве:
Почему в результате его поиска возвращена деталь John_1, а не Arnold_5? При просмотре сведений о деталях - у них обеих один и тот же вес: 0,3 кг.
И почему в результате его поиска возвращена деталь John_6, а не John_5? При просмотре сведений о деталях - у них также один и тот же вес: 0,32 кг.
Ответ заключается в том, что Windchill выполняет поиск по значению в базе данных, а не по отображаемому значению.
Наименование
Отображение веса для Арнольда
Вес, сохраненный в базе данных
John_1
0,3 кг
0,317514659 кг
John_2
0,30 кг
0,3039068879 кг
John_3
0,33 кг
0,3311224301 кг
John_4
0,31 кг
0,3129787353 кг
John_5
0,32 кг
0,3220505827 кг
John_6
0,32 кг
0,317514659 кг
Значения в базе данных для деталей John_1 и John_6 в точности соответствуют входному значению поиска. Однако истинное значение для John_5 в базе данных не помещается в диапазон поиска.
Для детали Arnold_5 отображаемое значение и значение в базе данных совпадают: 0,3 кг. Соответственно при вычислении для этого поиска значение Arnold_5 округляется до значения 0,300000000, которое не попадает в диапазон поиска от 0,3175146585 до 0,3175146605.