- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Pomoc doraźna => Wątek zaczęty przez: Mytnik w 25 Listopada 2010, 15:01:06
-
Witam. Temat w odniesieniu do postu kolegi @Darth Luk z tego tematu.
Chciałem zobaczyć czy mi w ogóle coś z tego wyjdzie. Mam plik .inc semafora ss5zpcpbyn, i na końcu dodałem linikjkę "sterowanie ręczne":
//Semafor półsamoczynny, pięciokomorowy na słupie odchylonym dla toru N - powiązany z tarczą ostrzegawczą/ostatnim semaforem SBL.
//Autorzy: Kudłacz, ZiomalCl
origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 5komorowego:
node 1000 0 (p1) model 0 0 0 0 sem/glowice/S5YLzpcpb_dd.t3d tabl/(p6) Lights 0 0 1 0 0 endmodel //glowica
node 200 0 none model 0 0 0 0 sem/slupy/S5YLmg.t3d sem/slupy.dds endmodel //slup
node 100 0 none model 0 0 0 0 sem/drabinki/D5YL.t3d sem/slupy.dds endmodel //drabinka
node 700 100 none lines 100 50 20 100.0 //linia zeby byl maszt widoczny z daleka
0.0 0.0 0.0 0.0 3.5 0.0
endline
rotate 0 0 0
endorigin
// PODSTAWOWE ZDARZENIA:
//dla nastepnego SBL zeby mogl zmienic stan:
event (p1)_SBLs2 multiple 0 (p1)_sem_mem (p1)_s2 condition memcompare * -1 0 endevent
event (p1)_SBLs10 multiple 1 (p1)_sem_mem (p1)_s10 condition memcompare * 40 0 endevent
//sygnalizacja SHP:
event (p1)_SHP putvalues 1.0 none (p2) (p3) (p4) CabSignal -1 -1 endevent
//odczyt z pamieci (zdarzenie przypisane do toru przy ktorym stoi semafor):
event (p1)_sem_info getvalues 1.0 (p1)_sem_mem endevent
//stany semafora:
event (p1)_s1 multiple 0 none (p1)_sem_ligh1 (p1)_sem_info_stop (p7)_os1 endevent
event (p1)_s2 multiple 0 none (p1)_sem_ligh2 (p1)_sem_info_vmax (p1)_sem_distinfo_vmax (p7)_os2 endevent
event (p1)_s3 multiple 0 none (p1)_sem_ligh3 (p1)_sem_info_vmax (p1)_sem_distinfo_v100 (p7)_os2 endevent
event (p1)_s4 multiple 0 none (p1)_sem_ligh4 (p1)_sem_info_vmax (p1)_sem_distinfo_v40 (p7)_os2 endevent
event (p1)_s5 multiple 0 none (p1)_sem_ligh5 (p1)_sem_info_vmax (p1)_sem_distinfo_stop (p7)_os2 endevent
event (p1)_s10 multiple 0 none (p1)_sem_ligh10 (p1)_sem_info_v40 (p1)_sem_distinfo_vmax (p7)_os4 endevent
event (p1)_s11 multiple 0 none (p1)_sem_ligh11 (p1)_sem_info_v40 (p1)_sem_distinfo_v100 (p7)_os4 endevent
event (p1)_s12 multiple 0 none (p1)_sem_ligh12 (p1)_sem_info_v40 (p1)_sem_distinfo_v40 (p7)_os4 endevent
event (p1)_s13 multiple 0 none (p1)_sem_ligh13 (p1)_sem_info_v40 (p1)_sem_distinfo_stop (p7)_os4 endevent
event (p1)_ms2 multiple 0 none (p1)_sem_lighs2 (p1)_sem_info_shunt2 endevent
event (p1)_sz1 multiple 0 none (p1)_sem_lighz1 (p1)_sem_info_v20 (p1)_wyg_Sz endevent
event (p1)_wyg_Sz multiple 90 (p1)_sem_mem (p1)_s1 condition memcompare SetVelocity 20 0 endevent
//powyzsze zdarzenia skladaja sie z:
//memcell do pamietania predkosci:
node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetVelocity 0.0 0.0 none endmemcell
//zdarzenia wpisujace w memcell predkosci przy tym (info) i przy nastepnym (distinfo) semaforze:
event (p1)_sem_info_stop updatevalues 10.0 (p1)_sem_mem SetVelocity 0.0 0.0 endevent
event (p1)_sem_distinfo_stop updatevalues 1.0 (p1)_sem_mem SetVelocity * 0.0 endevent
event (p1)_sem_info_vmax updatevalues 1.0 (p1)_sem_mem SetVelocity -1 * endevent
event (p1)_sem_distinfo_vmax updatevalues 0.0 (p1)_sem_mem SetVelocity * -1 endevent
event (p1)_sem_distinfo_v100 updatevalues 1.0 (p1)_sem_mem SetVelocity * 100 endevent
event (p1)_sem_info_v40 updatevalues 1.0 (p1)_sem_mem SetVelocity 40 * endevent
event (p1)_sem_distinfo_v40 updatevalues 0.0 (p1)_sem_mem SetVelocity * 40 endevent
event (p1)_sem_info_v20 updatevalues 1.0 (p1)_sem_mem SetVelocity 20 0 endevent
// dziala tylko na pojazdy w trybie manewrowym:
event (p1)_sem_info_shunt2 updatevalues 1.0 (p1)_sem_mem ShuntVelocity 40 0 endevent
//zdarzenia sterujace swiatlami:
event (p1)_sem_ligh1 lights 0.0 (p1) 0 0 1 0 0 endevent
event (p1)_sem_ligh2 lights 0.0 (p1) 1 0 0 0 0 endevent
event (p1)_sem_ligh3 lights 0.0 (p1) 2 0 0 0 0 endevent
event (p1)_sem_ligh4 lights 0.0 (p1) 0 2 0 0 0 endevent
event (p1)_sem_ligh5 lights 0.0 (p1) 0 1 0 0 0 endevent
event (p1)_sem_ligh10 lights 0.0 (p1) 1 0 0 1 0 endevent
event (p1)_sem_ligh11 lights 0.0 (p1) 2 0 0 1 0 endevent
event (p1)_sem_ligh12 lights 0.0 (p1) 0 2 0 1 0 endevent
event (p1)_sem_ligh13 lights 0.0 (p1) 0 1 0 1 0 endevent
event (p1)_sem_lighs2 lights 0.0 (p1) 0 0 0 0 1 endevent
event (p1)_sem_lighz1 lights 0.0 (p1) 0 0 1 0 2 endevent
// uszkodzony semafor - nieoswietlony:
event (p1)_uszk multiple 0 none (p1)_sem_ligh0 (p1)_sem_info_stop endevent
event (p1)_sem_ligh0 lights 0.0 (p1) 0 0 0 0 0 endevent
// sterowanie ręczne
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 t 0 (p1)_s1 (p1)_s2 end
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 h 0 (p1)_s2 (p1)_s3 end
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 k 0 (p1)_s4 (p1)_s5 end
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 s 0 (p1)_s10 (p1)_s11 end
node -1 0 (p1)_ev eventlauncher (p2) (p3) (p4) 3.0 f 0 (p1)_s12 (p1)_s13 end
Chciałem wstawić ten semafor do scenerii testowej TD, więc znalazłem wpis include
include;SS5zpcpbyn.inc;Alakowice_B;4200.71;10.2008;-7862.71;-52.0333;B-12;sbl_462N;end
i dodałem go do wpisu .scn: (wklejam tylko ostatnie linijki z tego pliku)
node 1000 0 none triangles material ambient: 0.0 0.0 0.0 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5 endmaterial GrassGreen1.dds
-450.362 0.0 1456.36 0.0 1.0 0.0 1770.13 1455.07 end
-450.362 0.0 1085.53 0.0 1.0 0.0 1770.13 1262.89 end
-1114.47 0.0 2742.46 0.0 1.0 0.0 2219.89 2121.61
endtri
node 1000 0 none triangles material ambient: 0.0 0.0 0.0 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5 endmaterial GrassGreen1.dds
89.753 0.0 1638.7 -0.0177113 0.999831 0.00483222 1404.34 1549.57 end
133.208 0.0 2281.83 0.0 1.0 0.0 1374.91 1882.88 end
628.591 0.0 2047.18 -0.000651891 0.999924 0.0123355 1039.42 1761.27
endtri
node 1000 0 none triangles material ambient: 0.0 0.0 0.0 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5 endmaterial GrassGreen1.dds
-197.048 0.0 1838.59 0.0 1.0 0.0 1598.57 1653.17 end
-249.194 0.0 769.609 0.0 1.0 0.0 1633.89 1099.16 end
-450.362 0.0 1456.36 0.0 1.0 0.0 1770.13 1455.07
endtri
node 1000 0 none triangles material ambient: 0.0 0.0 0.0 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5 endmaterial GrassGreen1.dds
1097.9 0.0 65.6434 0.0228053 0.999731 -0.00420518 721.579 734.32 end
579.25 23.7858 1273.68 0.0562867 0.998405 0.00450754 1072.83 1360.4 end
1097.9 0.0 1708.23 0.011174 0.999926 0.00489723 721.579 1585.61
endtri
include;SS5zpcpbyn.inc;Alakowice_B;0.387232;5.8;1500.25 0.0;sbl_462N;end
event KeyCtrl01 multiple 0.1 none Test_zwr01- endevent
event KeyCtrl02 multiple 0.1 none Test_zwr01+ endevent
event KeyCtrl03 multiple 0.1 none zwr02- endevent
event KeyCtrl04 multiple 0.1 none zwr02+ endevent
FirstInit
trainset rozklad start 0.0 0.0
//$o Tor doświadczalny
node -1 0 SM48-092 dynamic PKP\TEM2U SM48-092.tga TEM2Ua 0.0 headdriver 3 0 enddynamic
endtrainset
Semafor jest w scenerii tylko gdy podlatuję do niego niestety nie da się zmieniać sygnałów (próbuje zmieniać oczywiście klawiszami t,h,k,s,f)
Gdzie jest problem ?
-
A w którym miejscu będąc próbujesz zmieniać? Zasięg 3m to dosyć niedużo i liczy się od podstawy semafora.
-
No oczywiście przy samym semaforze. Spróbuje zwiększyć przypuśćmy do 5 metrów i zobaczę czy coś się zmieni.
EDIT. Zasięg zwiększyłem do 5 metrów ale nadal to samo.
-
No oczywiście przy samym semaforze.
No nie takie oczywiście, bo przy głowicy czy przy podstawie? Przeczytałeś, co napisał @Ra? Eventlauncher działa wewnątrz sfery o zadanym promieniu o środku w podstawie semafora.
I spróbowałbym jeszcze wyrzucić "_ev" z nazwy eventlaunchera. Niby to tylko nazwa, ale...
EDIT: Uporządkuj wpis do scenerii. Przed obrotem daj średnik i wstaw tabliczkę.
-
No nie takie oczywiście, bo przy głowicy czy przy podstawie? Przeczytałeś, co napisał @Ra? Eventlauncher działa wewnątrz sfery o zadanym promieniu o środku w podstawie semafora.
Przepraszam, mój błąd. Sprawdziłem przy podstawie tak jak mówiłeś i rzeczywiście się zmieniają. Tylko jest problem bo odległość mam ustawioną na 5 metrów i nie za bardzo widać na jaki sygnał zmieniamy, ponieważ gdy podlecę troszkę wyżej do głowicy to już nie działa.
Przy 1 semaforze zwiększenie tego zasięgu tak aby sterowanie działało przy głowicy nie będzie problemem. Ale co gdy obok siebie stoi kilka semaforów, np. szlak wielotorowy ?? Tu już sprawa się komplikuje, ponieważ sterowanie jednym semaforem, może powodować że będzie się ono "gryzło" z tym stojącym obok.
-
Daj eventlauchery do środka origin i wtedy zamiast współrzędnych z parametrów zrób tylko przesunięcie w górę na wysokość głowicy. A nawet metr czy dwa do przodu.
-
Dałem je do origin, ale co dalej zrobić niestety nie wiem.
współrzędnych z parametrów
chodzi o te które dawałem w include w pliku td.scn ??
-
Taki przykład:
origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 5komorowego:
node 1000 0 (p1) model 0 0 0 0 sem/glowice/S5YLzpcpb_dd.t3d tabl/(p6) Lights 0 0 1 0 0 endmodel //glowica
node 200 0 none model 0 0 0 0 sem/slupy/S5YLmg.t3d sem/slupy.dds endmodel //slup
node 100 0 none model 0 0 0 0 sem/drabinki/D5YL.t3d sem/slupy.dds endmodel //drabinka
node 700 100 none lines 100 50 20 100.0 //linia zeby byl maszt widoczny z daleka
0.0 0.0 0.0 0.0 3.5 0.0
endline
node -1 0 (p1)_ev eventlauncher 0 5 0 3.0 f 0 (p1)_s12 (p1)_s13 end
rotate 0 0 0
endorigin
node -1 0 (p1)_ev eventlauncher 0 5 0 3.0 f 0 (p1)_s12 (p1)_s13 end
-
Czyli plik .inc semafora ma wyglądać tak ?
//Semafor półsamoczynny, pięciokomorowy na słupie odchylonym dla toru N - powiązany z tarczą ostrzegawczą/ostatnim semaforem SBL.
//Autorzy: Kudłacz, ZiomalCl
origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 5komorowego:
node 1000 0 (p1) model 0 0 0 0 sem/glowice/S5YLzpcpb_dd.t3d tabl/(p6) Lights 0 0 1 0 0 endmodel //glowica
node 200 0 none model 0 0 0 0 sem/slupy/S5YLmg.t3d sem/slupy.dds endmodel //slup
node 100 0 none model 0 0 0 0 sem/drabinki/D5YL.t3d sem/slupy.dds endmodel //drabinka
node 700 100 none lines 100 50 20 100.0 //linia zeby byl maszt widoczny z daleka
0.0 0.0 0.0 0.0 3.5 0.0
endline
rotate 0 0 0
// sterowanie ręczne
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 0 5 0 5.0 t 0 (p1)_s1 (p1)_s2 end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 0 5 0 5.0 h 0 (p1)_s2 (p1)_s3 end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 0 5 0 5.0 k 0 (p1)_s4 (p1)_s5 end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 0 5 0 5.0 s 0 (p1)_s10 (p1)_s11 end
node -1 0 (p1) eventlauncher (p2) (p3) (p4) 0 5 0 5.0 f 0 (p1)_s12 (p1)_s13 end
endorigin
// PODSTAWOWE ZDARZENIA:
//dla nastepnego SBL zeby mogl zmienic stan:
event (p1)_SBLs2 multiple 0 (p1)_sem_mem (p1)_s2 condition memcompare * -1 0 endevent
event (p1)_SBLs10 multiple 1 (p1)_sem_mem (p1)_s10 condition memcompare * 40 0 endevent
//sygnalizacja SHP:
event (p1)_SHP putvalues 1.0 none (p2) (p3) (p4) CabSignal -1 -1 endevent
-
Nie. Spójrz raz jeszcze na to, co podałem.