Jump to content
A320_Pilot

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

Recommended Posts

Хм... перепробывал около сотни вариантов и не помогло...
оригинальный код выглядит так (под спойлером, чтоб не загромождать форум):

 

post-82833-0-11259300-1367614064_thumb.jpg

 

именно его я хотел его подправить чтоб показывал литры. К сожалению я не очень силен в английском, по этому литература по СДК дается с трудом. Не то чтобы совсем со словарем сижу большую половину понимаю. Но о значениях некоторых слов приходится догадываться.
Я менял значения в строке string

Так и не понял что означают эти параметры - ">G:Var1,number", "&lt", "&gt".

Спасибо за помощь.

Edited by Ievgen

Share this post


Link to post
Share on other sites

Попробовал коэффициент подставить, из расчёта один галлон = 3,785 литра, работает.

Про плотность не забываем :) Пропишет кто-нить другой тип топлива и начнётся.

 

К автору вопроса: в аттаче все известные симу единицы измерения, надеюсь во многом поможет. В дополнение вот спичок констант из СДК, которыми оперирует сим при конвертации величин (тогда не будет расходжений):

 

#define FS_LAT_FACTOR 111130.555557

#define FS_LON_FACTOR 781874935307.40

#define RADIANS_TO_DEGREE_FACTOR (180.0/PI)

#define METER_FEET_FACTOR 3.28084

#define KILOMETER_NM_MILE_FACTOR 0.54

#define POUND_KILOGRAM_FACTOR 0.453592

#define METER_PER_SECOND_KNOT_FACTOR 1.944

#define GALLON_LITRE_FACTOR 3.785

#define INCH_HG_PSI_FACTOR (.4912)

10-FS2004_Units.zip

Share this post


Link to post
Share on other sites

Спасибо за помощь. Временно завязал с расходомером, но взялся за радио высотомер. Хочу чтоб работал как в реале, со звуком. Единственное что начал его делать плоским. Ну да на то ком и нужен, чтоб потом стать блином. В картинках нет проблем. В 3Д максе могу нарисовать его, чуть ли не до винтиков. Возник вопрос - нужно чтобы флаг закрывал цифры при значении "-1". Вопрос - (A:DECISION HEIGHT, feet) вообще знает что можно выбрать отрицательно значение высоты принятия решения "-1".

По аналогии с другим прибором я ему тыкаю сие а он упорно становится на нулях:

 

 

<Element>
  <Position X="98" Y="538"/>
     <Select>
        <Value>(A:DECISION HEIGHT, feet) -1 <</Value>
      <Case Value="1">
           <Image Name="1.bmp" Luminous="Yes" ImageSizes="66,32,0,0"/>
      </Case>
   </Select>
</Element>

post-82833-0-12363800-1368023802.jpg

Edited by Ievgen

Share this post


Link to post
Share on other sites

После некоторых тестов выявилось интересное наблюдение - самолет на земле, - радио высота должна быть "0". Но на разных крафтах она зная... На цесне к примеру 4 фута, а на командере - 6, а на Арбузе 321м вооще 10. Где собака по рылась? Или измерение производится от фюзеляжа или Кокпита?. Как не правильно...

Share this post


Link to post
Share on other sites

Измерение проводится от излучателя радиовысотомера видимо. Он и не должен "0" показывать, ведь не на земле же валяется :)

Share this post


Link to post
Share on other sites

Подозреваю, что измерение производится от некоторого строительного центра модели, и если модель не переделать, то внести поправку в показания прибора в соответствии с показаниями на земле, думаю труда составить не должно

Share this post


Link to post
Share on other sites

Ну я где то так и подумал что высота привязана к Пивот поинту.
Вчера интереса ради посмотрел в самолете (реальном MD83). Так у КВС показывало на земле 0, а у второго около пяти футов. Хотя между антенной и землей и метра нет. Погрешности в показаниях прибора короче говоря. Уж очень он изношенный (у правака).

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>. Чёта не работает?!. Может я где, чего, не до читал/понял.

 

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

Share this post


Link to post
Share on other sites

<Cleak>

Что это за слово ?

 

А если использую && вместо || так прибор вообще не прорисовывается

&& вместо && иногда помогает

Share this post


Link to post
Share on other sites

Та то я ошибся когда набирал...
Подразумевалось - <Click>. Я с грамматикой в контрах...
В XML писал <Click>, так как было куда подсмотреть..

Edited by Ievgen

Share this post


Link to post
Share on other sites

Эм на сколько я смог понять есть ограничение по количеству строк или букв? Или это опять гонит мой комп?

Edited by Ievgen

Share this post


Link to post
Share on other sites

Мой "рекорд" размера прибора - 230 килобайт кода. Видимо, можно и больше. А вот длина строки ограничивается, это факт. ИМХО, строки длинее 256 знаков испоьзовать не стоит.

Share this post


Link to post
Share on other sites

Фсё... Сдаюсь... "Тест не сдал"...

Вот часть кода, которую я никак не могу оживить. Значение его должно давать следующий результат:

1. Лампочка НЕ горит пока не "тыкнуть" в кнопку "Тест". (в реале так, - нужно запустить тест автопилота, и по окончании оного, сия лампочка остается гореть, пока ее не обресетить; временно хочу прикрутить к кнопке теста самого альтиметра)

2. Лампочка НЕ горит когда радио высота выше заданной.

3. Лампочка ГОРИТ пока не "тыкнуть" кнопку "Ресет".

4. Лампочка ГОРИТ когда высота ниже заданной но НЕ одресечена кнопкой "Ресет"

<Element>

<Position X="95" Y="26"/>

<Select>

<Value>1 if { ((A:Radio height, feet) (A:DECISION HEIGHT, feet) <) (G:Var1) && if {((A:Radio height, feet) (A:DECISION HEIGHT, feet) >) Event"1 (>G:Var1)"} els {(A:Radio height, feet) (A:DECISION HEIGHT, feet) <} } els { 0 }</Value>

<Case Value="1">

<Image Name="3on.bmp" Bright="Yes" ImageSizes="106,33,0,0"/>

</Case>

<Case Value="0">

<Image Name="3off.bmp" Bright="Yes" ImageSizes="106,33,0,0"/>

</Case>

</Select>

</Element>

 

<!--===========================================Mause==============================================-->

<Mouse>

<!--======DH_Botton=====-->

<Area Left="95" Top="26" Width="106" Heigth="33">

<Cursor Type="Hand"/>

<Click>0 (>G:Var1)

</Click>

</Area>

<!--===Test_Botton===-->

<Area Left="184" Top="552" Width="79" Height="79">

<Cursor Type="Hand"/>

<Click>1 (>G:Var1)

</Click>

</Area>

Сей код не только не работает но почему то мышиную зону размазывает на весь прибор по вертикали.

Буду крайне признателен за любую помощь.

Edited by Ievgen

Share this post


Link to post
Share on other sites

Коллега,

 

Перед условным оператором if{...} должно идти анализируемое выражение, а не результирующее действие:

 

 

 
<выражение>
 
if{ <действие, ЕСЛИ условие ВЫПОЛНЕНО> }
 
els{ <действие ИНАЧЕ - если условие НЕ ВЫПОЛНЕНО> }
 

 

Допустима только одна комбинация if-els, не может существовать комбинация if-els-els-(и так далее).

Share this post


Link to post
Share on other sites

<!--===========================================Mause==============================================-->

<Mouse>

<!--======DH_Botton=====-->

<Area Left="95" Top="26" Width="106" Heigth="33">

<Cursor Type="Hand"/>

...

Сей код не только не работает но почему то мышиную зону размазывает на весь прибор по вертикали.

Буду крайне признателен за любую помощь.

Height - Посему и "размазывало"...

Хорошо, С ИФом разобрался, но, тогда как это работает? Это кусок от цесны 208

 

<Script>

(A:CIRCUIT GENERAL PANEL ON, bool) if{ (A:FUEL TANK SELECTOR 1,ENUM) 0 == if{ 1 } els{ (A:FUEL TANK SELECTOR 1,ENUM) 2 == if{ (A:FUEL TANK LEFT MAIN LEVEL, percent) 15.05 < } els{ (A:FUEL TANK SELECTOR 1,ENUM) 3 == if{ (A:FUEL TANK RIGHT MAIN LEVEL, percent) 15.05 < } els{ 0 } } (L:Lamp Test, bool) || } els{ 0 }

</Script>

или тут другой закон действует?

Edited by Ievgen

Share this post


Link to post
Share on other sites

Всем добрый вечер!

Вот у меня тут возник вопрос, какого разрешения делать битмап главной панели (КВС), имеется ввиду когда начинаешь рисовать?

Share this post


Link to post
Share on other sites

75d22a55bb030103ed403345d8f4f1f1.jpg

 

ebe24dd195c17455ba76cc41efc69099.jpg

 

1a0d1d8d713acab15dddf025cd377b29.jpg

 

ebdaecc9b6db49b15361a75438ccfaa4.jpg

Ребят, вот я нарисовал эти приборы, с одной стороны вроде норм, а сдругой стороны просто ужас, как нарисовать нормально шкалу прибора?

Помогите плз!

Share this post


Link to post
Share on other sites

Битмапы приборов лучше всего рисовать сразу под панель, т.е. чтоб смотрелись с панелью как единое целое. Приборы, имеющие однотонный фон, выглядят игрушечно. Блики, тени, объём - всё это в битмапе должно быть. В какой мере - дело вкуса, но битмап без объёма - это уровень FS2002. Опять же кому как нравится, кто-то поклонник арт-деко, лично мне вот больше по душе реализм. Поэтому для битмапов приборов использую фото. Беру качественную фотографию прибора (а чаще несколько), кромсаю её на составные части, всячески их редактирую, подчищаю, подгоняю. Вставляю в циферблат отрисованную в векторе шкалу, добавляю рельефность, тени и т.д. и т.п. Описать всё - значит повторять мануалы по фотошопу или корелу. Нет смысла делать этого здесь. Результат такой:

post-67360-0-09890400-1368743603_thumb.jpg

Для Ваших битмапов могу посоветовать:
- ободкам приборов добавить эффект "выпуклости", цифрам и рискам шкал - "впуклости" (например рельеф),
- сверху положить белый кружок прозрачностью 85-95% по размеру стекла прибора и местами хорошенько потереть его слабеньким мягким ластиком,
- между стеклом и шкалой вдоль ободка прибора положить тонюсенький прозрачный "полумесяц" тени.
А ещё лучше просто сделать всё по учебнику Александра Вишнякова (AVish). Там всё офигенно расписано. Единственное, что не совсем удачно предложено - это делать шкалу из букв "i". CorelDraw - шикарнейший и очень точный инструмент, поворачивать клоны линии можно с точностью до тысячной градуса, как угодно обрезать и импортировать в растр.
Да и ещё. Стоит поискать шрифты нормальные. Что-то вроде ГОСТ 26.008-85.

Edited by Pleischner
  • Upvote 2

Share this post


Link to post
Share on other sites

Спасибо, буду работать, только вот про белый кружок не понял)

И где можно прочитать про создание шкалы?

Edited by A320_Pilot

Share this post


Link to post
Share on other sites

Всё тот же Александр Вишняков очень правильно сказал: пока ты новичок, ты ещё можешь писать мануалы. Заматереешь - всё. Тогда будешь разве что только развернутые ответы на вопросы давать. (Это, кстати, не упрёк, а чистая правда жизни!) Поэтому воспользуюсь моментом и напишу, как рисовать шкалы с точными углами наклона рисок.
Показываю на примере Corel Graphics 12. Просто потому что он у меня есть. (Меж прочим честный, лицензионный). Рисую шкалу для указателя курса УГА-1УК. Такой стоит, например, на Ан12 и Ан-30.
Процесс рисования основы для битмапа прибора опускаю, здесь речь только о создании точной шкалы. Поехали.

1. Копировать основу прибора в CorelDraw (в моём примере 12-ый), расположить по центру страницы (клавиша Р). Тремя вспомогательными окружностями обозначить размеры нужных нам рисок шкалы.

post-67360-0-00224300-1368787407_thumb.jpg

 

 

2. Делаем риски десятков градусов. Нарисовать (удерживая Ctrl) вертикальную прямую, позиционировать её по центру (Р). В свойствах линии (F12) задать ширину риски и форму её законцовки.

 

post-67360-0-52429200-1368787474_thumb.jpg

 

 

3. Комбинацией Alt+F8 открыть дополнительную панель "преобразование". Выбрать "поворот", задать поворот на -10° и нажать на "применить к копии" столько раз, сколько рисок нам надо.

 

post-67360-0-58354800-1368787493_thumb.jpg

 

 

4. Полученные лучики комбинировать. Крайние вспомогательные линии тоже комбинировать и поместить наверх. Выделить и то и другое, нажать кнопку "пересечение". Вырезанные в итоге линии в примере покрасил жёлтым.

 

post-67360-0-98537200-1368787506_thumb.jpg

 

 

5. Аналогично нарисовать риски делений в 2°, подобрав предварительно их ширину и форму законцовки. Для обрезки использовать наружную и среднюю вспомогательные линии.

 

post-67360-0-80052000-1368787522_thumb.jpg

 

 

6. Полученные риски сгруппировать, покрасить в нужный цвет (естественно не в чисто белый) и скопировать в растровый редактор.

 

post-67360-0-11934400-1368787535_thumb.jpg

 

 

7. Добавить рельефность, скорректировать цветность, резкость, подставить заранее обработанные цифры. Наложить тени, полутени. Продолжать редактирование до полного удовлетворения результатом. :-D

 

post-67360-0-57536200-1368787585_thumb.jpg

 

 

post-67360-0-54308500-1368787603.jpg
Такой способ строить шкалу нужен, когда в коде поворот стрелки задаётся в радианах, а не по координатам битмапа. Это, кстати, неимоверно облегчит жизнь тому, кто может быть когда-нибудь возмётся перерисовать Ваш прибор. И вообще. Если с самого начала делать всё чётко, педантично и методично - и процесс будет легче, и результат лучше.

Успехов удовольствия от работы!

Edited by Pleischner
  • Upvote 4

Share this post


Link to post
Share on other sites

Спасибо Вам огромное, а про белый кружок я вот не понял

Share this post


Link to post
Share on other sites

С кружком так: прибор закрывает стекло, которое почти в любой кабине даёт блики. Хорошо, если у Вас есть качественно сделанное фото, а если рисуете битмап сами, то чтоб его "оживить" можно (как вариант) добавить такой вот блик стекла. Например индикатор-пульт от ДИСС-013-24ФК (см. скрин под спойлером). Делал я его так: ободок от фотографии, основа прибора - однотонная окружность. на ней шкала, выше - тень, ещё выше положил чисто белый круг размером с внутренний диаметр ободка. Кругу задал 93%-ную прозрачность - прибор "помутнел". Инструментом "ластик" (с очень мягкими настройками, т.е. стирает по чуть-чуть совсем, края размытые) стираю небольшую часть этого полупрозрачного круга. Получается такой частичный блик стекла. Ещё один такой же кружок подтираю ещё сильнее и кладу сверху. Выходит что-то типа водяного знака разной плотности: где-то гуще блик, где-то пожиже, а где-то вообще нет. Всё, прибор как живой. Главное - чтобы всё в меру, как говорил товарищ Неру. Можно и другими способами облагородить битмап. Ну, например, градиентной заливкой. Или мягкой кистью вручную подкрашивать. Короче говоря, это не просто так artwork'ом зовётся.

Share this post


Link to post
Share on other sites

Короче, просто наложить белый круг на шкалу, дать прозрачность и подтереть ластиком?

Share this post


Link to post
Share on other sites

<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 == (L:lamp_reset, bool) 1 == && if { 1 (>G:Var2) } els { 0 (>G:Var2) } </Value>
</Select>
</Element>
<Element>
<Select>
<Value>(G:Var1) 0 == if { 1 (>L:lamp_reset, bool) } </Value>
</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>

<!--===========================================Mause==============================================-->
<Mouse>
<!--===Test_Botton===-->
<Area Left="184" Top="552" Width="79" Height="79">
<Cursor Type="Hand"/>
<Click>1 (>L:lamp_reset, bool)
</Click>
</Area>
<!--===========Lamp_res_Botton===========-->
<Area Left="95" Top="26" Width="106" Height="33">
<Cursor Type="Hand"/>
<Click>0 (>L:lamp_reset, bool)
</Click>
</Area>

</Mouse>

 

А тут та что не так?

Share this post


Link to post
Share on other sites

Как опыты показали проблема в этом - 

<Value>(A:Radio height, feet) (A:DECISION HEIGHT, feet) < if { 1 (>G:Var1) } els { 0 (>G:Var1) } </Value>

Эта строчка в любых условиях выдает на "if" фолс, но почему?

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