Author |
Topic |
|
Renfoold
13 Posts |
Posted - 04/04/2006 : 17:30:20
|
Проблема - например в следующем. Хочу что бы координата PinY всегда была равна дробной части координаты Pinx. (в милиметрах) Только чур формулу в Piny сразу не писать, а делать будем это через промежуточную ячейку. А значение этой промежуточной ячейки будет таким - FORMATEX(PinX;"0.0000";"in";"mm")-INT(FORMATEX(PinX;"0.0000";"in";"mm"))
То что я вижу своими глазами, если смотреть прямо в ячейку получается то что надо.. только нифига не в милиметрах. Как это в милиметры переделать?
Например. Когда Pinx = 5.341 mm. тогда значение промежуточной ячеки с формулой приведенной веше вглядит как 0,341 только не милиметров, а фиг пойми чего. Хочу 0,341 милиметров.
Вопрос может глупый.. но чет я ни разберусь с величинами.. в этой таблице. ...
Всем всего.
|
|
Digitall
Russia
389 Posts |
Posted - 04/04/2006 : 17:49:49
|
quote: Originally posted by Renfoold
Проблема - например в следующем. Хочу что бы координата PinY всегда была равна дробной части координаты Pinx. (в милиметрах) Только чур формулу в Piny сразу не писать, а делать будем это через промежуточную ячейку. А значение этой промежуточной ячейки будет таким - FORMATEX(PinX;"0.0000";"in";"mm")-INT(FORMATEX(PinX;"0.0000";"in";"mm"))
То что я вижу своими глазами, если смотреть прямо в ячейку получается то что надо.. только нифига не в милиметрах. Как это в милиметры переделать?
Например. Когда Pinx = 5.341 mm. тогда значение промежуточной ячеки с формулой приведенной веше вглядит как 0,341 только не милиметров, а фиг пойми чего. Хочу 0,341 милиметров.
Вопрос может глупый.. но чет я ни разберусь с величинами.. в этой таблице. ...
Всем всего.
Добавьте к нулям "u" и все. |
|
|
Renfoold
13 Posts |
Posted - 04/04/2006 : 18:38:01
|
ДОбавил "u" - непроканало! получается очень непонятное значение. Оно равно Pinx точ в точ. Поробуйте сами.
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/04/2006 : 20:33:54
|
У меня работает. Только округляет до дюймов, а показывает в миллиметрах. А может проще вообще с миллиметрами не связываться? Если ввести в одну промежуточную ячейку вот такую формулу Prop.Row_2 = 2,5 mm/1 in то потом можно ссылаться на нее, как на коэффициент и считать все в дюймах Примерно так Prop.Row_1 = (PinX/Prop.Row_2-INT(PinX/Prop.Row_2))*Prop.Row_2 Это значение при движении шейпа по пилообразному закону возрастает от 0 до 2.5 мм. |
|
|
Renfoold
13 Posts |
Posted - 04/05/2006 : 05:11:09
|
:"-( Я щас буду плакать. :-((((((( Это не то ребята.. И еще я не пойму что это за величина Prop.Row_2 = 2,5 mm/1 in . Откуда она придумана? что за константа? Ничего плохого сказать про нее не хочу.. но в самом деле просто не понимаю.
Мне нужна целая часть Pinx. В милиметрах. Int(Pinx) считает в дюймах. если это первести в милиметры то они будут не целые. - НЕ КАТИТ!
Int(Formatex(Pinx;"0.00";"in";"mm")) делает правильную целую часть милиметров Pinx. Но только значени в дюймах.
Int(Formatex(Pinx;"0.00 u";"in";"mm")) делает вообще полную ерунду
Дурдом какойто.. Чуваки.. спасите!!!!!!!!
В чем эта дрянь вообще считает кто нибудь может обяснить как оперировать с этими еденицами?.. или где почитать.. что-то толковое???
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/05/2006 : 07:49:09
|
Только плакать не надо, сейчас все объясню... Visio умеет считать только в дюймах! А для того, чтобы общаться с пользователями он может переводить в сантиметры, миллиметры и т.д. Но считает в дюймах. Поэтому фразы типа Int(Formatex(Pinx;"0.00";"in";"mm")) некорректны. --------------------------- Теперь мы говорим: давайте сделаем, чтобы 2,5 мм было похоже на один дюйм (введем коэффициент). Тогда Visio будет считать (и округлять свои дюймы), а на самом деле это будут "два-с-половиной-миллиметры". А мы всегда можем привести результат к нормальной шкале. Вот я отвел ячеечку в Custom Properties (для лучшего наблюдения) и ввалил в нее 2,5 mm/1 in. Не стал вводить этот коэффициент в виде числа, потому что так будет гораздо точнее. Я, правда, почему-то думал, что нужна целая часть PinX не в миллиметрах, а в "два-с-половиной-миллиметрах" :) . Для миллиметров нужно = 1 mm / 1 in. (дальше не успеваю, бегу на работу...) |
|
|
Renfoold
13 Posts |
Posted - 04/05/2006 : 10:18:50
|
Благодарю.. тебя человек. :-) Я уже не плачу. Плохо они придумали все вычисления делать в дюймах. На счет коэффициента ясно.. спасибо. Стало ясно после того, как стало ясно, что все в дюймах.
В силу лентяйства и в силу того что ни кто меня не обязываеть рисовать в метрической системе - ушел я в дюймовую. формулы короче стали. :-) Придется с этим жить. Но вообще это полный глюк!!!!
Неужели нельзя ни где поправить какойнить файл или типа того что бы все стал в милиметрах???
Кстати проблема "ВСЕГДА ПО СЕТКЕ" тоже замечательно решилась. Вот так. Это если сетка 0,1 in. Сетку можно вынести в отдельную ячейку. Или завести эту ячейку в листе.. или типа того.
=IF(PinX-INT(PinX/0.1)*0.1<>0,SETF(GetRef(PinX),PinX+0.1-(PinX-INT(PinX/0.1)*0.1)),PinX)
=IF(PinY-INT(PinY/0.1)*0.1<>0,SETF(GetRef(PinY),PinY+0.1-(PinY-INT(PinY/0.1)*0.1)),PinY)
Вообще проблем еще много. Я лучше буду новые топики начинать.
С еденицами всем спасибо. :-)
И еще Люди... Кому не в лом... моя аська 145438398 Стукните .. я там часто бываю. Вам это не нужно, Это нужно мне. Хочется задать вопросы по аське... Всем всего.
|
|
|
Renfoold
13 Posts |
Posted - 04/05/2006 : 10:28:20
|
Да и еще.. там же пару слогаемых можно сократить.. если раскрыть скобки.
вот так в итоге.
=IF(PinY-INT(PinY/0.1)*0.1<>0,SETF(GetRef(PinY),0.1+INT(PinY/0.1)*0.1),PinY)
|
|
|
immortal
Russia
391 Posts |
Posted - 04/05/2006 : 10:49:20
|
quote: только нифига не в милиметрах
в миллиметрах, только миллиметры не отображает, чтобы отображало миллиметры есть два варианта: как писал (ударение на букву а) Алексей =FORMATEX(PinX,"0.0000u","in","mm")-INT(FORMATEX(PinX,"0.0000u","in","mm"))
и как ещё можно
=FORMATEX(PinX,"0.0000","in","mm")-INT(FORMATEX(PinX,"0.0000","in","mm"))&"mm"
третий =(FORMATEX(PinX,"0.0000","in","mm")-INT(FORMATEX(PinX,"0.0000","in","mm"))&"mm")*1 ограничивает отображение знаков после запятой
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/05/2006 : 18:40:53
|
Сейчас допишу, чего утром не успел...
Насчет множителя в отдельной ячейке 2,5 mm/1 in - это совсем не обязательно. Это только для понятности. А на самом деле, с учетом того, что делится на единицу (1 in), в той ячейке можно было написать просто 2,5 mm. А еще короче - писать не в отдельной ячейке, а в той же самой. Тогда Prop.Row_1 = (PinX/Prop.Row_2-INT(PinX/Prop.Row_2))*Prop.Row_2 Сократится до Prop.Row_1 = (PinX/2.5 mm-INT(PinX/2.5 mm))*2.5 mm что и делает Immortal в своей формуле :) Я только проиллюстрировал, как Visio внутри это выполняет.
Теперь можно и формулу Renfoold'а перевести в сетку по 2.5 мм =IF(PinY-INT(PinY/2.5 mm)*2.5 mm<>0,SETF(GetRef(PinY),2.5 mm+INT(PinY/2.5 mm)*2.5 mm),PinY) |
|
|
Michael
49 Posts |
Posted - 04/07/2006 : 11:53:33
|
Кстати, IMHO, 1 дюйм это 25,4 мм |
|
|
|
Topic |
|
|
|