Jump to content
A320_Pilot

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

 

 

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

Edited by Pleischner
  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Нужно просто вывести обе величины - (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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Ctrl+c >> Ctrl+v

 

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

Share this post


Link to post
Share on other sites

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

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

Или как?

Edited by A320_Pilot

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

<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

Share this post


Link to post
Share on other sites

В 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>

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

deb8e91b70273a5fc3667b230fe107d0.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

<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".

Share this post


Link to post
Share on other sites

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

Edited by Ievgen

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...