Board logo

標題: [教程] 不需煞車開((後門)) [打印本页]

作者: kwong2469    時間: 2011-4-23 16:51     標題: 不需煞車開((後門))

記事本開Omsi\Vehicles\MAN_SD20X\Script\door.osc

 引用框:
{macro:trg_bus_doorfront1}

        (L.L.doorTarget_1) ! (S.L.doorTarget_1)
        {if}
                (T.L.ev_doortriggeropen_1)
        {else}
                (T.L.ev_doortriggerclose_1)
        {endif}        
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}
 引用框:
{macro:trg_bus_doorfront1}

        (L.L.doorTarget_23) ! (S.L.doorTarget_23)
        {if}
                (T.L.ev_doortriggeropen_2)
        {else}
                (T.L.ev_doortriggerclose_2)
        {endif}        
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}


有問題可留言

[ 本帖最後由 kwong2469 於 2011-4-23 16:58 編輯 ]
作者: Lloyd Esq.    時間: 2011-4-23 17:24

这个太好了  我一直希望能这样操作呢 哈哈 感谢分享  
作者: Entice.    時間: 2011-4-23 17:43

   快到站了,乘客要下车,那后门不就直接开了??   (车还在行驶)
作者: kwong2469    時間: 2011-4-23 17:48

車在行駛,後門在開,不用停車
作者: Entice.    時間: 2011-4-23 17:57

不用到站台就能开门???
作者: fangleikofc    時間: 2011-4-23 19:26

这个好啊!好 要顶!
作者: fangleikofc    時間: 2011-4-23 20:31

前门有一个没开的?还是我改过的问题?
作者: bbus    時間: 2011-4-23 22:04

點解開唔到咁多落車門既?
作者: dennis75    時間: 2011-4-24 08:56

但是AI會開不到后門
作者: kwong2469    時間: 2011-4-24 09:16

 引用框:
原帖由 fangleikofc 於 2011-4-23 20:31 發表
前门有一个没开的?还是我改过的问题?
解決前門問題
 引用框:
{macro:trg_bus_doorfront0}

        (L.L.doorTarget_0) ! (S.L.doorTarget_0)
        {if}
                (T.L.ev_doortriggeropen_0)
        {else}
                (T.L.ev_doortriggerclose_0)
        {endif}
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}

 引用框:
{macro:trg_bus_doorfront0}

        (L.L.doorTarget_0) ! (S.L.doorTarget_0)
        (L.L.doorTarget_1) ! (S.L.doorTarget_1)
        {if}
                (T.L.ev_doortriggeropen_0)
                (T.L.ev_doortriggeropen_1)
        {else}
                (T.L.ev_doortriggerclose_0)
                (T.L.ev_doortriggerclose_1)
        {endif}
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}

作者: derekman6c19    時間: 2011-5-2 13:12

可不可以post完整一個door.osc檔出來...還是搞不懂
作者: yoop1994    時間: 2011-5-4 18:56

謝謝樓主  我愛死你了
作者: KMC    時間: 2011-5-6 06:11

AI關唔到前門可以點做
作者: fangleikofc    時間: 2011-5-8 20:37

发现问题.用了之后AI不会关门了......(车也不走了...)
作者: vistor    時間: 2011-5-9 10:10

能否把原代码发下,对比下
作者: jm1666    時間: 2011-6-12 12:26

'##############
'Door Script
'##############

'Controls Doors

'(c) 2007-2009 Riger Hsmann
'(c) 2007-2009 Marcel Kuhnt

'Script Version: 1.1
'Omsi release: 1.0

'Needs:
'- elec

'Revision History:
'- Marcel Kuhnt                13.06.2009        Batterietrennschalter => elec_busbar_main
'- Marcel Kuhnt                21.06.2009        AI-Unterstzung hinzugeft       
'- Riger Hsmann        24.10.2009        Ansteuerung des Kinderwagenwunsches modifiziert
'- Riger Hsmann        19.12.2009        Timer f Ausstiegst jetzt Timegap-basiert, Bugfix: T schlie腷 jetzt nur bei elec_busbar=1
'- R鈥iger Hsmann        22.09.2010        Door light trigger value set to 0.1
'- R鈥iger Hsmann        07.11.2010        Door speed based on reservoir pressure, air-operated doors made an option
'- Marcel Kuhnt                08.11.2010        AI procedure closing doors debugged
'- Riger Hsmann        21.11.2010        Front doors only operable when busbar on
'- Riger Hsmann        23.12.2010        External front door operation included, option: doors only operable with actual stop brake
'- Riger Hsmann        31.12.2010        Electric door function debugged
'- Riger Hsmann        05.01.2011        20h-switch
'- Riger Hsmann        07.01.2011        Backdoor manual switch sound debugged, 20h switch depending on bus type
'- Riger Hsmann        19.01.2011        Electric door support

'--------------------------------------------------------------------------------

{trigger:bus_doorfront0}
        (L.L.elec_busbar_main) (L.L.bremse_halte_sw) (C.L.door_needs_stopbrake) ! && &&
        (L.L.elec_busbar_main) (L.L.bremse_halte) (C.L.door_needs_stopbrake) && && ||
        {if}
                (M.L.trg_bus_doorfront0)
        {endif}
        1 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront0_off}
        0 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront0_external}
        (L.L.elec_busbar_avail)
        {if}
                (M.L.trg_bus_doorfront0)
        {endif}
{end}

{trigger:bus_doorfront1}
        (L.L.elec_busbar_main) (L.L.bremse_halte_sw) (C.L.door_needs_stopbrake) ! && &&
        (L.L.elec_busbar_main) (L.L.bremse_halte) (C.L.door_needs_stopbrake) && && ||
        {if}
                (M.L.trg_bus_doorfront1)
        {endif}
        1 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_doorfront1_off}
        0 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_dooraft}
        (M.L.trg_bus_dooraft)
{end}

{trigger:bus_20h-switch}
        (C.L.cockpit_has_20h_switch)
        {if}
                (M.L.trg_bus_20h-switch)
        {endif}
{end}

{trigger:int_haltewunsch}
        1 (S.L.haltewunsch)
{end}

{trigger:door_haltewunsch}
        1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
{end}

{trigger:door_haltewunsch_off}
        0 (S.L.door_haltewunsch_knopfdruck)
{end}

{trigger:cp_schalter_kinderwagen}
        (L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
        {if}
                0 (S.L.door_kinderwagenwunsch)
                (T.L.ev_kippschalter_ein)
        {else}
                (T.L.ev_kippschalter_aus)
        {endif}
               
{end}

{trigger:door_kinderwagenwunsch}
        (L.L.bremse_halte) (L.L.door_handsteuerung) ! &&
        {if}
                1 (S.L.door_kinderwagenwunsch)
        {endif}
{end}


{macrooor_Init}
        1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
        1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
        1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
        1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)

        1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
        1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
        1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
        1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)

        (C.L.door_refl) (S.L.doorRefl_0)
        (C.L.door_refl) (S.L.doorRefl_1)
        (C.L.door_refl) (S.L.doorRefl_2)
        (C.L.door_refl) (S.L.doorRefl_3)

       
{end}

{macrooor_Frame}
        (M.L.Door0_Calc)
        (M.L.Door1_Calc)
        (M.L.DoorAftCalc)
        (M.L.Door2_Calc)
        (M.L.Door3_Calc)

        (L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
        (L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open)       
        (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open)

'        "Dauerfeuer"-Haltewunsch er Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
        (L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
        {if}
                1 (S.L.haltewunsch)
        {endif}

'        Setzen der Haltestellenbremse erst bei Stillstand des Busses:
        (L.L.bremse_halte_sw) (L.L.door_20h_sw) ||
        (L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
        {if}
                (L.L.elec_busbar_main)
                {if}
                        (T.L.ev_haltebremse_an)               
                        1 (S.L.bremse_halte)
                {endif}
        {endif}

'        Anhand dieser Bedingungen kann nun die Automatikt ge鐪fnet werden:
        (M.L.DoorAft_Open)

'        Tfreigabekriterium

        (L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)

'        Haltewunschlampe:
        (L.L.haltewunsch) (L.L.door_2) 0.2 < (L.L.elec_busbar_main) && &&
        {if}
                1 (S.L.haltewunschlampe)
        {else}
                0 (S.L.haltewunschlampe) (S.L.haltewunsch)
        {endif}

'        Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:

        (L.L.elec_busbar_main) 0 =
        {if}
                0 (S.L.door_kinderwagenwunsch)
        {endif}

'        Beleuchtung der Einstiege

        (L.L.elec_busbar_main)
        {if}
                (L.L.door_0) 0.1 > (L.L.door_1) 0.1 > || (S.L.door_light_1)
                (L.L.door_2) 0.1 > (L.L.door_3) 0.1 > || (S.L.door_light_2)
        {else}
                0 (S.L.door_light_1) (S.L.door_light_2)
        {endif}

'        Druckabh鄚gige Tgeschwindigkeit
       
        (C.L.door_druckluft)
        {if}
                (L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
                (L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
                (L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
                (L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
        {endif}
'----------------------
'        AI-Ablauf:

(L.L.AI_Scheduled_AtStation) s0
1 =
{if}
'Wenn Ten ge鐪fnet werden sollen:
        (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
        {if}
'Nur, wenn v < maxkmh, sonst warten
'Taster jeweils nur bet酹igen, falls noch nicht an
                (L.L.bremse_halte_sw) !
                {if}
                        (M.L.trg_bus_dooraft)
                {endif}
                (L.L.doorTarget_0) ! (L.L.door_AI_timer) 0.3 > &&
                {if}
                        (M.L.trg_bus_doorfront0)
                {endif}
                (L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.6 > &&
                {if}
                        (M.L.trg_bus_doorfront1)
                {endif}
        {else}
                0 (S.L.door_AI_timer)
        {endif}
        (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{else}
l0 -1 =
{if}
'Wenn Ten geschlossen werden sollen:
'Taster jeweils nur bet酹igen, falls noch nicht aus:
        (L.L.doorTarget_1)
        {if}
                (M.L.trg_bus_doorfront1)
                0 (S.L.door_AI_timer)
        {endif}
        (L.L.doorTarget_0) (L.L.door_AI_timer) 0.3 > &&
        {if}
                (M.L.trg_bus_doorfront0)
        {endif}
'Haltestellenbremse erst wegnehmen, wenn alle Ten zu. Dann auch erst den Bus AI-m魠ig freigeben:
        (L.L.door_0) 0.1 <
        (L.L.door_1) 0.1 < &&
        (L.L.door_2) 0.1 < &&
        {if}
                (L.L.bremse_halte_sw) (L.L.door_AI_timer) 0.3 > &&
                {if}
                        (M.L.trg_bus_dooraft)
                {endif}
                (L.L.bremse_halte_sw) !
                {if}
                        0 (S.L.AI_Scheduled_AtStation)
                {endif}
        {else}
'Sollte eine der Ten auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
                (L.L.bremse_halte_sw) !
                {if}
                        (M.L.trg_bus_dooraft)
                {endif}
                (L.L.doorTarget_0) !
                (L.L.doorTarget_1) ! &&
                {if}
                        0 (S.L.door_AI_timer)
                {endif}
        {endif}
        (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{endif}
{endif}


{end}




{macrooor0_Calc}
        (C.L.electric_doors)
        {if}
                (L.L.doorTarget_0)
                {if}
                        (L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
                {else}
                        (L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
                {endif}

                (C.L.fdoor_acc) (S.L.doorAcc_0)

                (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_0) <
                        {if}
                                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                        {else}
                                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                        {endif}
                        (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                {else}
                        (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_0) <
                                {if}
                                        (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                                {else}
                                        (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                                {endif}
                                (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                        {else}
                                0 (S.L.doorSpeed_0)
                        {endif}
                {endif}
        {else}
                (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_0) <
                        {if}
                                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                        {endif}
                        (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                {else}
                        (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_0) <
                                {if}
                                        (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                                {endif}
                                (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                        {else}
                                0 (S.L.doorSpeed_0)
                        {endif}
                {endif}
        {endif}

        (L.L.door_0) 1 >
        {if}
                (T.L.ev_doorhitopen_0)
                1 (S.L.door_0)
                (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
        {else}
                (L.L.door_0) 0 <
                {if}
                        (T.L.ev_doorhitclose_0)
                        0 (S.L.door_0)
                        (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
                {endif}
        {endif}
{end}

{macrooor1_Calc}
        (C.L.electric_doors)
        {if}
                (L.L.doorTarget_1)
                {if}
                        (L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
                {else}
                        (L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
                {endif}

                (C.L.fdoor_acc) (S.L.doorAcc_1)

                (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_1) <
                        {if}
                                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
                        {else}
                                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
                        {endif}
                        (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
                {else}
                        (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_1) <
                                {if}
                                        (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
                                {else}
                                        (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
                                {endif}
                                (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
                        {else}
                                0 (S.L.doorSpeed_1)
                        {endif}
                {endif}
        {else}
                (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_1) <
                        {if}
                                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
                        {endif}
                        (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
                {else}
                        (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_1) <
                                {if}
                                        (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
                                {endif}
                                (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
                        {else}
                                0 (S.L.doorSpeed_1)
                        {endif}
                {endif}
        {endif}
        (L.L.door_1) 1 >
        {if}
                (T.L.ev_doorhitopen_1)
                1 (S.L.door_1)
                (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
        {else}
                (L.L.door_1) 0 <
                {if}
                        (T.L.ev_doorhitclose_1)
                        0 (S.L.door_1)
                        (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
                {endif}
        {endif}
{end}

{macrooorAft_Open}
       
        (L.L.haltewunsch) (L.L.bremse_halte) &&
        {if}
                (L.L.doorTarget_23) !
                (L.L.bremse_halte_sw) &&
                {if}
                        (T.L.ev_doortriggeropen_2)
                        1 (S.L.doorTarget_23)
                        (C.L.door_druckluft)
                        {if}
                        (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
                        {endif}
                {endif}
                0 (S.L.doorAftLastOpen)               
        {endif}
{end}

{macrooorAftCalc}

        (L.L.bremse_halte_sw) !
        (L.L.door_20h_sw) ! &&
        (L.L.door_2) 0 = &&
        (L.L.door_3) 0 = &&
        (L.L.elec_busbar_main) ! ||
        (L.L.bremse_halte) &&
        {if}
                0 (S.L.bremse_halte) (S.L.doorAftLastOpen)
                (T.L.ev_haltebremse_aus)
        {endif}

        (L.L.elec_busbar_main)
        {if}
                (L.L.bremse_halte)
                {if}
                        (L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
                {endif}

                (L.L.doorTarget_23)
                (L.L.doorAftLastOpen) (C.L.doorAftOpenTime) > &&
                {if}
                        (T.L.ev_doortriggerclose_2)
                        0 (S.L.doorTarget_23)
                        (C.L.door_druckluft)
                        {if}
                        (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
                        {endif}
                {endif}
        {endif}
{end}

{macrooor2_Calc}
        (C.L.electric_doors)
        {if}
                (L.L.doorTarget_23)
                {if}
                        (L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
                {else}
                        (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
                {endif}

                (C.L.bdoor_acc) (S.L.doorAcc_2)

                (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_2) <
                        {if}
                                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                        {else}
                                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                        {endif}
                        (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                {else}
                        (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_2) <
                                {if}
                                        (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                                {else}
                                        (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                                {endif}
                                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                        {else}
                                0 (S.L.doorSpeed_2)
                        {endif}
                {endif}
        {else}
                (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_2) <
                        {if}
                                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                        {endif}
                        (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                {else}
                        (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_2) <
                                {if}
                                        (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                                {endif}
                                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                        {else}
                                0 (S.L.doorSpeed_2)
                        {endif}
                {endif}
        {endif}

        (L.L.door_2) 1 >
        {if}
                (T.L.ev_doorhitopen_2)
                1 (S.L.door_2)
                (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
        {else}
                (L.L.door_2) 0 <
                {if}
                        (T.L.ev_doorhitclose_2)
                        0 (S.L.door_2)
                        (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
                {endif}
        {endif}
{end}

{macrooor3_Calc}
        (C.L.electric_doors)
        {if}
                (L.L.doorTarget_23)
                {if}
                        (L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
                {else}
                        (L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
                {endif}

                (C.L.bdoor_acc) (S.L.doorAcc_3)

                (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_3) <
                        {if}
                                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
                        {else}
                                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                        {endif}
                        (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
                {else}
                        (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_3) <
                                {if}
                                        (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                                {else}
                                        (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
                                {endif}
                                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
                        {else}
                                0 (S.L.doorSpeed_3)
                        {endif}
                {endif}
        {else}
                (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
                {if}
                        l0 /-/ (L.L.doorMaxSpeed_3) <
                        {if}
                                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
                        {endif}
                        (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
                {else}
                        (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
                        {if}
                                l0 (L.L.doorMaxSpeed_3) <
                                {if}
                                        (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                                {endif}
                                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
                        {else}
                                0 (S.L.doorSpeed_3)
                        {endif}
                {endif}
        {endif}

        (L.L.door_3) 1 >
        {if}
                (T.L.ev_doorhitopen_3)
                1 (S.L.door_3)
                (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
        {else}
                (L.L.door_3) 0 <
                {if}
                        (T.L.ev_doorhitclose_3)
                        0 (S.L.door_3)
                        (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
                {endif}
        {endif}

{end}

{macro:trg_bus_doorfront0}

        (L.L.doorTarget_0) ! (S.L.doorTarget_0)
        {if}
                (T.L.ev_doortriggeropen_0)
        {else}
                (T.L.ev_doortriggerclose_0)
        {endif}
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}

{macro:trg_bus_doorfront1}

        (L.L.doorTarget_1) ! (S.L.doorTarget_1)
        {if}
                (T.L.ev_doortriggeropen_1)
        {else}
                (T.L.ev_doortriggerclose_1)
        {endif}       
                (C.L.door_druckluft)
                {if}
                (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
                {endif}
{end}

{macro:trg_bus_dooraft}
        (L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
       
        (L.L.bremse_halte_sw)
        {if}
                (T.L.ev_haltebremse_sw_an)
        {else}
                (T.L.ev_haltebremse_sw_aus)
        {endif}       
{end}

{macro:trg_bus_20h-switch}
        (L.L.door_20h_sw) ! (S.L.door_20h_sw)
       
        (L.L.door_20h_sw)
        {if}
                (T.L.ev_haltebremse_sw_an)
        {else}
                (T.L.ev_haltebremse_sw_aus)
        {endif}       
{end}
作者: ac2014    時間: 2011-6-17 11:26

這個好啊!!!!!!!!
作者: ktl901    時間: 2013-10-12 21:17

謝謝樓主
作者: 1135763693    時間: 2014-7-14 19:15

谢谢啊!!!
作者: a1337012547    時間: 2016-12-11 10:13

非常好,顶起!
作者: Xiaoshe20    時間: 2017-9-1 16:44

感謝分享
作者: az88119782    時間: 2021-1-25 13:33

謝謝樓主分享
作者: miffy    時間: 2021-11-8 20:10

感谢楼主分享
作者: 热心网友    時間: 2022-7-21 23:49

谢谢楼主,大佬的水准
作者: 13336961729    時間: 2022-8-20 16:34

沙发




模载联合支援站 http://bbs.18wos.org/