Создание панелей и приборов — подробный мануал для начинающих? — Панели и приборы

Del

 


Edited by A320_Pilot

Ну вот наделали мы 17 копий нашей вертикальной прямой, наклоняя каждую последующую на 10°. Все 18 прямых (синие) сгруппировали либо соединили вместе (т.е. скомбинировали). Без разницы. Берём 2 вспомогательные линии и комбинируем их. Не группируем — комбинируем! Тут разница есть. Получили кольцо. Можно залить цветом для наглядности. Жмём Shift+Page Up чтобы поместить это кольцо наверх, поверх всего остального. Выделяем вместе и кольцо и синие лучики. Кольцо сверху, лучики под ним. Кнопка «Пересечение» (на скрине Schnittmenge) создаёт новый объект: «вырезает» из нижнего объекта то, что перекрывается верхним, т.е. из соединённых вместе лучиков вырезает только ту часть, что скрывает кольцо. На рисунке получившаяся «вырезка» (почти дословно с немецкого Schnittmenge) — это жёлтые риски. Вот и всё.
Кстати, обратите внимание, что если обрезаемой прямой задать скруглённые кончики, то вырезанные кусочки будут вылезать за кольцо на толщину самой линии.

 

 

UPD: О, гляжу разобрались уже. Чё, как всегда поторопились спросить?  😉  :sarcastic:


Edited by Pleischner

Ага разобрался, вот осталось одно, как это все правильно перенести в corel photo paint?

Нужно просто вывести обе величины — (A:Radio height, feet) и (A:DECISION HEIGHT, feet) на подсказку или в отдельный прибор-дебаггер. Посмотрим, какие они принимают значения, и все станет ясно.

 

В полном варианте он у меня, и высоту показывает, и задатчик высоты тоже работает. И то что он исправно показывает видно по другому радиоальтиметру.

А как тогда это работает? (От Як-18Т)

 

 

<!— ============= Take Off Time in hhmm================= —>

<!—Initial Calulations —>

<Element>

<Select>

<Value>

(A:PLANE ALT ABOVE GROUND, feet) 20 > if{ 0 (> L:GROUND, bool) } els{ 1 (>L:GROUND, bool) }

</Value>

</Select>

</Element>

<Element>

<Select>

<Value>

(L:Start, enum) 0 == (L:GROUND, bool) 0 == && (A:GPS GROUND SPEED, knots) 25 > && if{ 1 (>L:Start, enum) 0 (>L:Land,enum) (P:Local TIME, minutes) (>L:Clocktime, minutes) }

</Value>

</Select>

</Element>

<Element>

<Select>

<Value>

(L:Start, enum) 1 == (L:GROUND, bool) 1 == && if{ 1 (>L:Land, enum) 0 (>L:Start, enum) }

</Value>

</Select>

</Element>

<Element>

<Select>

<Value>

(L:Start, enum) 0 == (L:Land, enum) 0 == && if{ 0 (L:TO_time, minutes) } els{ (L:Clocktime, minutes) (>L:TO_time, minutes) }

</Value>

</Select>

</Element>

<!—Display —>

 

 


Edited by Ievgen

Да, и высотомер работает, и задатчик высоты. Но вот значения этих переменных посмотреть — вот это важно. И сравнить значения «глазами» нужно, тогда станет ясно, почему этот кусок кода работает не так, как хотелось бы.

Ага разобрался, вот осталось одно, как это все правильно перенести в corel photo paint?

 

Ctrl+c >> Ctrl+v

 

Можно Ctrl+e (файл/экспортировать). Я готов отвечать на вопросы по теме и делиться тем, что уже знаю, но такие вот вещи — пардон! Создание панелей и приборов — это одна тема. Работа с графическими редакторами — другая. Нельзя сделать болт, если не умеешь работать на токарном станке.

Видимо просто вопрос не так задал!

В Corel Photo Paint надо каждый обьект битмапа переносить? (Тобеж: шкалу, цифры, надписи и т.д. и т.п.)

Или как?


Edited by A320_Pilot

Да как сами считаете нужным! Почём мне знать, как Вы Вашу работу там строите и какие задачи решаете? В примере, что я описывал, в CorelDraw копировал основу прибора (несколько объектов сразу, они в CDR сгруппированными вставляются) только для наглядности, как подложку. На ней строил там шкалу и только её копировал назад в Photo-Paint. Вот и всё. Только за размерами при копировании туда-сюда следить надо.
Вы попробуйте и так, и сяк. Здесь нельзя шаблонно подходить к вопросу. Убивает креатив. Кому-то чай удобно по часовой стрелке помешивать, а кому-то против, т.е. как Вам лично удобно, так и делайте. А чтобы выяснить, как оно удобнее — нужно пробовать. Причём исключительно самостоятельно. Ведь в итоге-то для чего оно всё делается? Чтоб удовольствие доставляло! Вы ж не за зарплату рисуете-то!

Не получается у меня что то перенести, переношу шкалу, а она переносится с чёрным фоном, и так каждый объект!(

Может я не совсем правильно понял но вот какие результаты у меня получились.

 

<Element>
<Position X=»95″ Y=»125″/>
<Select>
<Value>(A:Radio height, feet) (A:DECISION HEIGHT, feet) <</Value>
<Case Value=»1″>
<Image Name=»3on.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
<Case Value=»0″>
<Image Name=»3offa.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
</Select>
</Element>

 

Это работает правильно. Но если прописать ИФ вместо кейс получается картина другая.

 

В условиях на картинке Джи вар 2 должна быть желтой. Что, к сожалению и не работает.

 

 

<Gauge Name=»Jmen» Version=»1.0″>
<Image Name=»Main.bmp» ImageSizes=»296,644,0,0″/>

<!—==Radio Altimeter==—>

<Element>
<Position X=»74″ Y=»125″/>
<MaskImage ImageSizes=»151,367,0,0″ Name=»Main_BG_ALT.bmp»>
<Axis X=»37″ Y=»190″/>
</MaskImage>
<Image ImageSizes=»113,5291,0,0″ Name=»Liner.bmp»>
<Nonlinearity>
<Item Value=»2700″ X=»0″ Y=»194″/>
<Item Value=»0″ X=»0″ Y=»5054″/>
</Nonlinearity>
</Image>
<Shift>
<Value Minimum=»0″ Maximum=»2700″>(A:Radio height, feet)</Value>
</Shift>
</Element>

<!—==Decision Height==—>

<Element>
<Position X=»96″ Y=»536″/>
<MaskImage Name=»Main_BG_AD.bmp» ImageSizes=»70,36,0,0″>
<Axis X=»2″ Y=»2″/>
</MaskImage>
<Image Name=»numbers0.bmp» ImageSizes=»22,194,0,0″>
<Nonlinearity>
<Item Value=»5″ X=»0″ Y=»0″/>
<Item Value=»0″ X=»0″ Y=»160″/>
</Nonlinearity>
</Image>
<Shift>
<Value Minimum=»0″ Maximum=»500″>(A:DECISION HEIGHT, feet) 100 / int </Value>
</Shift>
</Element>
<Element>
<Position X=»96″ Y=»536″/>
<MaskImage Name=»Main_BG_AD.bmp» ImageSizes=»70,36,0,0″>
<Axis X=»24″ Y=»2″/>
</MaskImage>
<Image Name=»numbers.bmp» ImageSizes=»22,320,0,0″>
<Nonlinearity>
<Item Value=»1″ X=»0″ Y=»256″/>
<Item Value=»0″ X=»0″ Y=»288″/>
</Nonlinearity>
</Image>
<Shift>
<Value Minimum=»0″ Maximum=»500″>(A:DECISION HEIGHT, feet) 10 / int 10 % </Value>
</Shift>
</Element>
<Element>
<Position X=»96″ Y=»536″/>
<MaskImage Name=»Main_BG_AD.bmp» ImageSizes=»70,36,0,0″>
<Axis X=»46″ Y=»2″/>
</MaskImage>
<Image Name=»numbers.bmp» Luminous=»Yes» ImageSizes=»22,320,0,0″>
<Nonlinearity>
<Item Value=»1″ X=»0″ Y=»256″/>
<Item Value=»0″ X=»0″ Y=»288″/>
</Nonlinearity>
</Image>
<Shift>
<Value Minimum=»0″ Maximum=»500″>(A:DECISION HEIGHT, feet) 1 / int 10 % </Value>
</Shift>
</Element>

<!—==Decision Heghit off==—>

<Element>
<Position X=»96″ Y=»536″/>
<MaskImage Name=»Main_BG_AD.bmp» ImageSizes=»70,36,0,0″>
<Axis X=»2″ Y=»2″/>
</MaskImage>
<Image Name=»1.bmp» Luminous=»Yes» ImageSizes=»66,66,0,0″>
<Nonlinearity>
<Item Value=»1″ X=»0″ Y=»0″/>
<Item Value=»0″ X=»0″ Y=»33″/>
</Nonlinearity>
</Image>
<Shift>
<Value Minimum=»0″ Maximum=»500″>(A:DECISION HEIGHT, feet)</Value>
</Shift>
</Element>

<!—==Decision Heghit select==—>

<Element>
<Position X=»223″ Y=»562″/>
<Image Name=»Adjust.bmp» PointsTo=»North» ImageSizes=»79,79,0,0″>
<Axis X=»39″ Y=»39″/>
</Image>
<Rotate>
<Value>(A:DECISION HEIGHT, feet)</Value>
<Nonlinearity>
<Item Value=»0″ X=»223″ Y=»523″/>
<Item Value=»25″ X=»262″ Y=»562″/>
<Item Value=»50″ X=»223″ Y=»601″/>
<Item Value=»75″ X=»184″ Y=»562″/>
<Item Value=»100″ X=»223″ Y=»523″/>
</Nonlinearity>
<Delay DegreesPerSecond=»180″/>
</Rotate>
</Element>

<!—====DH botton===—>
<Element>
<Select>
<Value>(A:Radio height, feet) (A:DECISION HEIGHT, feet) < if { 1 (>G:Var1) } els { 0 (>G:Var1) } </Value>
</Select>
</Element>
<Element>
<Select>
<Value>(G:Var1) 1 == (G:Var3) 1 == && if { 1 (>G:Var2) } els { 0 (>G:Var2) } </Value>
</Select>
</Element>
<Element>
<Select>
<Value>(G:Var1) 0 == if { 1 (>G:Var3) } </Value>
</Select>
</Element>
<Element>
<Position X=»95″ Y=»92″/>
<Select>
<Value>(G:Var1) </Value>
<Case Value=»1″>
<Image Name=»3on.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
<Case Value=»0″>
<Image Name=»3offa.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
</Select>
</Element>
<Element>
<Position X=»95″ Y=»26″/>
<Select>
<Value>(G:Var2) </Value>
<Case Value=»1″>
<Image Name=»3on.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
<Case Value=»0″>
<Image Name=»3offa.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
</Select>
</Element>
<Element>
<Position X=»95″ Y=»59″/>
<Select>
<Value>(G:Var3) </Value>
<Case Value=»1″>
<Image Name=»3on.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
<Case Value=»0″>
<Image Name=»3offa.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
</Select>
</Element>
<!—====AirCraft===—>

<Element>
<Position X=»76″ Y=»295″/>
<Image Name=»AirCraft.bmp» ImageSizes=»148,23,0,0″>
</Image>
</Element>
<!—===Test====—>

<Element>
<Visible>(A:Radio height, feet) 100 >= </Visible>
<Position X=»44″ Y=»141″/>
<Text X=»92″ Y=»46″ Bright=»Yes» Length=»3″ Font=»Quartz» FontWeight=»600″ Color=»Red» Adjust=»Center» VerticalAdjust=»Center» Multiline=»No» Fixed=»No»>
<String>%((A:Radio height, feet) )%!3d!</String>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action=»»/>
</Failures>
</Text>
</Element>
<Element>
<Visible>(A:Radio height, feet) 100 < </Visible>
<Position X=»44″ Y=»141″/>
<Text X=»92″ Y=»46″ Bright=»Yes» Length=»4″ Font=»Quartz» FontWeight=»600″ Color=»Red» Adjust=»Center» VerticalAdjust=»Center» Multiline=»No» Fixed=»No»>
<String>%((A:Radio height, feet) )%!3.1f!</String>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action=»»/>
</Failures>
</Text>
</Element>

<Element>
<Visible>(A:DECISION HEIGHT, feet) 100 >= </Visible>
<Position X=»159″ Y=»141″/>
<Text X=»92″ Y=»46″ Bright=»Yes» Length=»3″ Font=»Quartz» FontWeight=»600″ Color=»Red» Adjust=»Center» VerticalAdjust=»Center» Multiline=»No» Fixed=»No»>
<String>%((A:DECISION HEIGHT, feet) )%!3d!</String>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action=»»/>
</Failures>
</Text>
</Element>
<Element>
<Visible>(A:DECISION HEIGHT, feet) 100 < </Visible>
<Position X=»159″ Y=»141″/>
<Text X=»92″ Y=»46″ Bright=»Yes» Length=»4″ Font=»Quartz» FontWeight=»600″ Color=»Red» Adjust=»Center» VerticalAdjust=»Center» Multiline=»No» Fixed=»No»>
<String>%((A:DECISION HEIGHT, feet) )%!3.1f!</String>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action=»»/>
</Failures>
</Text>
</Element>

<!—===========================================Mause==============================================—>
<Mouse>
<!—===Test_Botton===—>
<!—===========Lamp_res_Botton===========—>
<!—=========DH_Set============—>
<Area Left=»95″ Top=»25″ Width=»106″ Height=»33″>
<Cursor Type=»Hand»/>
<Click>(G:Var3) ! (>G:Var3)
</Click>
</Area>
<!—=========DH_Set============—>
<Area Left=»184″ Top=»602″ Width=»79″ Height=»41″>
<Cursor Type=»DownArrow»/>
<Click Repeat=»Yes»>(A:Decision height, feet) 1 < if{ quit } 1 (>K:DECREASE_DECISION_HEIGHT)</Click>
</Area>
<Area Left=»184″ Top=»482″ Width=»79″ Height=»41″>
<Cursor Type=»UpArrow»/>
<Click Repeat=»Yes»>(A:Decision height, feet) 499 > if{ quit } 1 (>K:INCREASE_DECISION_HEIGHT)</Click>
</Area>
</Mouse>
</Gauge>

 

 

 

post-82833-0-86519200-1368957277.jpg

В XML нельзя подгружать текстуру иначе, как в блоке <Select>… <Case></Case>…</Select> . Использование здесь оператора if{…} els{…} не верно в корне.

 

Проверьте ВСЕ значения, в том числе и (G:Var1), (G:Var2) и (G:Var3). В коде у Вас значения (G:Var1) и (G:Var3) связаны:

 

 

<Value>(G:Var1) 0 == if { 1 (>G:Var3) } </Value>

 

Может быть, дело в этом?

Не получается у меня что то перенести, переношу шкалу, а она переносится с чёрным фоном, и так каждый объект!(

 

Не знаю, в чём проблема. Навскидку не скажу, а разбираться (тем более заочно), почему у меня работает, а у Вас нет, можно очень долго. Если честно, есть куда более срочные вещи. Между прочим если не отвечаю в теме — значит просто нет ответа, а не потому что не хочется. ЛС тут никак не поможет.

Если векторные линии или шрифт — чего угодно! — копировать в буфер, затем открыть нужный файл в Photo-Paint и вставить их туда новым слоем (Ctrl+v) — никаких чёрных фонов нет и в помине. Это совершенно точно. Появляется диалоговое окно, где можно задать нужный размер, антиалайзинг и пр. И вся любовь.

Вот насчет «нужного» файла не могу понять, какой открывать?

Если Вам нужен просто битмап прибора — рисуйте всё только в CorelDraw и не мрочьте людям голову. Если нужен не просто кружок со шкалой, а артворк — то прибор нужно рисовать в Photo-Paint. И вот в тот файл Photo-Paint, в котором рисуете ваш будильник, и вставляете шкалу! Что непонятного? Скрин к п.7 под спойлером. Finiamo punto e basta!

Ну я в корел дро прибор и рисую

 

Просто раньше я делал весь прибор в корел дро, а в фотопеинте только эффекты добавлял

Вот что у меня на данный момент

deb8e91b70273a5fc3667b230fe107d0.jpg

Забавный результат получился:

 

<Element>
<Position X=»95″ Y=»125″/>
<Select>
<Value>(A:Radio height, feet) (A:DECISION HEIGHT, feet) < if { 1 (>G:Var2) } els { 0 (>G:Var2) }</Value>
<Case Value=»1″>
<Image Name=»3on.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
<Case Value=»0″>
<Image Name=»3offa.bmp» Bright=»Yes» ImageSizes=»106,33,0,0″/>
</Case>
</Select>
</Element>

 

«Кейс» получает параметр «1», а Джи:Вар2 все равно присваивает «0».

после иф — елс не должно быть пробелов

Алелуя!!!
Как то, «температурил» у нас движок (ТВГ была на 20-30 градусов больше второго, но не выходили за предельно допустимые). Переменяли почти всё на двигателе, оставался FCU (Фюэл Контрол Юнит), которого не было на складе. Да и менять его еще тот геморрой. Но как говорится чудес не бывает… Поменяли и его; и дефект ушел.
Короче говоря заработало всё как задумано после того, как правильно расставил пробелы.
Огромное Спасибо Wishmaster.


Edited by Ievgen

Вопрос — Скачал чудесный tutorxmlgau.zip и XML programming.zip Там говорится о логических вычислениях && и || (но к сожалению без примеров).У мну почему то работает только ||. А если использую && вместо || так прибор вообще не прорисовывается. Где умные книжки меня «разводят»?

Пробовал писать вместо знаков, — «or» и «and». Их он распознает как значение ноль для Value.

Второй вопрос. Мне надо придавать параметру L значение 0 или 1. Для этого я юзаю строчку <Cleak>1 (>L:Lamp Reset, bool) </Cleak>. Чёта не работает?!. Может я где, чего, не до читал/понял.

 

Может есть еще какие книги по этому поводу? Желательно с примерами.

А что за XML programming.zip , можно ссылку?

Где скачал не помню…

tutorxmlgau.zipXML programming.zip

Какой-то из них, вроде бы с авсима.

Где скачал не помню…

attachicon.giftutorxmlgau.zipattachicon.gifXML programming.zip

Какой-то из них, вроде бы с авсима.

Спасибо!

a7f2426968f02badfc277f28ca133df3.jpeg
Вот что у меня получилось, подскажите плиз, как правильно ободам прибора придать тень?

а возможно ли как то, на вымышленную переменную назначить клавишу джойстика? и как если не секрет)