exporting TPE related information and updated the scene generation code
This commit is contained in:
parent
2b046d8afd
commit
cc92ad59f2
194
AMZ_TPA8_SYSDL_MCM02.csv
Normal file
194
AMZ_TPA8_SYSDL_MCM02.csv
Normal file
@ -0,0 +1,194 @@
|
||||
record_type,conveyor_key,sec,included,reason,has_tpe,has_epc,has_vfd,is_last_any,is_last_geom,start_x,start_y,end_x,end_y,tpe_name,tpe_x,tpe_y,tpe_rotation,tpe_distance
|
||||
CONVEYOR,PS3_1,1,1,GEOMETRY,1,1,1,0,0,3087.489034,3048.565032,3159.132392,3024.713237
|
||||
CONVEYOR,PS3_2,2,1,GEOMETRY,1,0,1,0,0,3159.132392,3024.713237,3190.945812,3042.099631
|
||||
CONVEYOR,PS3_3,3,1,GEOMETRY,1,0,1,0,0,3190.945812,3042.099631,3478.820696,3249.442902
|
||||
CONVEYOR,PS3_5,5,1,GEOMETRY,1,0,1,0,0,3519.577701,3258.530860,4079.105653,3253.674982
|
||||
CONVEYOR,PS3_6,6,1,GEOMETRY,1,0,1,0,0,4079.105653,3253.674982,4784.946959,3257.612009
|
||||
CONVEYOR,PS3_7,7,1,GEOMETRY,1,0,1,0,0,5985.674639,3259.327631,5985.674639,3259.327631
|
||||
CONVEYOR,PS3_9,9,1,GEOMETRY,1,0,1,0,0,6060.483270,3193.853573,6060.789954,2741.579531
|
||||
CONVEYOR,PS3_10,10,1,GEOMETRY,1,0,1,0,0,6060.789954,2741.579531,6060.495376,2610.801360
|
||||
CONVEYOR,PS3_12,12,1,GEOMETRY,1,1,1,1,1,6007.382954,2569.962296,5948.039145,2529.928635
|
||||
CONVEYOR,UL8_1,1,1,GEOMETRY,1,1,1,0,0,632.618127,3188.888389,824.872344,3157.126582
|
||||
CONVEYOR,UL8_2,2,1,GEOMETRY,1,1,1,0,0,885.669058,3169.966906,1712.765129,3158.462454
|
||||
CONVEYOR,UL8_3,3,1,GEOMETRY,1,0,1,0,0,1712.765129,3158.462454,1817.953869,3155.934504
|
||||
CONVEYOR,UL8_5,5,1,GEOMETRY,1,0,1,0,0,1881.702530,3136.323730,1944.426945,3101.149921
|
||||
CONVEYOR,UL8_6,6,1,GEOMETRY,1,0,1,0,0,1944.426945,3101.149921,1978.682956,3086.062642
|
||||
CONVEYOR,UL8_7,7,1,GEOMETRY,1,0,1,0,0,1978.682956,3086.062642,2007.744900,3063.545268
|
||||
CONVEYOR,UL8_8,8,1,GEOMETRY,1,0,1,0,1,2007.744900,3063.545268,2040.663378,3048.333245
|
||||
CONVEYOR,UL10_1,1,1,GEOMETRY,1,1,1,0,0,632.900863,3592.147634,823.776601,3561.145597
|
||||
CONVEYOR,UL10_2,2,1,GEOMETRY,1,1,1,0,0,874.719154,3570.155999,1720.187324,3564.061477
|
||||
CONVEYOR,UL10_3,3,1,GEOMETRY,1,0,1,0,0,1720.187324,3564.061477,2083.996631,3560.766860
|
||||
CONVEYOR,UL10_4,4,1,GEOMETRY,1,0,1,0,0,2083.996631,3560.766860,2128.229940,3542.739063
|
||||
CONVEYOR,UL10_5,5,1,GEOMETRY,1,0,1,0,0,2128.229940,3542.739063,2164.812356,3542.467143
|
||||
CONVEYOR,UL10_6,6,1,GEOMETRY,1,0,1,0,0,2164.812356,3542.467143,2200.090761,3544.785276
|
||||
CONVEYOR,UL10_7,7,1,GEOMETRY,1,0,1,0,0,2200.090761,3544.785276,2236.861695,3544.527150
|
||||
CONVEYOR,UL10_9,9,1,GEOMETRY,1,0,1,0,1,2309.630704,3563.985881,2358.664691,3592.202752
|
||||
CONVEYOR,UL9_3,3,1,GEOMETRY,1,1,1,0,0,551.208873,3355.007428,907.467125,3324.238385
|
||||
CONVEYOR,UL9_4,4,1,GEOMETRY,1,1,1,0,0,907.467125,3324.238385,1700.371316,3323.415506
|
||||
CONVEYOR,UL9_5,5,1,GEOMETRY,1,0,1,0,0,1700.371316,3323.415506,1826.538319,3321.774338
|
||||
CONVEYOR,UL9_7,7,1,GEOMETRY,1,0,1,0,0,1891.501859,3302.098769,2212.651713,3118.960609
|
||||
CONVEYOR,UL9_8,8,1,GEOMETRY,1,0,1,0,0,2212.651713,3118.960609,2247.352179,3100.254070
|
||||
CONVEYOR,UL9_9,9,1,GEOMETRY,1,0,1,0,0,2247.352179,3100.254070,2277.803935,3081.192233
|
||||
CONVEYOR,UL9_10,10,1,GEOMETRY,1,0,1,0,0,2277.803935,3081.192233,2310.374208,3065.368059
|
||||
CONVEYOR,UL9_11,11,1,GEOMETRY,1,0,1,0,1,2310.374208,3065.368059,2343.399072,3047.086292
|
||||
CONVEYOR,UL11_3,3,1,GEOMETRY,1,1,1,0,0,548.752870,3692.802976,897.324015,3661.485774
|
||||
CONVEYOR,UL11_4,4,1,GEOMETRY,1,1,1,0,0,897.324015,3661.485774,1700.480744,3658.222070
|
||||
CONVEYOR,UL11_5,5,1,GEOMETRY,1,0,1,0,0,1700.480744,3658.222070,1844.529026,3653.231416
|
||||
CONVEYOR,UL11_6,6,1,GEOMETRY,1,0,1,0,0,1844.529026,3653.231416,1879.597360,3657.637923
|
||||
CONVEYOR,UL11_7,7,1,GEOMETRY,1,0,1,0,0,1879.597360,3657.637923,1917.029348,3658.582710
|
||||
CONVEYOR,UL11_8,8,1,GEOMETRY,1,0,1,0,0,1917.029348,3658.582710,1951.991891,3658.283856
|
||||
CONVEYOR,UL11_9,9,1,GEOMETRY,1,0,1,0,0,1951.991891,3658.283856,1988.780120,3658.283856
|
||||
CONVEYOR,UL11_10,10,1,GEOMETRY,1,1,1,0,0,2030.764864,3659.578691,2591.455783,3686.635164
|
||||
CONVEYOR,UL11_12,12,1,GEOMETRY,1,0,1,0,0,2750.134283,3691.074283,2845.387748,3690.854148
|
||||
CONVEYOR,UL11_13,13,1,GEOMETRY,1,0,1,0,0,2845.387748,3690.854148,2953.707982,3688.012958
|
||||
CONVEYOR,UL11_14,14,1,GEOMETRY,1,0,1,1,1,2971.430134,3668.918012,3155.997766,3671.874205
|
||||
CONVEYOR,UL12_3,3,1,GEOMETRY,1,1,1,0,0,543.627555,3859.294486,905.036450,3826.957213
|
||||
CONVEYOR,UL12_4,4,1,GEOMETRY,1,1,1,0,0,905.036450,3826.957213,1742.072614,3827.324144
|
||||
CONVEYOR,UL12_5,5,1,GEOMETRY,1,0,1,0,0,1742.072614,3827.324144,1842.084498,3824.815942
|
||||
CONVEYOR,UL12_7,7,1,GEOMETRY,1,0,1,0,0,1908.852330,3808.657056,1955.553412,3781.851714
|
||||
CONVEYOR,UL12_8,8,1,GEOMETRY,1,0,1,0,0,1955.553412,3781.851714,1986.689623,3761.398031
|
||||
CONVEYOR,UL12_9,9,1,GEOMETRY,1,0,1,0,0,1986.689623,3761.398031,2020.048027,3747.625802
|
||||
CONVEYOR,UL12_10,10,1,GEOMETRY,1,0,1,0,1,2020.048027,3747.625802,2049.673824,3728.878967
|
||||
CONVEYOR,UL7_3,3,1,GEOMETRY,1,1,1,0,0,551.742895,2956.847765,908.026025,2987.966131
|
||||
CONVEYOR,UL7_4,4,1,GEOMETRY,1,1,1,0,0,908.026025,2987.966131,1711.113463,2986.840411
|
||||
CONVEYOR,UL7_5,5,1,GEOMETRY,1,0,1,0,0,1711.113463,2986.840411,1817.542835,2987.029037
|
||||
CONVEYOR,UL7_6,6,1,GEOMETRY,1,0,1,0,0,1817.542835,2987.029037,1857.441282,2972.114781
|
||||
CONVEYOR,UL7_7,7,1,GEOMETRY,1,0,1,0,0,1857.441282,2972.114781,1893.692205,2973.612010
|
||||
CONVEYOR,UL7_8,8,1,GEOMETRY,1,0,1,0,0,1893.692205,2973.612010,1929.723023,2973.789916
|
||||
CONVEYOR,UL7_9,9,1,GEOMETRY,1,0,1,0,0,1929.723023,2973.789916,1965.806948,2973.254470
|
||||
CONVEYOR,UL7_10,10,1,GEOMETRY,1,1,1,0,0,1998.130873,2981.527148,2611.835876,2978.598409
|
||||
CONVEYOR,UL7_12,12,1,GEOMETRY,1,0,1,0,0,2766.420800,2995.096200,2863.133560,2992.295904
|
||||
CONVEYOR,UL7_13,13,1,GEOMETRY,1,0,1,0,0,2863.133560,2992.295904,2970.734203,2992.915446
|
||||
CONVEYOR,UL7_14,14,1,GEOMETRY,1,0,1,1,1,2985.330236,2984.624061,3159.803377,2984.151808
|
||||
CONVEYOR,PS4_2,2,1,GEOMETRY,1,0,1,0,0,3144.026193,3596.341132,3300.316069,3508.372989
|
||||
CONVEYOR,PS4_4,4,1,GEOMETRY,1,0,1,0,0,3310.573165,3523.337000,3352.239313,3524.485575
|
||||
CONVEYOR,PS4_5,5,1,GEOMETRY,1,0,1,0,0,3352.239313,3524.485575,4006.352329,3523.358120
|
||||
CONVEYOR,PS4_6,6,1,GEOMETRY,1,0,1,0,0,4006.352329,3523.358120,4688.607797,3525.782820
|
||||
CONVEYOR,PS4_7,7,1,GEOMETRY,1,0,1,0,0,4688.607797,3525.782820,5611.139091,3525.602719
|
||||
CONVEYOR,PS4_8,8,1,GEOMETRY,1,0,1,0,0,5611.139091,3525.602719,6274.851839,3521.438644
|
||||
CONVEYOR,PS4_10,10,1,GEOMETRY,1,0,1,0,0,6353.888615,3456.502166,6352.160013,2673.212430
|
||||
CONVEYOR,PS4_11,11,1,GEOMETRY,1,0,1,0,0,6352.160013,2673.212430,6349.468358,2155.105517
|
||||
CONVEYOR,PS4_12,12,1,GEOMETRY,1,0,1,0,0,6349.468358,2155.105517,6355.840289,1761.029836
|
||||
CONVEYOR,PS4_14,14,1,GEOMETRY,1,1,1,1,1,6272.313843,1688.457365,5949.215298,1690.378911
|
||||
CONVEYOR,UL11_11,11,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS4_1,1,0,VFD_ONLY_BEFORE_GEOM_END,0,1,1,0,0,,,,
|
||||
CONVEYOR,PS4_3,3,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS3_4,4,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS4_9,9,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS3_8,8,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS3_11,11,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,PS4_13,13,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL7_11,11,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL8_4,4,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL8_9,9,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
CONVEYOR,UL9_6,6,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL12_6,6,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL9_12,12,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
CONVEYOR,UL10_8,8,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
CONVEYOR,UL10_10,10,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
CONVEYOR,UL12_11,11,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
TPE,PS3_1,,,,,,,,,,,,,PS3_1_TPE1,3159.132392,3024.713237,210.000000,45.785116
|
||||
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE1,3519.577701,3258.530860,90.000000,45.785116
|
||||
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE2,4079.105653,3253.674982,90.000000,55.323971
|
||||
TPE,PS3_3,,,,,,,,,,,,,PS3_3_TPE1,3478.820696,3249.442902,120.000000,45.785116
|
||||
TPE,PS3_2,,,,,,,,,,,,,PS3_2_TPE1,3190.945812,3042.099631,210.000000,45.785116
|
||||
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE2,908.026025,2987.966131,90.000000,43.000000
|
||||
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE1,612.253341,3029.621551,0.000000,49.667350
|
||||
TPE,UL7_5,,,,,,,,,,,,,UL7_5_TPE1,1817.542835,2987.029037,90.000000,46.605812
|
||||
TPE,UL7_6,,,,,,,,,,,,,UL7_6_TPE1,1857.441282,2972.114781,90.000000,62.276218
|
||||
TPE,UL7_7,,,,,,,,,,,,,UL7_7_TPE1,1893.692205,2973.612010,90.000000,62.276218
|
||||
TPE,UL7_4,,,,,,,,,,,,,UL7_4_TPE1,1711.113463,2986.840411,90.000000,45.064241
|
||||
TPE,UL7_8,,,,,,,,,,,,,UL7_8_TPE1,1929.723023,2973.789916,90.000000,62.276218
|
||||
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE1,2766.420800,2995.096200,90.000000,49.855884
|
||||
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE2,2863.133560,2992.295904,90.000000,49.242255
|
||||
TPE,UL7_13,,,,,,,,,,,,,UL7_13_TPE1,2970.734203,2992.915446,90.000000,49.057934
|
||||
TPE,PS3_6,,,,,,,,,,,,,PS3_6_TPE1,4784.946959,3257.612009,90.000000,45.785116
|
||||
TPE,PS3_7,,,,,,,,,,,,,PS3_7_TPE1,5985.674639,3259.327631,90.000000,45.785116
|
||||
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE1,6060.483270,3193.853573,180.000000,45.785116
|
||||
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE2,6060.789954,2741.579531,180.000000,45.785116
|
||||
TPE,PS3_10,,,,,,,,,,,,,PS3_10_TPE1,6060.495376,2610.801360,180.000000,45.785116
|
||||
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE1,5987.261559,2530.050002,90.000000,45.785116
|
||||
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE2,5948.039145,2529.928635,90.000000,45.785116
|
||||
TPE,UL8_1,,,,,,,,,,,,,UL8_1_TPE1,824.872344,3157.126582,90.000000,43.000000
|
||||
TPE,UL8_3,,,,,,,,,,,,,UL8_3_TPE1,1817.953869,3155.934504,90.000000,63.087627
|
||||
TPE,UL8_8,,,,,,,,,,,,,UL8_8_TPE1,2040.663378,3048.333245,60.000000,65.489640
|
||||
TPE,UL8_7,,,,,,,,,,,,,UL8_7_TPE1,2007.744900,3063.545268,60.000000,65.489640
|
||||
TPE,UL8_6,,,,,,,,,,,,,UL8_6_TPE1,1978.682956,3086.062642,60.000000,65.489640
|
||||
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE2,1944.426945,3101.149921,60.000000,65.489640
|
||||
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE1,1881.702530,3136.323730,58.094345,65.489640
|
||||
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE1,1891.501859,3302.098769,60.000000,65.489640
|
||||
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE2,2212.651713,3118.960609,58.094345,65.489640
|
||||
TPE,UL9_8,,,,,,,,,,,,,UL9_8_TPE1,2247.352179,3100.254070,58.094345,65.489640
|
||||
TPE,UL9_9,,,,,,,,,,,,,UL9_9_TPE1,2277.803935,3081.192233,58.094345,65.489640
|
||||
TPE,UL9_10,,,,,,,,,,,,,UL9_10_TPE1,2310.374208,3065.368059,58.094345,65.489640
|
||||
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE1,885.669058,3169.966906,270.000000,49.667350
|
||||
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE2,1712.765129,3158.462454,90.000000,43.000000
|
||||
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE1,608.834305,3362.234637,0.000000,49.667350
|
||||
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE2,907.467125,3324.238385,90.000000,43.000000
|
||||
TPE,UL9_4,,,,,,,,,,,,,UL9_4_TPE1,1700.371316,3323.415506,90.000000,43.000000
|
||||
TPE,UL10_1,,,,,,,,,,,,,UL10_1_TPE1,823.776601,3561.145597,90.000000,43.000000
|
||||
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE1,874.719154,3570.155999,270.000000,49.667350
|
||||
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE2,1720.187324,3564.061477,90.000000,43.000000
|
||||
TPE,UL10_4,,,,,,,,,,,,,UL10_4_TPE1,2128.229940,3542.739063,90.000000,62.276218
|
||||
TPE,UL10_5,,,,,,,,,,,,,UL10_5_TPE1,2164.812356,3542.467143,90.000000,62.276218
|
||||
TPE,UL10_6,,,,,,,,,,,,,UL10_6_TPE1,2200.090761,3544.785276,90.000000,62.276218
|
||||
TPE,UL10_3,,,,,,,,,,,,,UL10_3_TPE1,2083.996631,3560.766860,90.000000,45.064241
|
||||
TPE,UL10_7,,,,,,,,,,,,,UL10_7_TPE1,2236.861695,3544.527150,90.000000,62.276218
|
||||
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE1,2309.630704,3563.985881,120.000000,63.276200
|
||||
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE2,2358.664691,3592.202752,120.000000,62.276218
|
||||
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE1,606.378302,3700.030184,0.000000,49.667350
|
||||
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE2,897.324015,3661.485774,90.000000,43.000000
|
||||
TPE,UL11_5,,,,,,,,,,,,,UL11_5_TPE1,1844.529026,3653.231416,90.000000,49.642395
|
||||
TPE,UL11_6,,,,,,,,,,,,,UL11_6_TPE1,1879.597360,3657.637923,90.000000,62.276218
|
||||
TPE,UL11_7,,,,,,,,,,,,,UL11_7_TPE1,1917.029348,3658.582710,90.000000,62.276218
|
||||
TPE,UL11_4,,,,,,,,,,,,,UL11_4_TPE1,1700.480744,3658.222070,90.000000,45.064241
|
||||
TPE,UL11_8,,,,,,,,,,,,,UL11_8_TPE1,1951.991891,3658.283856,90.000000,62.276218
|
||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE1,2030.764864,3659.578691,90.000000,62.276218
|
||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE2,2198.528913,3659.525592,90.000000,62.276218
|
||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE3,2325.765680,3684.433010,270.000000,62.276218
|
||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE4,2487.792623,3686.690780,270.000000,62.276218
|
||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE5,2591.455783,3686.635164,270.000000,62.276218
|
||||
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE1,2750.134283,3691.074283,270.000000,54.406101
|
||||
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE2,2845.387748,3690.854148,270.000000,54.406101
|
||||
TPE,UL11_13,,,,,,,,,,,,,UL11_13_TPE1,2953.707982,3688.012958,270.000000,47.542783
|
||||
TPE,UL12_3,,,,,,,,,,,,,UL12_3_TPE2,905.036450,3826.957213,90.000000,43.000000
|
||||
TPE,UL12_4,,,,,,,,,,,,,UL12_4_TPE1,1742.072614,3827.324144,90.000000,43.000000
|
||||
TPE,UL12_9,,,,,,,,,,,,,UL12_9_TPE1,2020.048027,3747.625802,58.094345,65.489640
|
||||
TPE,UL12_8,,,,,,,,,,,,,UL12_8_TPE1,1986.689623,3761.398031,58.094345,65.489640
|
||||
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE2,1955.553412,3781.851714,58.094345,65.489640
|
||||
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE1,1908.852330,3808.657056,58.094345,65.489640
|
||||
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE1,3144.026193,3596.341132,329.554546,45.785116
|
||||
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE2,3300.316069,3508.372989,329.554546,45.785116
|
||||
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE1,3310.573165,3523.337000,90.000000,45.785116
|
||||
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE2,3352.239313,3524.485575,90.000000,45.785116
|
||||
TPE,PS4_5,,,,,,,,,,,,,PS4_5_TPE1,4006.352329,3523.358120,90.000000,45.785116
|
||||
TPE,PS4_6,,,,,,,,,,,,,PS4_6_TPE1,4688.607797,3525.782820,90.000000,45.785116
|
||||
TPE,PS4_7,,,,,,,,,,,,,PS4_7_TPE1,5611.139091,3525.602719,90.000000,45.785116
|
||||
TPE,PS4_8,,,,,,,,,,,,,PS4_8_TPE1,6274.851839,3521.438644,90.000000,45.785116
|
||||
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE1,6353.888615,3456.502166,180.000000,45.785116
|
||||
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE2,6352.160013,2673.212430,180.000000,45.785116
|
||||
TPE,PS4_11,,,,,,,,,,,,,PS4_11_TPE1,6349.468358,2155.105517,180.000000,45.785116
|
||||
TPE,PS4_12,,,,,,,,,,,,,PS4_12_TPE1,6355.840289,1761.029836,180.000000,45.785116
|
||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE1,2985.330236,2984.624061,90.000000,62.276218
|
||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE2,2995.809571,2984.624061,90.000000,62.276218
|
||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE3,3006.611353,2984.624061,90.000000,62.276218
|
||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE4,3145.918252,2982.299275,90.000000,62.276218
|
||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE5,3159.803377,2984.151808,90.000000,62.276218
|
||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE1,2971.430134,3668.918012,90.000000,62.276218
|
||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE2,2981.909469,3668.918012,90.000000,62.276218
|
||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE3,2992.711251,3668.918012,90.000000,62.276218
|
||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE4,3140.122346,3669.955216,90.000000,62.276218
|
||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE5,3155.997766,3671.874205,90.000000,62.276218
|
||||
TPE,UL7_9,,,,,,,,,,,,,UL7_9_TPE1,1965.806948,2973.254470,90.000000,62.276218
|
||||
TPE,UL9_5,,,,,,,,,,,,,UL9_5_TPE1,1826.538319,3321.774338,90.000000,65.052088
|
||||
TPE,UL9_11,,,,,,,,,,,,,UL9_11_TPE1,2343.399072,3047.086292,58.094345,65.489640
|
||||
TPE,UL11_9,,,,,,,,,,,,,UL11_9_TPE1,1988.780120,3658.283856,90.000000,62.276218
|
||||
TPE,UL12_5,,,,,,,,,,,,,UL12_5_TPE1,1842.084498,3824.815942,90.000000,64.845569
|
||||
TPE,UL12_10,,,,,,,,,,,,,UL12_10_TPE1,2049.673824,3728.878967,58.094345,65.489640
|
||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE2,2184.282561,2976.023749,90.000000,66.331837
|
||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE4,2488.728147,2977.141287,90.000000,63.585604
|
||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE5,2611.835876,2978.598409,90.000000,62.276218
|
||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE1,1998.130873,2981.527148,90.000000,62.276218
|
||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE3,2334.139704,2978.861146,90.000000,62.276218
|
||||
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE1,6272.313843,1688.457365,90.000000,45.785116
|
||||
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE2,5949.215298,1690.378911,90.000000,45.785116
|
||||
|
@ -1,74 +0,0 @@
|
||||
conveyor_key,sec,included,reason,has_tpe,has_epc,has_vfd,is_last_any,is_last_geom,start_x,start_y,end_x,end_y
|
||||
PS1_2,2,1,GEOMETRY,1,0,1,0,0,3182.112871,1751.627960,3307.631353,1679.668896
|
||||
PS1_4,4,1,GEOMETRY,1,0,1,0,0,3377.926229,1655.901734,3931.089961,1657.733689
|
||||
PS1_5,5,1,GEOMETRY,1,1,1,1,1,3931.089961,1657.733689,4262.417377,1656.646266
|
||||
PS2_2,2,1,GEOMETRY,1,0,1,0,0,3099.843745,2245.419901,3140.391285,2223.245100
|
||||
PS2_3,3,1,GEOMETRY,1,0,1,0,0,3140.391285,2223.245100,3588.721702,1959.931507
|
||||
PS2_5,5,1,GEOMETRY,1,0,1,0,0,3660.544200,1941.885284,4197.937505,1938.160461
|
||||
PS2_6,6,1,GEOMETRY,1,1,1,1,1,4197.937505,1938.160461,4259.627698,1938.547503
|
||||
UL1_3,3,1,GEOMETRY,1,1,1,0,0,547.290786,1846.090315,902.762889,1810.459399
|
||||
UL1_4,4,1,GEOMETRY,1,1,1,0,0,902.762889,1810.459399,1731.526555,1810.217430
|
||||
UL1_5,5,1,GEOMETRY,1,0,1,0,0,1731.526555,1810.217430,1839.227859,1809.167581
|
||||
UL1_6,6,1,GEOMETRY,1,0,1,0,0,1839.227859,1809.167581,1876.642886,1807.970923
|
||||
UL1_7,7,1,GEOMETRY,1,0,1,0,0,1876.642886,1807.970923,1912.482307,1808.027116
|
||||
UL1_8,8,1,GEOMETRY,1,0,1,0,0,1912.482307,1808.027116,1948.547333,1806.790209
|
||||
UL1_9,9,1,GEOMETRY,1,0,1,0,0,1948.547333,1806.790209,1985.172076,1809.772901
|
||||
UL1_10,10,1,GEOMETRY,1,1,1,0,0,2020.869443,1811.538199,2641.029923,1810.100198
|
||||
UL1_11,11,1,GEOMETRY,1,0,1,0,0,2641.029923,1810.100198,2803.698247,1810.912459
|
||||
UL1_12,12,1,GEOMETRY,1,0,1,0,0,2803.698247,1810.912459,2893.829959,1825.589512
|
||||
UL1_13,13,1,GEOMETRY,1,0,1,0,0,2893.829959,1825.589512,3018.129340,1821.502800
|
||||
UL1_14,14,1,GEOMETRY,1,0,1,1,1,3034.357601,1826.496682,3281.847811,1820.321611
|
||||
UL2_3,3,1,GEOMETRY,1,1,1,0,0,553.975614,2012.630135,903.404869,1978.577931
|
||||
UL2_4,4,1,GEOMETRY,1,1,1,0,0,903.404869,1978.577931,1719.423553,1977.802191
|
||||
UL2_5,5,1,GEOMETRY,1,0,1,0,0,1719.423553,1977.802191,1822.643168,1978.445929
|
||||
UL2_7,7,1,GEOMETRY,1,0,1,0,0,1899.557661,1958.742816,1944.517637,1930.951081
|
||||
UL2_8,8,1,GEOMETRY,1,0,1,0,0,1944.517637,1930.951081,1976.150833,1915.448512
|
||||
UL2_9,9,1,GEOMETRY,1,0,1,0,0,1976.150833,1915.448512,2008.246923,1897.796075
|
||||
UL2_10,10,1,GEOMETRY,1,0,1,0,1,2008.246923,1897.796075,2037.918359,1881.625600
|
||||
UL3_1,1,1,GEOMETRY,1,1,1,0,0,633.140086,2120.663545,831.814701,2091.737797
|
||||
UL3_2,2,1,GEOMETRY,1,1,1,0,0,878.893221,2098.646563,1861.404040,2089.400325
|
||||
UL3_3,3,1,GEOMETRY,1,0,1,0,0,1861.404040,2089.400325,2017.419596,2090.046509
|
||||
UL3_5,5,1,GEOMETRY,1,0,1,0,0,2082.236933,2070.328821,2282.772670,1950.214639
|
||||
UL3_6,6,1,GEOMETRY,1,0,1,0,0,2282.772670,1950.214639,2315.361086,1932.846138
|
||||
UL3_7,7,1,GEOMETRY,1,0,1,0,0,2315.361086,1932.846138,2348.664717,1919.645834
|
||||
UL3_8,8,1,GEOMETRY,1,0,1,0,0,2348.664717,1919.645834,2378.129323,1897.913034
|
||||
UL3_9,9,1,GEOMETRY,1,0,1,0,1,2378.129323,1897.913034,2408.907201,1881.035163
|
||||
UL4_3,3,1,GEOMETRY,1,1,1,0,0,552.788849,2350.626783,905.700382,2315.449436
|
||||
UL4_4,4,1,GEOMETRY,1,1,1,0,0,905.700382,2315.449436,1712.101194,2313.812375
|
||||
UL4_5,5,1,GEOMETRY,1,0,1,0,0,1712.101194,2313.812375,1819.964891,2317.864418
|
||||
UL4_6,6,1,GEOMETRY,1,0,1,0,0,1819.964891,2317.864418,1856.812083,2304.600063
|
||||
UL4_7,7,1,GEOMETRY,1,0,1,0,0,1856.812083,2304.600063,1892.551907,2306.435269
|
||||
UL4_8,8,1,GEOMETRY,1,0,1,0,0,1892.551907,2306.435269,1928.981908,2306.047462
|
||||
UL4_9,9,1,GEOMETRY,1,0,1,0,0,1928.981908,2306.047462,1965.024016,2306.234051
|
||||
UL4_10,10,1,GEOMETRY,1,1,1,0,0,2001.418905,2307.809246,2557.362372,2308.264495
|
||||
UL4_11,11,1,GEOMETRY,1,0,1,0,0,2557.362372,2308.264495,2718.741165,2320.506810
|
||||
UL4_12,12,1,GEOMETRY,1,0,1,0,0,2718.741165,2320.506810,2815.749256,2323.832156
|
||||
UL4_13,13,1,GEOMETRY,1,0,1,0,0,2815.749256,2323.832156,2914.786899,2322.882657
|
||||
UL4_14,14,1,GEOMETRY,1,0,1,1,1,2925.448433,2318.555436,3138.255794,2321.951658
|
||||
UL5_3,3,1,GEOMETRY,1,1,1,0,0,546.894209,2453.798891,903.442508,2479.527764
|
||||
UL5_4,4,1,GEOMETRY,1,1,1,0,0,903.442508,2479.527764,1691.840905,2484.924653
|
||||
UL5_5,5,1,GEOMETRY,1,0,1,0,0,1691.840905,2484.924653,1789.119716,2480.254441
|
||||
UL5_7,7,1,GEOMETRY,1,0,1,0,0,1854.915951,2464.288039,1913.811244,2428.171974
|
||||
UL5_8,8,1,GEOMETRY,1,0,1,0,0,1913.811244,2428.171974,1946.027358,2411.078652
|
||||
UL5_9,9,1,GEOMETRY,1,0,1,0,0,1946.027358,2411.078652,1976.288196,2392.094872
|
||||
UL5_10,10,1,GEOMETRY,1,0,1,0,1,1976.288196,2392.094872,2008.055527,2375.211118
|
||||
UL6_1,1,1,GEOMETRY,1,1,1,0,0,633.808413,2684.658977,830.713568,2651.384227
|
||||
UL6_2,2,1,GEOMETRY,1,1,1,0,0,889.155446,2663.081118,1706.522553,2653.949825
|
||||
UL6_3,3,1,GEOMETRY,1,0,1,0,0,1706.522553,2653.949825,1811.247017,2651.041122
|
||||
UL6_5,5,1,GEOMETRY,1,0,1,0,0,1876.189950,2633.114258,2190.222142,2447.433453
|
||||
UL6_6,6,1,GEOMETRY,1,0,1,0,0,2190.222142,2447.433453,2221.929865,2428.342256
|
||||
UL6_7,7,1,GEOMETRY,1,0,1,0,0,2221.929865,2428.342256,2254.419133,2412.811656
|
||||
UL6_8,8,1,GEOMETRY,1,0,1,0,0,2254.419133,2412.811656,2285.596047,2394.811656
|
||||
UL6_9,9,1,GEOMETRY,1,0,1,0,1,2285.596047,2394.811656,2315.906936,2377.311656
|
||||
UL2_6,6,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
UL3_4,4,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
PS1_1,1,0,VFD_ONLY_BEFORE_GEOM_END,0,1,1,0,0,,,,
|
||||
PS2_4,4,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
PS1_3,3,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
PS2_1,1,0,VFD_ONLY_BEFORE_GEOM_END,0,1,1,0,0,,,,
|
||||
UL5_6,6,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
UL2_11,11,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
UL3_10,10,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
UL5_11,11,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
UL6_4,4,0,VFD_ONLY_BEFORE_GEOM_END,0,0,1,0,0,,,,
|
||||
UL6_10,10,0,VFD_ONLY_LAST_MAY_MERGE,0,0,1,1,0,,,,
|
||||
|
113
generate_csv.lsp
113
generate_csv.lsp
@ -42,6 +42,29 @@
|
||||
(append parts (list cur))
|
||||
)
|
||||
|
||||
(defun getDynPropVal (blk propName / props p n raw v)
|
||||
(setq propName (strcase propName))
|
||||
(setq v nil)
|
||||
|
||||
(if (= :vlax-true (vla-get-isdynamicblock blk))
|
||||
(progn
|
||||
(setq props (vlax-invoke blk 'GetDynamicBlockProperties))
|
||||
(foreach p props
|
||||
(setq n (strcase (vla-get-propertyname p)))
|
||||
(if (= n propName)
|
||||
(progn
|
||||
(setq raw (vlax-variant-value (vla-get-value p)))
|
||||
(if (numberp raw) (setq v raw))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
v
|
||||
)
|
||||
|
||||
|
||||
|
||||
(defun parse-ptag1-anchor (ptag / s parts prefix section third kind idx)
|
||||
(setq s (strcase (vl-string-trim " " ptag)))
|
||||
(if (and s (vl-string-search "_" s))
|
||||
@ -96,6 +119,23 @@
|
||||
nil)))
|
||||
)
|
||||
|
||||
(defun PI () (* 4.0 (atan 1.0)))
|
||||
|
||||
(defun rad->deg (r)
|
||||
(* r (/ 180.0 (PI)))
|
||||
)
|
||||
|
||||
(defun tpe-rot-deg (raw / v)
|
||||
;; raw may already be degrees in some blocks, or radians in others.
|
||||
;; Heuristic: if abs(v) <= ~2π it's radians, else it's degrees.
|
||||
(setq v raw)
|
||||
(if (and (numberp v) (<= (abs v) (* 2.0 (PI))))
|
||||
(rad->deg v)
|
||||
v
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun dist2d (p q / dx dy)
|
||||
(setq dx (- (car p) (car q)))
|
||||
(setq dy (- (cadr p) (cadr q)))
|
||||
@ -167,6 +207,12 @@
|
||||
(progn
|
||||
(setq attList (vlax-invoke blk 'GetAttributes))
|
||||
(setq ptag (getAttVal attList "P_TAG1"))
|
||||
;; >>> ADDED: TPE-specific dynamic properties (Custom section)
|
||||
(setq tpeRotRaw (getDynPropValNum blk "PE ROTATION")) ; numeric
|
||||
(setq tpeRot (tpe-rot-deg tpeRotRaw))
|
||||
(setq tpeDist (getDynPropVal blk "Distance1"))
|
||||
|
||||
|
||||
(setq parsed (parse-ptag1-anchor ptag))
|
||||
|
||||
(if parsed
|
||||
@ -183,7 +229,7 @@
|
||||
(setq xy (list (car insPt) (cadr insPt)))
|
||||
(setq entries (cdr (assoc key tpeMap)))
|
||||
(if (not entries) (setq entries '()))
|
||||
(setq entries (cons (list idx xy) entries))
|
||||
(setq entries (cons (list idx xy ptag tpeRot tpeDist) entries))
|
||||
(setq tpeMap
|
||||
(if (assoc key tpeMap)
|
||||
(subst (cons key entries) (assoc key tpeMap) tpeMap)
|
||||
@ -323,13 +369,27 @@
|
||||
)
|
||||
|
||||
;; --- 3) Write CSV ---
|
||||
(setq outPath (getfiled "Save conveyors CSV"
|
||||
(strcat (getvar "DWGPREFIX") "conveyors.csv")
|
||||
"csv" 1))
|
||||
(setq outPath
|
||||
(getfiled
|
||||
"Save conveyors CSV"
|
||||
(strcat
|
||||
(getvar "DWGPREFIX")
|
||||
(vl-filename-base (getvar "DWGNAME"))
|
||||
".csv"
|
||||
)
|
||||
"csv"
|
||||
1
|
||||
)
|
||||
)
|
||||
|
||||
(if outPath
|
||||
(progn
|
||||
(setq fh (open outPath "w"))
|
||||
(write-line "conveyor_key,sec,included,reason,has_tpe,has_epc,has_vfd,is_last_any,is_last_geom,start_x,start_y,end_x,end_y" fh)
|
||||
;; >>> ADDED: record_type + TPE columns
|
||||
(write-line
|
||||
"record_type,conveyor_key,sec,included,reason,has_tpe,has_epc,has_vfd,is_last_any,is_last_geom,start_x,start_y,end_x,end_y,tpe_name,tpe_x,tpe_y,tpe_rotation,tpe_distance"
|
||||
fh)
|
||||
|
||||
|
||||
;; --- 3A) Geometry conveyors (included=1) ---
|
||||
(foreach kv chainMap
|
||||
@ -393,9 +453,9 @@
|
||||
(setq isLastAny (if (= secNum maxAny) 1 0))
|
||||
(setq isLastGeom (if (= secNum maxGeom) 1 0))
|
||||
(setq reason "GEOMETRY")
|
||||
|
||||
(write-line
|
||||
(strcat
|
||||
"CONVEYOR," ;; >>> ADDED
|
||||
key "," (itoa secNum) ","
|
||||
(itoa included) "," reason ","
|
||||
(itoa hasT) "," (itoa hasE) "," (itoa hasV) ","
|
||||
@ -405,6 +465,7 @@
|
||||
)
|
||||
fh
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
@ -444,6 +505,7 @@
|
||||
|
||||
(write-line
|
||||
(strcat
|
||||
"CONVEYOR," ;; >>> ADDED
|
||||
key "," (itoa secNum) ","
|
||||
(itoa included) "," reason ","
|
||||
(itoa hasT) "," (itoa hasE) "," (itoa hasV) ","
|
||||
@ -451,9 +513,48 @@
|
||||
)
|
||||
fh
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; 3C) TPE records
|
||||
;; ============================================================
|
||||
;; record_type = TPE
|
||||
;; sec column intentionally left EMPTY
|
||||
;; ============================================================
|
||||
|
||||
(foreach kv tpeMap
|
||||
(setq key (car kv))
|
||||
|
||||
(foreach it (cdr kv)
|
||||
(setq idx (nth 0 it))
|
||||
(setq xy (nth 1 it))
|
||||
(setq tpeName (nth 2 it))
|
||||
(setq tpeRot (nth 3 it))
|
||||
(setq tpeDist (nth 4 it))
|
||||
|
||||
(write-line
|
||||
(strcat
|
||||
"TPE," ;; record_type
|
||||
key "," ;; conveyor_key
|
||||
"," ;; sec (INTENTIONALLY EMPTY)
|
||||
",,,,,,,," ;; conveyor-only fields
|
||||
"," "," "," ;; start_x,start_y,end_x,end_y empty
|
||||
tpeName "," ;; tpe_name
|
||||
(rtos (car xy) 2 6) ","
|
||||
(rtos (cadr xy) 2 6) ","
|
||||
(rtos (tpe-rot-deg tpeRot) 2 6) "," ;; tpe_rotation
|
||||
(if tpeDist (rtos tpeDist 2 6) "") ;; tpe_distance
|
||||
|
||||
)
|
||||
fh
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
(close fh)
|
||||
(princ (strcat "\nExported conveyors to: " outPath))
|
||||
|
||||
@ -2,39 +2,76 @@ import csv
|
||||
import math
|
||||
from pathlib import Path
|
||||
|
||||
# -----------------------
|
||||
# AUTO CSV DISCOVERY
|
||||
# -----------------------
|
||||
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||
csv_files = list(SCRIPT_DIR.glob("*.csv"))
|
||||
|
||||
if len(csv_files) == 0:
|
||||
raise RuntimeError("No CSV file found in script directory.")
|
||||
if len(csv_files) > 1:
|
||||
raise RuntimeError(
|
||||
"Multiple CSV files found. Please keep only ONE CSV in the folder:\n"
|
||||
+ "\n".join(f.name for f in csv_files)
|
||||
)
|
||||
|
||||
CSV_PATH = csv_files[0]
|
||||
OUT_TSCN = CSV_PATH.with_suffix(".tscn")
|
||||
|
||||
print(f"Using CSV: {CSV_PATH.name}")
|
||||
print(f"Generating scene: {OUT_TSCN.name}")
|
||||
|
||||
# -----------------------
|
||||
# CONFIG
|
||||
# -----------------------
|
||||
CSV_PATH = "conveyors.csv"
|
||||
OUT_TSCN = "generated_conveyors.tscn"
|
||||
|
||||
SCALE = 0.0254
|
||||
FIXED_Y = 2.5
|
||||
|
||||
STRAIGHT_BELT_ID = "3_38ygf"
|
||||
CURVED_BELT_ID = "1_ef28r"
|
||||
|
||||
# Spur / curve tuning
|
||||
SPUR_TANGENT_NUDGE = 0.0
|
||||
MIN_CURVE_DEG = 1.0
|
||||
MIN_REAL_ROT_DEG = 5.0
|
||||
|
||||
# Geometry (must match asset)
|
||||
CURVE_INNER_RADIUS = 1.815
|
||||
BELT_WIDTH = 1.524
|
||||
CURVE_INNER_RADIUS = 0.5
|
||||
BELT_WIDTH_DEFAULT = 1.524 # default size.z
|
||||
DEGEN_EPS = 0.001 # meters (true zero-length)
|
||||
|
||||
# Gap stitching tolerance
|
||||
EPS = 0.05 # meters
|
||||
|
||||
# Straight-run “de-jitter” (alignment) pass
|
||||
STRAIGHTEN_RUNS = True
|
||||
STRAIGHTEN_MAX_DEV_DEG = 2.0 # if a "straight run" deviates more than this, skip straightening that run
|
||||
|
||||
# Optional width columns (if you add them to CSV later)
|
||||
# - *_m assumed meters
|
||||
# - *_in assumed inches -> meters via SCALE
|
||||
WIDTH_COLS = [
|
||||
("belt_width_m", 1.0),
|
||||
("width_m", 1.0),
|
||||
("belt_width_in", SCALE),
|
||||
("width_in", SCALE),
|
||||
("belt_width", SCALE), # treat as inches by default
|
||||
("width", SCALE),
|
||||
]
|
||||
|
||||
# -----------------------
|
||||
# HELPERS
|
||||
# -----------------------
|
||||
def rot_deg(rot_y):
|
||||
return abs(rot_y * 180.0 / math.pi)
|
||||
|
||||
def transform_from_points(x1, y1, x2, y2):
|
||||
dx = x2 - x1
|
||||
dy = y2 - y1
|
||||
|
||||
length = math.hypot(dx, dy) * SCALE
|
||||
|
||||
mid_x = (x1 + x2) / 2 * SCALE
|
||||
mid_z = -(y1 + y2) / 2 * SCALE # AutoCAD Y → Godot -Z
|
||||
|
||||
rot_y = math.atan2(-dy, dx)
|
||||
mid_z = -(y1 + y2) / 2 * SCALE
|
||||
rot_y = math.atan2(-dy, dx) # AutoCAD +Y becomes Godot -Z
|
||||
|
||||
return {
|
||||
"length": length,
|
||||
@ -62,23 +99,17 @@ def unit_fwd(rot_y):
|
||||
def unit_right(rot_y):
|
||||
return -math.sin(rot_y), math.cos(rot_y)
|
||||
|
||||
def end_point(conv):
|
||||
dx, dz = unit_fwd(conv["rot_y"])
|
||||
half = conv["length"] / 2
|
||||
return (
|
||||
conv["pos"][0] + dx * half,
|
||||
conv["pos"][2] + dz * half
|
||||
)
|
||||
|
||||
def start_point(conv):
|
||||
dx, dz = unit_fwd(conv["rot_y"])
|
||||
half = conv["length"] / 2
|
||||
return (
|
||||
conv["pos"][0] - dx * half,
|
||||
conv["pos"][2] - dz * half
|
||||
)
|
||||
return (conv["pos"][0] - dx * half, conv["pos"][2] - dz * half)
|
||||
|
||||
def add_straight_node(lines, name, rot_y, cx, cz, length):
|
||||
def end_point(conv):
|
||||
dx, dz = unit_fwd(conv["rot_y"])
|
||||
half = conv["length"] / 2
|
||||
return (conv["pos"][0] + dx * half, conv["pos"][2] + dz * half)
|
||||
|
||||
def add_straight_node(lines, name, rot_y, cx, cz, length, width):
|
||||
t = transform3d(rot_y, cx, FIXED_Y, cz)
|
||||
lines.append(f'[node name="{name}" parent="." instance=ExtResource("{STRAIGHT_BELT_ID}")]')
|
||||
lines.append(f"transform = {t}")
|
||||
@ -88,7 +119,7 @@ def add_straight_node(lines, name, rot_y, cx, cz, length):
|
||||
lines.append("tail_end_leg_enabled = false")
|
||||
lines.append("enable_comms = true")
|
||||
lines.append(f'speed_tag_name = "{name}_OIP"')
|
||||
lines.append(f"size = Vector3({length:.6f}, 0.5, 1.524)")
|
||||
lines.append(f"size = Vector3({length:.6f}, 0.5, {width:.6f})")
|
||||
lines.append("")
|
||||
|
||||
def add_curved_node(lines, name, rot_y, px, pz, angle_deg):
|
||||
@ -101,22 +132,96 @@ def add_curved_node(lines, name, rot_y, px, pz, angle_deg):
|
||||
lines.append(f'speed_tag_name = "{name}_OIP"')
|
||||
lines.append("")
|
||||
|
||||
def angle_between_fwd(a_fwd, b_fwd):
|
||||
ax, az = a_fwd
|
||||
bx, bz = b_fwd
|
||||
cross = ax * bz - az * bx
|
||||
dot = ax * bx + az * bz
|
||||
return abs(math.atan2(cross, dot))
|
||||
|
||||
def rebuild_from_start_end(conv, sx, sz, ex, ez):
|
||||
length = math.hypot(ex - sx, ez - sz)
|
||||
|
||||
cx = (sx + ex) / 2
|
||||
cz = (sz + ez) / 2
|
||||
rot_y = math.atan2(ez - sz, ex - sx)
|
||||
|
||||
conv["length"] = length
|
||||
conv["pos"] = (cx, FIXED_Y, cz)
|
||||
conv["rot_y"] = rot_y
|
||||
conv["start"] = (sx, sz)
|
||||
conv["end"] = (ex, ez)
|
||||
conv["fwd"] = unit_fwd(rot_y)
|
||||
|
||||
def unit_from_to(ax, az, bx, bz):
|
||||
dx = bx - ax
|
||||
dz = bz - az
|
||||
d = math.hypot(dx, dz)
|
||||
if d <= 0.0:
|
||||
return (0.0, 0.0), 0.0
|
||||
return (dx / d, dz / d), d
|
||||
|
||||
def get_width_from_row(row):
|
||||
for col, mul in WIDTH_COLS:
|
||||
if col in row:
|
||||
v = str(row[col]).strip()
|
||||
if v != "":
|
||||
try:
|
||||
return float(v) * mul
|
||||
except ValueError:
|
||||
pass
|
||||
return BELT_WIDTH_DEFAULT
|
||||
|
||||
def best_fit_dir(points):
|
||||
# PCA in 2D: angle = 0.5 * atan2(2*Sxz, Sxx - Szz)
|
||||
if len(points) < 2:
|
||||
return (1.0, 0.0)
|
||||
|
||||
mx = sum(x for x, _ in points) / len(points)
|
||||
mz = sum(z for _, z in points) / len(points)
|
||||
|
||||
sxx = szz = sxz = 0.0
|
||||
for x, z in points:
|
||||
dx = x - mx
|
||||
dz = z - mz
|
||||
sxx += dx * dx
|
||||
szz += dz * dz
|
||||
sxz += dx * dz
|
||||
|
||||
if sxx == 0.0 and szz == 0.0 and sxz == 0.0:
|
||||
return (1.0, 0.0)
|
||||
|
||||
ang = 0.5 * math.atan2(2.0 * sxz, (sxx - szz))
|
||||
return (math.cos(ang), math.sin(ang))
|
||||
|
||||
def project_to_line(origin, direction, p):
|
||||
ox, oz = origin
|
||||
dx, dz = direction
|
||||
px, pz = p
|
||||
t = (px - ox) * dx + (pz - oz) * dz
|
||||
return (ox + dx * t, oz + dz * t)
|
||||
|
||||
# -----------------------
|
||||
# READ CSV
|
||||
# -----------------------
|
||||
straight = {}
|
||||
vfd_only = [] # included=0 candidates (some will become spurs, others will be chain-continued)
|
||||
straight = {} # geometry + chain-continued + promoted inline gaps
|
||||
vfd_only = [] # included=0
|
||||
|
||||
with open(CSV_PATH, newline="") as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
key = row["conveyor_key"].strip()
|
||||
included = row["included"].strip()
|
||||
# -----------------------
|
||||
# NEW: only process conveyor rows
|
||||
# -----------------------
|
||||
if row.get("record_type", "CONVEYOR") != "CONVEYOR":
|
||||
continue
|
||||
|
||||
key = row["conveyor_key"].strip()
|
||||
included = str(row["included"]).strip()
|
||||
prefix, sec = parse_key(key)
|
||||
|
||||
if included == "1":
|
||||
if not all(row[c].strip() for c in ("start_x", "start_y", "end_x", "end_y")):
|
||||
if not all(str(row.get(c, "")).strip() for c in ("start_x", "start_y", "end_x", "end_y")):
|
||||
continue
|
||||
|
||||
conv = transform_from_points(
|
||||
@ -125,21 +230,234 @@ with open(CSV_PATH, newline="") as f:
|
||||
float(row["end_x"]),
|
||||
float(row["end_y"])
|
||||
)
|
||||
|
||||
conv["name"] = key
|
||||
conv["prefix"] = prefix
|
||||
conv["sec"] = sec
|
||||
|
||||
conv["width"] = get_width_from_row(row)
|
||||
straight[key] = conv
|
||||
else:
|
||||
vfd_only.append({"name": key, "prefix": prefix, "sec": sec})
|
||||
|
||||
# Precompute endpoints & directions for geometry straights
|
||||
# Precompute geometry data
|
||||
for c in straight.values():
|
||||
c["start"] = start_point(c)
|
||||
c["end"] = end_point(c)
|
||||
c["fwd"] = unit_fwd(c["rot_y"])
|
||||
|
||||
# -----------------------
|
||||
# 1.5) Extend geometry-to-geometry gaps (degenerate-aware)
|
||||
# -----------------------
|
||||
by_prefix = {}
|
||||
for c in straight.values():
|
||||
sx, sz = c["start"]
|
||||
ex, ez = c["end"]
|
||||
c["degenerate"] = (math.hypot(ex - sx, ez - sz) <= DEGEN_EPS)
|
||||
|
||||
# For degenerate belts, start=end is the anchor location
|
||||
c["anchor"] = c["start"]
|
||||
|
||||
by_prefix.setdefault(c["prefix"], []).append(c)
|
||||
|
||||
for prefix, items in by_prefix.items():
|
||||
items.sort(key=lambda x: x["sec"])
|
||||
|
||||
i = 0
|
||||
while i < len(items) - 1:
|
||||
a = items[i]
|
||||
b = items[i + 1]
|
||||
|
||||
# -------------------------------
|
||||
# CASE 1: b is degenerate
|
||||
# First try: rebuild b from a.end -> b.anchor
|
||||
# -------------------------------
|
||||
if b["degenerate"]:
|
||||
ax, az = a["end"]
|
||||
bx, bz = b["anchor"]
|
||||
|
||||
to_vec, dist = unit_from_to(ax, az, bx, bz)
|
||||
if dist > EPS:
|
||||
if angle_between_fwd(a["fwd"], to_vec) <= math.radians(MIN_CURVE_DEG):
|
||||
rebuild_from_start_end(b, ax, az, bx, bz)
|
||||
b["degenerate"] = (b["length"] <= DEGEN_EPS)
|
||||
i += 1
|
||||
continue
|
||||
|
||||
# Fallback: a.end -> next non-degenerate start
|
||||
j = i + 2
|
||||
while j < len(items) and items[j]["degenerate"]:
|
||||
j += 1
|
||||
|
||||
if j < len(items):
|
||||
c = items[j]
|
||||
if angle_between_fwd(a["fwd"], c["fwd"]) <= math.radians(MIN_CURVE_DEG):
|
||||
sx, sz = a["end"]
|
||||
ex, ez = c["start"]
|
||||
span = math.hypot(ex - sx, ez - sz)
|
||||
if span > EPS:
|
||||
rebuild_from_start_end(b, sx, sz, ex, ez)
|
||||
b["degenerate"] = (b["length"] <= DEGEN_EPS)
|
||||
|
||||
i += 1
|
||||
continue
|
||||
|
||||
# -------------------------------
|
||||
# CASE 2: normal gap extension
|
||||
# extend a → b.start
|
||||
# -------------------------------
|
||||
if angle_between_fwd(a["fwd"], b["fwd"]) > math.radians(MIN_CURVE_DEG):
|
||||
i += 1
|
||||
continue # real turn
|
||||
|
||||
dx = b["start"][0] - a["end"][0]
|
||||
dz = b["start"][1] - a["end"][1]
|
||||
gap = math.hypot(dx, dz)
|
||||
|
||||
if gap <= EPS:
|
||||
i += 1
|
||||
continue # already touching
|
||||
|
||||
sx, sz = a["start"]
|
||||
ex, ez = b["start"]
|
||||
|
||||
rebuild_from_start_end(a, sx, sz, ex, ez)
|
||||
a["degenerate"] = (a["length"] <= DEGEN_EPS)
|
||||
|
||||
i += 1
|
||||
|
||||
# Normalize flags
|
||||
for c in straight.values():
|
||||
c["degenerate"] = (c["length"] <= DEGEN_EPS)
|
||||
|
||||
# -----------------------
|
||||
# 1) Chain-continue VFD-only straights (NO rendering yet)
|
||||
# -----------------------
|
||||
placed_chain = set()
|
||||
made_progress = True
|
||||
|
||||
while made_progress:
|
||||
made_progress = False
|
||||
|
||||
for item in vfd_only:
|
||||
name = item["name"]
|
||||
if name in straight or name in placed_chain:
|
||||
continue
|
||||
|
||||
prefix = item["prefix"]
|
||||
sec = item["sec"]
|
||||
prev_key = f"{prefix}_{sec-1}"
|
||||
next_key = f"{prefix}_{sec+1}"
|
||||
|
||||
if prev_key in straight and next_key not in straight:
|
||||
ref = straight[prev_key]
|
||||
dx, dz = ref["fwd"]
|
||||
length = ref["length"]
|
||||
|
||||
sx, sz = ref["end"]
|
||||
ex, ez = sx + dx * length, sz + dz * length
|
||||
cx, cz = sx + dx * length / 2, sz + dz * length / 2
|
||||
|
||||
straight[name] = {
|
||||
"name": name,
|
||||
"prefix": prefix,
|
||||
"sec": sec,
|
||||
"length": length,
|
||||
"pos": (cx, FIXED_Y, cz),
|
||||
"rot_y": ref["rot_y"],
|
||||
"start": (sx, sz),
|
||||
"end": (ex, ez),
|
||||
"fwd": (dx, dz),
|
||||
"degenerate": (length <= DEGEN_EPS),
|
||||
"anchor": (sx, sz),
|
||||
"width": ref.get("width", BELT_WIDTH_DEFAULT),
|
||||
}
|
||||
placed_chain.add(name)
|
||||
made_progress = True
|
||||
continue
|
||||
|
||||
if next_key in straight and prev_key not in straight:
|
||||
ref = straight[next_key]
|
||||
dx, dz = ref["fwd"]
|
||||
length = ref["length"]
|
||||
|
||||
ex, ez = ref["start"]
|
||||
sx, sz = ex - dx * length, ez - dz * length
|
||||
cx, cz = sx + dx * length / 2, sz + dz * length / 2
|
||||
|
||||
straight[name] = {
|
||||
"name": name,
|
||||
"prefix": prefix,
|
||||
"sec": sec,
|
||||
"length": length,
|
||||
"pos": (cx, FIXED_Y, cz),
|
||||
"rot_y": ref["rot_y"],
|
||||
"start": (sx, sz),
|
||||
"end": (ex, ez),
|
||||
"fwd": (dx, dz),
|
||||
"degenerate": (length <= DEGEN_EPS),
|
||||
"anchor": (sx, sz),
|
||||
"width": ref.get("width", BELT_WIDTH_DEFAULT),
|
||||
}
|
||||
placed_chain.add(name)
|
||||
made_progress = True
|
||||
continue
|
||||
|
||||
# -----------------------
|
||||
# 1.75) Straight-run de-jitter (fix tiny rotations from noisy points)
|
||||
# -----------------------
|
||||
if STRAIGHTEN_RUNS:
|
||||
by_prefix2 = {}
|
||||
for c in straight.values():
|
||||
by_prefix2.setdefault(c["prefix"], []).append(c)
|
||||
|
||||
for prefix, items in by_prefix2.items():
|
||||
items.sort(key=lambda x: x["sec"])
|
||||
run_start = 0
|
||||
|
||||
while run_start < len(items):
|
||||
run_end = run_start
|
||||
while run_end + 1 < len(items):
|
||||
a = items[run_end]
|
||||
b = items[run_end + 1]
|
||||
if angle_between_fwd(a["fwd"], b["fwd"]) > math.radians(MIN_CURVE_DEG):
|
||||
break
|
||||
run_end += 1
|
||||
|
||||
# Run is items[run_start : run_end+1]
|
||||
if run_end - run_start >= 1:
|
||||
run = items[run_start:run_end + 1]
|
||||
|
||||
# Nodes: start of first, then each end
|
||||
nodes = [run[0]["start"]] + [seg["end"] for seg in run]
|
||||
|
||||
# Fit direction
|
||||
d = best_fit_dir(nodes)
|
||||
|
||||
# Orient direction from first -> last
|
||||
fx, fz = nodes[0]
|
||||
lx, lz = nodes[-1]
|
||||
if (lx - fx) * d[0] + (lz - fz) * d[1] < 0:
|
||||
d = (-d[0], -d[1])
|
||||
|
||||
# If any segment in this run is way off, skip straightening this run
|
||||
max_dev = 0.0
|
||||
for seg in run:
|
||||
if seg["length"] > DEGEN_EPS:
|
||||
max_dev = max(max_dev, angle_between_fwd(seg["fwd"], d))
|
||||
|
||||
if max_dev <= math.radians(STRAIGHTEN_MAX_DEV_DEG):
|
||||
origin = nodes[0]
|
||||
new_nodes = [project_to_line(origin, d, p) for p in nodes]
|
||||
|
||||
# Rebuild each segment from projected nodes
|
||||
for seg, p0, p1 in zip(run, new_nodes[:-1], new_nodes[1:]):
|
||||
rebuild_from_start_end(seg, p0[0], p0[1], p1[0], p1[1])
|
||||
|
||||
run_start = run_end + 1
|
||||
|
||||
# Final normalize flags after straightening
|
||||
for c in straight.values():
|
||||
c["degenerate"] = (c["length"] <= DEGEN_EPS)
|
||||
|
||||
# -----------------------
|
||||
# WRITE TSCN
|
||||
# -----------------------
|
||||
@ -152,157 +470,126 @@ lines.append('')
|
||||
lines.append('[node name="GeneratedConveyors" type="Node3D"]')
|
||||
lines.append('')
|
||||
|
||||
# -----------------------
|
||||
# 1) Geometry straight conveyors (included=1)
|
||||
# -----------------------
|
||||
for c in straight.values():
|
||||
cx, _, cz = c["pos"]
|
||||
add_straight_node(lines, c["name"], c["rot_y"], cx, cz, c["length"])
|
||||
written_straights = set()
|
||||
for name in sorted(straight.keys()):
|
||||
c = straight[name]
|
||||
|
||||
# -----------------------
|
||||
# 2) Spur conveyors (use vfd_only list, but mark those we actually place)
|
||||
# -----------------------
|
||||
# Only skip true zero-length belts
|
||||
if c["length"] <= DEGEN_EPS:
|
||||
continue
|
||||
|
||||
cx, _, cz = c["pos"]
|
||||
width = c.get("width", BELT_WIDTH_DEFAULT)
|
||||
add_straight_node(lines, name, c["rot_y"], cx, cz, c["length"], width)
|
||||
written_straights.add(name)
|
||||
|
||||
# Spur logic (kept)
|
||||
placed_spurs = set()
|
||||
|
||||
for spur in vfd_only:
|
||||
name = spur["name"]
|
||||
if name in straight:
|
||||
continue
|
||||
|
||||
prefix = spur["prefix"]
|
||||
sec = spur["sec"]
|
||||
|
||||
prev_key = f"{prefix}_{sec-1}"
|
||||
next_key = f"{prefix}_{sec+1}"
|
||||
|
||||
# spur needs both neighbors with geometry (or already-added straights later, but at this stage it's fine)
|
||||
if prev_key not in straight or next_key not in straight:
|
||||
continue
|
||||
|
||||
prev = straight[prev_key]
|
||||
nxt = straight[next_key]
|
||||
nxt = straight[next_key]
|
||||
|
||||
pfx, pfz = prev["fwd"]
|
||||
nfx, nfz = nxt["fwd"]
|
||||
|
||||
cross = pfx * nfz - pfz * nfx
|
||||
dot = pfx * nfx + pfz * nfz
|
||||
dot = pfx * nfx + pfz * nfz
|
||||
delta = math.atan2(cross, dot)
|
||||
|
||||
angle_deg = abs(delta) * 180.0 / math.pi
|
||||
if angle_deg < MIN_CURVE_DEG:
|
||||
continue
|
||||
|
||||
turn_sign = 1.0 if delta > 0 else -1.0
|
||||
prev_rot_deg = rot_deg(prev["rot_y"])
|
||||
next_rot_deg = rot_deg(nxt["rot_y"])
|
||||
|
||||
# Inline gap (render straight)
|
||||
if prev_rot_deg < MIN_REAL_ROT_DEG and next_rot_deg < MIN_REAL_ROT_DEG:
|
||||
sx, sz = prev["end"]
|
||||
ex, ez = nxt["start"]
|
||||
|
||||
dx = ex - sx
|
||||
dz = ez - sz
|
||||
length = math.hypot(dx, dz)
|
||||
if length < 0.01:
|
||||
continue
|
||||
|
||||
cx = (sx + ex) / 2
|
||||
cz = (sz + ez) / 2
|
||||
rot_y = math.atan2(dz, dx)
|
||||
|
||||
width = prev.get("width", BELT_WIDTH_DEFAULT)
|
||||
|
||||
straight[name] = {
|
||||
"name": name,
|
||||
"prefix": prefix,
|
||||
"sec": sec,
|
||||
"length": length,
|
||||
"pos": (cx, FIXED_Y, cz),
|
||||
"rot_y": rot_y,
|
||||
"start": (sx, sz),
|
||||
"end": (ex, ez),
|
||||
"fwd": unit_fwd(rot_y),
|
||||
"degenerate": (length <= DEGEN_EPS),
|
||||
"anchor": (sx, sz),
|
||||
"width": width,
|
||||
}
|
||||
|
||||
if name not in written_straights and length > DEGEN_EPS:
|
||||
add_straight_node(lines, name, rot_y, cx, cz, length, width)
|
||||
written_straights.add(name)
|
||||
|
||||
continue
|
||||
|
||||
# Curved spur placement uses width of prev belt for edge offset
|
||||
turn_sign = 1.0 if delta > 0 else -1.0
|
||||
rx, rz = unit_right(prev["rot_y"])
|
||||
end_x, end_z = prev["end"]
|
||||
|
||||
# place along side edge then inward by inner radius (your current spur logic)
|
||||
edge_x = end_x + rx * (BELT_WIDTH / 2) * turn_sign
|
||||
edge_z = end_z + rz * (BELT_WIDTH / 2) * turn_sign
|
||||
prev_width = prev.get("width", BELT_WIDTH_DEFAULT)
|
||||
|
||||
edge_x = end_x + rx * (prev_width / 2) * turn_sign
|
||||
edge_z = end_z + rz * (prev_width / 2) * turn_sign
|
||||
inward_x = -rx * turn_sign
|
||||
inward_z = -rz * turn_sign
|
||||
|
||||
place_x = edge_x + inward_x * CURVE_INNER_RADIUS + pfx * SPUR_TANGENT_NUDGE
|
||||
place_z = edge_z + inward_z * CURVE_INNER_RADIUS + pfz * SPUR_TANGENT_NUDGE
|
||||
place_x = edge_x + inward_x * CURVE_INNER_RADIUS
|
||||
place_z = edge_z + inward_z * CURVE_INNER_RADIUS
|
||||
|
||||
add_curved_node(lines, spur["name"], prev["rot_y"], place_x, place_z, angle_deg)
|
||||
placed_spurs.add(spur["name"])
|
||||
|
||||
# -----------------------
|
||||
# 3) VFD-only straight conveyors (CHAIN CONTINUATION)
|
||||
# Run AFTER spurs. Only place leftovers (not in placed_spurs).
|
||||
# Also: after we place one, add it to "straight" so multiple missing sections can chain.
|
||||
# -----------------------
|
||||
# Build quick lookup for vfd_only rows by key
|
||||
vfd_by_key = {s["name"]: s for s in vfd_only}
|
||||
|
||||
placed_chain = set()
|
||||
|
||||
made_progress = True
|
||||
while made_progress:
|
||||
made_progress = False
|
||||
|
||||
for spur in vfd_only:
|
||||
name = spur["name"]
|
||||
if name in placed_spurs or name in placed_chain:
|
||||
continue
|
||||
if name in straight:
|
||||
continue
|
||||
|
||||
prefix = spur["prefix"]
|
||||
sec = spur["sec"]
|
||||
prev_key = f"{prefix}_{sec-1}"
|
||||
next_key = f"{prefix}_{sec+1}"
|
||||
|
||||
# --- Case A: place AFTER previous (if previous exists, next does NOT exist/placed) ---
|
||||
if prev_key in straight and next_key not in straight:
|
||||
ref = straight[prev_key]
|
||||
dx, dz = ref["fwd"]
|
||||
length = ref["length"]
|
||||
|
||||
# start at previous end, same direction, same length
|
||||
sx, sz = ref["end"]
|
||||
ex, ez = (sx + dx * length, sz + dz * length)
|
||||
cx, cz = (sx + dx * (length / 2), sz + dz * (length / 2))
|
||||
|
||||
add_straight_node(lines, name, ref["rot_y"], cx, cz, length)
|
||||
|
||||
# register as a new straight so the chain can continue
|
||||
newc = {
|
||||
"name": name,
|
||||
"prefix": prefix,
|
||||
"sec": sec,
|
||||
"length": length,
|
||||
"pos": (cx, FIXED_Y, cz),
|
||||
"rot_y": ref["rot_y"],
|
||||
}
|
||||
newc["start"] = (sx, sz)
|
||||
newc["end"] = (ex, ez)
|
||||
newc["fwd"] = (dx, dz)
|
||||
|
||||
straight[name] = newc
|
||||
placed_chain.add(name)
|
||||
made_progress = True
|
||||
continue
|
||||
|
||||
# --- Case B: place BEFORE next (if next exists, prev does NOT exist/placed) ---
|
||||
if next_key in straight and prev_key not in straight:
|
||||
ref = straight[next_key]
|
||||
dx, dz = ref["fwd"]
|
||||
length = ref["length"]
|
||||
|
||||
# end at next start, same direction, same length (going backwards)
|
||||
ex, ez = ref["start"]
|
||||
sx, sz = (ex - dx * length, ez - dz * length)
|
||||
cx, cz = (sx + dx * (length / 2), sz + dz * (length / 2))
|
||||
|
||||
add_straight_node(lines, name, ref["rot_y"], cx, cz, length)
|
||||
|
||||
newc = {
|
||||
"name": name,
|
||||
"prefix": prefix,
|
||||
"sec": sec,
|
||||
"length": length,
|
||||
"pos": (cx, FIXED_Y, cz),
|
||||
"rot_y": ref["rot_y"],
|
||||
}
|
||||
newc["start"] = (sx, sz)
|
||||
newc["end"] = (ex, ez)
|
||||
newc["fwd"] = (dx, dz)
|
||||
|
||||
straight[name] = newc
|
||||
placed_chain.add(name)
|
||||
made_progress = True
|
||||
continue
|
||||
add_curved_node(lines, name, prev["rot_y"], place_x, place_z, angle_deg)
|
||||
placed_spurs.add(name)
|
||||
|
||||
# -----------------------
|
||||
# WRITE FILE
|
||||
# -----------------------
|
||||
Path(OUT_TSCN).write_text("\n".join(lines), encoding="utf-8")
|
||||
OUT_TSCN.write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
leftovers = [v["name"] for v in vfd_only if v["name"] not in placed_spurs and v["name"] not in straight]
|
||||
|
||||
geom_written = len([k for k, c in straight.items() if c["length"] > DEGEN_EPS])
|
||||
geom_degen = [k for k, c in straight.items() if c["length"] <= DEGEN_EPS]
|
||||
|
||||
leftovers = [s["name"] for s in vfd_only if s["name"] not in placed_spurs and s["name"] not in placed_chain]
|
||||
print(
|
||||
f"Generated {len([k for k in straight.keys() if k not in vfd_by_key])} geometry straights, "
|
||||
f"{len(placed_spurs)} spurs, "
|
||||
f"{len(placed_chain)} chain-continued VFD-only straights. "
|
||||
f"Leftovers not placed: {len(leftovers)}"
|
||||
f"Geometry written: {geom_written - len(placed_chain)}, "
|
||||
f"chain-continued straights: {len(placed_chain)}, "
|
||||
f"spurs placed: {len(placed_spurs)}, "
|
||||
f"leftovers: {len(leftovers)}"
|
||||
)
|
||||
if leftovers:
|
||||
print("Leftovers:", ", ".join(leftovers))
|
||||
|
||||
if geom_degen:
|
||||
print("Still degenerate geometry (NOT written):", ", ".join(sorted(geom_degen)))
|
||||
|
||||
@ -1,718 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3]
|
||||
|
||||
[ext_resource type="PackedScene" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="3_38ygf"]
|
||||
[ext_resource type="PackedScene" path="res://parts/assemblies/CurvedBeltConveyorAssembly.tscn" id="1_ef28r"]
|
||||
|
||||
[node name="GeneratedConveyors" type="Node3D"]
|
||||
|
||||
[node name="PS1_2" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8675449395504647, 0, -0.49735880193315224, 0, 1, 0, 0.49735880193315224, 0, 0.8675449395504647, 82.4197516448, 2.5, -43.5774700712)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS1_2_OIP"
|
||||
size = Vector3(3.674933, 0.5, 1.524)
|
||||
|
||||
[node name="PS1_4" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999945161112113, 0, 0.003311758974397826, 0, 1, 0, -0.003311758974397826, 0, 0.9999945161112113, 92.824505613, 2.5, -42.083169872099994)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS1_4_OIP"
|
||||
size = Vector3(14.050436, 0.5, 1.524)
|
||||
|
||||
[node name="PS1_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999946142179093, 0, -0.0032820017024387353, 0, 1, 0, 0.0032820017024387353, 0, 0.9999946142179093, 104.0575431926, 2.5, -42.0926254285)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS1_5_OIP"
|
||||
size = Vector3(8.415762, 0.5, 1.524)
|
||||
|
||||
[node name="PS2_2" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8773678141674687, 0, -0.479818422596505, 0, 1, 0, 0.479818422596505, 0, 0.8773678141674687, 79.250984881, 2.5, -56.7520455127)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_2_OIP"
|
||||
size = Vector3(1.173861, 0.5, 1.524)
|
||||
|
||||
[node name="PS2_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8622787824202933, 0, -0.5064339062382932, 0, 1, 0, 0.5064339062382932, 0, 0.8622787824202933, 85.4597349349, 2.5, -53.1263429089)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_3_OIP"
|
||||
size = Vector3(13.206393, 0.5, 1.524)
|
||||
|
||||
[node name="PS2_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999759795503059, 0, -0.006931112638399028, 0, 1, 0, 0.006931112638399028, 0, 0.9999759795503059, 99.8027176535, 2.5, -49.276580961499995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_5_OIP"
|
||||
size = Vector3(13.650118, 0.5, 1.524)
|
||||
|
||||
[node name="PS2_6" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999803192739637, 0, 0.006273839712780541, 0, 1, 0, -0.006273839712780541, 0, 0.9999803192739637, 107.41107807809999, 2.5, -49.2341911428)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_6_OIP"
|
||||
size = Vector3(1.566962, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9950139648061078, 0, -0.0997356999315168, 0, 1, 0, 0.0997356999315168, 0, 0.9950139648061078, 18.4156816725, 2.5, -46.4381813678)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_3_OIP"
|
||||
size = Vector3(9.074236, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_4" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999999573785687, 0, -0.0002919638005547997, 0, 1, 0, 0.0002919638005547997, 0, 0.9999999573785687, 33.4554759388, 2.5, -45.9825957283)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_4_OIP"
|
||||
size = Vector3(21.050598, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.999952493743362, 0, -0.009747320474448184, 0, 1, 0, 0.009747320474448184, 0, 0.999952493743362, 45.3485810578, 2.5, -45.9661896397)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_5_OIP"
|
||||
size = Vector3(2.735743, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_6" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9994889246433396, 0, -0.03196700666782072, 0, 1, 0, 0.03196700666782072, 0, 0.9994889246433396, 47.1915584615, 2.5, -45.9376590008)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_6_OIP"
|
||||
size = Vector3(0.950828, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999987708307951, 0, 0.0015679084472148372, 0, 1, 0, -0.0015679084472148372, 0, 0.9999987708307951, 48.121889951099995, 2.5, -45.923175095299996)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_7_OIP"
|
||||
size = Vector3(0.910322, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9994123906802922, 0, -0.03427642564070694, 0, 1, 0, 0.03427642564070694, 0, 0.9994123906802922, 49.035076427999996, 2.5, -45.908180027499995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_8_OIP"
|
||||
size = Vector3(0.916590, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9967002282899721, 0, 0.08117052991521904, 0, 1, 0, -0.08117052991521904, 0, 0.9967002282899721, 49.9582364943, 2.5, -45.930351497)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_9_OIP"
|
||||
size = Vector3(0.933348, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.999997311695526, 0, -0.0023187500342096348, 0, 1, 0, 0.0023187500342096348, 0, 0.999997311695526, 59.20612194819999, 2.5, -45.9948076419)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_10_OIP"
|
||||
size = Vector3(15.752119, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_11" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.999987533426502, 0, 0.004993294661893442, 0, 1, 0, -0.004993294661893442, 0, 0.999987533426502, 69.14804775900001, 2.5, -45.9868607439)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_11_OIP"
|
||||
size = Vector3(4.131827, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_12" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9869995429660313, 0, 0.1607230605260031, 0, 1, 0, -0.1607230605260031, 0, 0.9869995429660313, 72.3586082162, 2.5, -46.183575031699995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_12_OIP"
|
||||
size = Vector3(2.319500, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_13" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9994599571489898, 0, -0.03286021995878083, 0, 1, 0, 0.03286021995878083, 0, 0.9994599571489898, 75.0818830973, 2.5, -46.318072362399995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_13_OIP"
|
||||
size = Vector3(3.158910, 0.5, 1.524)
|
||||
|
||||
[node name="UL1_14" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9996888748277157, 0, -0.02494300594747222, 0, 1, 0, 0.02494300594747222, 0, 0.9996888748277157, 80.2158087324, 2.5, -46.3145923211)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL1_14_OIP"
|
||||
size = Vector3(6.288208, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9952852133168667, 0, -0.09699146432959523, 0, 1, 0, 0.09699146432959523, 0, 0.9952852133168667, 18.508732134099997, 2.5, -50.6883424382)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_3_OIP"
|
||||
size = Vector3(8.917547, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_4" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999995481421035, 0, -0.0009506395682917928, 0, 1, 0, 0.0009506395682917928, 0, 0.9999995481421035, 33.309920959399996, 2.5, -50.2460275494)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_4_OIP"
|
||||
size = Vector3(20.726884, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999805530651744, 0, 0.006236464660995434, 0, 1, 0, -0.006236464660995434, 0, 0.9999805530651744, 44.9842473567, 2.5, -50.244351124)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_5_OIP"
|
||||
size = Vector3(2.621829, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8506089942191302, 0, -0.5257987627919258, 0, 1, 0, 0.5257987627919258, 0, 0.8506089942191302, 48.8197562846, 2.5, -49.3991124919)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_7_OIP"
|
||||
size = Vector3(1.342548, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8979644689927908, 0, -0.4400679634175786, 0, 1, 0, 0.4400679634175786, 0, 0.8979644689927908, 49.79248956899999, 2.5, -48.8492748311)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_8_OIP"
|
||||
size = Vector3(0.894783, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8762206638502454, 0, -0.4819101039009612, 0, 1, 0, 0.4819101039009612, 0, 0.8762206638502454, 50.601851501199995, 2.5, -48.4282062549)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_9_OIP"
|
||||
size = Vector3(0.930406, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8780689921649024, 0, -0.47853405834748336, 0, 1, 0, 0.47853405834748336, 0, 0.8780689921649024, 51.3862990814, 2.5, -47.998655272499995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_10_OIP"
|
||||
size = Vector3(0.858309, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_1" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9895668328462597, 0, -0.14407457558716869, 0, 1, 0, 0.14407457558716869, 0, 0.9895668328462597, 18.6049257949, 2.5, -53.49749704339999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_1_OIP"
|
||||
size = Vector3(5.099540, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_2" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999557211215563, 0, -0.009410408932047861, 0, 1, 0, 0.009410408932047861, 0, 0.9999557211215563, 34.801775214699994, 2.5, -53.1881954776)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_2_OIP"
|
||||
size = Vector3(24.956880, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999914228893805, 0, 0.0041417565925802435, 0, 1, 0, -0.0041417565925802435, 0, 0.9999914228893805, 49.2610601772, 2.5, -53.0789747918)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_3_OIP"
|
||||
size = Vector3(3.962829, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8578838473591786, 0, -0.5138436575848861, 0, 1, 0, 0.5138436575848861, 0, 0.8578838473591786, 55.4356219581, 2.5, -51.060901941999994)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_5_OIP"
|
||||
size = Vector3(5.937410, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_6" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8824876952810232, 0, -0.47033548417867427, 0, 1, 0, 0.47033548417867427, 0, 0.8824876952810232, 58.39629870119999, 2.5, -49.3148718679)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_6_OIP"
|
||||
size = Vector3(0.937969, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9296382309209145, 0, -0.36847355347464555, 0, 1, 0, 0.36847355347464555, 0, 0.9296382309209145, 59.233127698100006, 2.5, -48.9266480444)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_7_OIP"
|
||||
size = Vector3(0.909937, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8047682926335156, 0, -0.5935890793905632, 0, 1, 0, 0.5935890793905632, 0, 0.8047682926335156, 60.030284308000006, 2.5, -48.4829976236)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_8_OIP"
|
||||
size = Vector3(0.929958, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8768162540239772, 0, -0.4808255990266744, 0, 1, 0, 0.4808255990266744, 0, 0.8768162540239772, 60.7953638548, 2.5, -47.992642101899996)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_9_OIP"
|
||||
size = Vector3(0.891587, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9950689105870448, 0, -0.09918600295965033, 0, 1, 0, 0.09918600295965033, 0, 0.9950689105870448, 18.5228132337, 2.5, -59.2591679813)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_3_OIP"
|
||||
size = Vector3(9.008374, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_4" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999979393868175, 0, -0.002030079338077881, 0, 1, 0, 0.002030079338077881, 0, 0.9999979393868175, 33.24608001519999, 2.5, -58.7916249997)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_4_OIP"
|
||||
size = Vector3(20.482623, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9992951314680424, 0, 0.03753984848488273, 0, 1, 0, -0.03753984848488273, 0, 0.9992951314680424, 44.8572392795, 2.5, -58.8222952711)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_5_OIP"
|
||||
size = Vector3(2.741670, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_6" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9408925721778789, 0, -0.33870513373802713, 0, 1, 0, 0.33870513373802713, 0, 0.9408925721778789, 46.6950675698, 2.5, -58.705298908699994)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_6_OIP"
|
||||
size = Vector3(0.994714, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9986842389497732, 0, 0.051281486652711435, 0, 1, 0, -0.051281486652711435, 0, 0.9986842389497732, 47.616922673, 2.5, -58.56014871639999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_7_OIP"
|
||||
size = Vector3(0.908988, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999433439860244, 0, -0.010644661481103306, 0, 1, 0, 0.010644661481103306, 0, 0.9999433439860244, 48.533479450499996, 2.5, -58.578530683699995)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_8_OIP"
|
||||
size = Vector3(0.925374, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999865997475034, 0, 0.005176903072933443, 0, 1, 0, -0.005176903072933443, 0, 0.9999865997475034, 49.4538752348, 2.5, -58.575975215099994)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_9_OIP"
|
||||
size = Vector3(0.915482, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999996647208671, 0, 0.0008188761526801148, 0, 1, 0, -0.0008188761526801148, 0, 0.9999996647208671, 57.8965222179, 2.5, -58.6241365107)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_10_OIP"
|
||||
size = Vector3(14.120969, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_11" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9971349340123079, 0, 0.07564339609159712, 0, 1, 0, -0.07564339609159712, 0, 0.9971349340123079, 67.0065149199, 2.5, -58.7853955735)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_11_OIP"
|
||||
size = Vector3(4.110799, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_12" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9994129903588115, 0, 0.03425893609057608, 0, 1, 0, -0.03425893609057608, 0, 0.9994129903588115, 70.2880283467, 2.5, -58.98310486819999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_12_OIP"
|
||||
size = Vector3(2.465453, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_13" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999540454520701, 0, -0.009586813028279828, 0, 1, 0, 0.009586813028279828, 0, 0.9999540454520701, 72.7778091685, 2.5, -59.0132781251)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_13_OIP"
|
||||
size = Vector3(2.515672, 0.5, 1.524)
|
||||
|
||||
[node name="UL4_14" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9998726772810103, 0, 0.01595710584362971, 0, 1, 0, -0.01595710584362971, 0, 0.9998726772810103, 77.0090436829, 2.5, -58.934440093800006)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL4_14_OIP"
|
||||
size = Vector3(5.405995, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9974065210227826, 0, 0.0719738273348684, 0, 1, 0, -0.0719738273348684, 0, 0.9974065210227826, 18.419276305900002, 2.5, -62.65324851849999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_3_OIP"
|
||||
size = Vector3(9.079875, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_4" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999765711890427, 0, 0.006845222641044972, 0, 1, 0, -0.006845222641044972, 0, 0.9999765711890427, 32.9600993451, 2.5, -63.0485456959)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_4_OIP"
|
||||
size = Vector3(20.025788, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9988495791288503, 0, -0.047953292630627475, 0, 1, 0, 0.047953292630627475, 0, 0.9988495791288503, 44.2081998867, 2.5, -63.0577744938)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_5_OIP"
|
||||
size = Vector3(2.473728, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8524790224883632, 0, -0.522761433368305, 0, 1, 0, 0.522761433368305, 0, 0.8524790224883632, 47.862835376499994, 2.5, -62.1342421651)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_7_OIP"
|
||||
size = Vector3(1.754812, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8833597213730209, 0, -0.4686956396807836, 0, 1, 0, 0.4686956396807836, 0, 0.8833597213730209, 49.0199502454, 2.5, -61.4584829502)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_8_OIP"
|
||||
size = Vector3(0.926338, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8471068986537589, 0, -0.5314225270471795, 0, 1, 0, 0.5314225270471795, 0, 0.8471068986537589, 49.813407535799996, 2.5, -61.000303754799994)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_9_OIP"
|
||||
size = Vector3(0.907353, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8830309487153603, 0, -0.4693147596345664, 0, 1, 0, 0.4693147596345664, 0, 0.8830309487153603, 50.6011652821, 2.5, -60.544786073000004)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_10_OIP"
|
||||
size = Vector3(0.913773, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_1" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9860201232632386, 0, -0.16662627799944335, 0, 1, 0, 0.16662627799944335, 0, 0.9860201232632386, 18.599429158699998, 2.5, -67.76774869079999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_1_OIP"
|
||||
size = Vector3(5.072301, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_2" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9999376035906048, 0, -0.01117089635967401, 0, 1, 0, 0.01117089635967401, 0, 0.9999376035906048, 32.965110587299996, 2.5, -67.5262929761)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_2_OIP"
|
||||
size = Vector3(20.762420, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_3" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9996145027501965, 0, -0.027764111573710868, 0, 1, 0, 0.027764111573710868, 0, 0.9996145027501965, 44.675673538999995, 2.5, -67.3733850269)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_3_OIP"
|
||||
size = Vector3(2.661027, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_5" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8607868402171976, 0, -0.508965633131445, 0, 1, 0, 0.508965633131445, 0, 0.8607868402171976, 51.6434335684, 2.5, -64.5229559297)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_5_OIP"
|
||||
size = Vector3(9.266426, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_6" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8566984744886353, 0, -0.5158175295672346, 0, 1, 0, 0.5158175295672346, 0, 0.8566984744886353, 56.034330488900004, 2.5, -61.92235150429999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_6_OIP"
|
||||
size = Vector3(0.940093, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_7" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.9022179251501843, 0, -0.43128043723045956, 0, 1, 0, 0.43128043723045956, 0, 0.9022179251501843, 56.84963227459999, 2.5, -61.482654682399996)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_7_OIP"
|
||||
size = Vector3(0.914665, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_8" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.866025400060552, 0, -0.5000000064499608, 0, 1, 0, 0.5000000064499608, 0, 0.866025400060552, 57.658192786, 2.5, -61.056816062399996)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_8_OIP"
|
||||
size = Vector3(0.914400, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_9" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.866025402838328, 0, -0.5000000016387117, 0, 1, 0, 0.5000000016387117, 0, 0.866025402838328, 58.439087884100005, 2.5, -60.60596606239999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_9_OIP"
|
||||
size = Vector3(0.889000, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_6" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.9999805530651744, 0, 0.006236464660995434, 0, 1, 0, -0.006236464660995434, 0, 0.9999805530651744, 46.28856946991197, 2.5, -51.305506118977625)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 32.079
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_6_OIP"
|
||||
|
||||
[node name="UL3_4" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.9999914228893805, 0, 0.0041417565925802435, 0, 1, 0, -0.0041417565925802435, 0, 0.9999914228893805, 51.238096468708015, 2.5, -54.14017229690252)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 31.158
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_4_OIP"
|
||||
|
||||
[node name="PS2_4" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.8622787824202933, 0, -0.5064339062382932, 0, 1, 0, 0.5064339062382932, 0, 0.8622787824202933, 90.62025632753108, 2.5, -48.87428071991143)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 30.029
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_4_OIP"
|
||||
|
||||
[node name="PS1_3" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.8675449395504647, 0, -0.49735880193315224, 0, 1, 0, 0.49735880193315224, 0, 0.8675449395504647, 83.49011754776441, 2.5, -41.750065137053355)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 30.015
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS1_3_OIP"
|
||||
|
||||
[node name="UL5_6" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.9988495791288503, 0, -0.047953292630627475, 0, 1, 0, 0.047953292630627475, 0, 0.9988495791288503, 45.49413560354005, 2.5, -64.05025140822268)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 28.769
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_6_OIP"
|
||||
|
||||
[node name="UL6_4" parent="." instance=ExtResource("1_ef28r")]
|
||||
transform = Transform3D(0.9996145027501965, 0, -0.027764111573710868, 0, 1, 0, 0.027764111573710868, 0, 0.9996145027501965, 46.03490984128712, 2.5, -68.38903857019595)
|
||||
inner_radius = 1.815
|
||||
conveyor_angle = 29.004
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_4_OIP"
|
||||
|
||||
[node name="PS1_1" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8675449395504647, 0, -0.49735880193315224, 0, 1, 0, 0.49735880193315224, 0, 0.8675449395504647, 79.231582202, 2.5, -45.4052302968)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS1_1_OIP"
|
||||
size = Vector3(3.674933, 0.5, 1.524)
|
||||
|
||||
[node name="PS2_1" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8773678141674687, 0, -0.479818422596505, 0, 1, 0, 0.479818422596505, 0, 0.8773678141674687, 78.221077365, 2.5, -57.31528545810001)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "PS2_1_OIP"
|
||||
size = Vector3(1.173861, 0.5, 1.524)
|
||||
|
||||
[node name="UL2_11" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8780689921649024, 0, -0.47853405834748336, 0, 1, 0, 0.47853405834748336, 0, 0.8780689921649024, 52.139953555800005, 2.5, -47.5879252075)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL2_11_OIP"
|
||||
size = Vector3(0.858309, 0.5, 1.524)
|
||||
|
||||
[node name="UL3_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8768162540239772, 0, -0.4808255990266744, 0, 1, 0, 0.4808255990266744, 0, 0.8768162540239772, 61.577121956, 2.5, -47.5639441785)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL3_10_OIP"
|
||||
size = Vector3(0.891587, 0.5, 1.524)
|
||||
|
||||
[node name="UL5_11" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.8830309487153603, 0, -0.4693147596345664, 0, 1, 0, 0.4693147596345664, 0, 0.8830309487153603, 51.4080554895, 2.5, -60.115938721400006)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL5_11_OIP"
|
||||
size = Vector3(0.913773, 0.5, 1.524)
|
||||
|
||||
[node name="UL6_10" parent="." instance=ExtResource("3_38ygf")]
|
||||
transform = Transform3D(0.866025402838328, 0, -0.5000000016387117, 0, 1, 0, 0.5000000016387117, 0, 0.866025402838328, 59.208984464699995, 2.5, -60.16146606239999)
|
||||
right_side_guards_enabled = false
|
||||
left_side_guards_enabled = false
|
||||
head_end_leg_enabled = false
|
||||
tail_end_leg_enabled = false
|
||||
enable_comms = true
|
||||
speed_tag_name = "UL6_10_OIP"
|
||||
size = Vector3(0.889000, 0.5, 1.524)
|
||||
@ -1,12 +0,0 @@
|
||||
UL2_6 included=0 (no geometry)
|
||||
UL3_4 included=0 (no geometry)
|
||||
PS1_1 included=0 (no geometry)
|
||||
PS2_4 included=0 (no geometry)
|
||||
PS1_3 included=0 (no geometry)
|
||||
PS2_1 included=0 (no geometry)
|
||||
UL5_6 included=0 (no geometry)
|
||||
UL2_11 included=0 (no geometry)
|
||||
UL3_10 included=0 (no geometry)
|
||||
UL5_11 included=0 (no geometry)
|
||||
UL6_4 included=0 (no geometry)
|
||||
UL6_10 included=0 (no geometry)
|
||||
Loading…
x
Reference in New Issue
Block a user