changes in the lsp codes, exporting information for the sensors. placing the sensors in the already generated scene, using new code for it
This commit is contained in:
parent
cc92ad59f2
commit
f617250d12
@ -1,194 +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
|
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_block_rotation,tpe_distance
|
||||||
CONVEYOR,PS3_1,1,1,GEOMETRY,1,1,1,0,0,3087.489034,3048.565032,3159.132392,3024.713237
|
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_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_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_5,5,1,GEOMETRY,1,0,1,0,0,3519.577701,3258.53086,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_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_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_9,9,1,GEOMETRY,1,0,1,0,0,6060.48327,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_10,10,1,GEOMETRY,1,0,1,0,0,6060.789954,2741.579531,6060.495376,2610.80136,,,,,,
|
||||||
CONVEYOR,PS3_12,12,1,GEOMETRY,1,1,1,1,1,6007.382954,2569.962296,5948.039145,2529.928635
|
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_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_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_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_5,5,1,GEOMETRY,1,0,1,0,0,1881.70253,3136.32373,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_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_7,7,1,GEOMETRY,1,0,1,0,0,1978.682956,3086.062642,2007.7449,3063.545268,,,,,,
|
||||||
CONVEYOR,UL8_8,8,1,GEOMETRY,1,0,1,0,1,2007.744900,3063.545268,2040.663378,3048.333245
|
CONVEYOR,UL8_8,8,1,GEOMETRY,1,0,1,0,1,2007.7449,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_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_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_3,3,1,GEOMETRY,1,0,1,0,0,1720.187324,3564.061477,2083.996631,3560.76686,,,,,,
|
||||||
CONVEYOR,UL10_4,4,1,GEOMETRY,1,0,1,0,0,2083.996631,3560.766860,2128.229940,3542.739063
|
CONVEYOR,UL10_4,4,1,GEOMETRY,1,0,1,0,0,2083.996631,3560.76686,2128.22994,3542.739063,,,,,,
|
||||||
CONVEYOR,UL10_5,5,1,GEOMETRY,1,0,1,0,0,2128.229940,3542.739063,2164.812356,3542.467143
|
CONVEYOR,UL10_5,5,1,GEOMETRY,1,0,1,0,0,2128.22994,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_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_7,7,1,GEOMETRY,1,0,1,0,0,2200.090761,3544.785276,2236.861695,3544.52715,,,,,,
|
||||||
CONVEYOR,UL10_9,9,1,GEOMETRY,1,0,1,0,1,2309.630704,3563.985881,2358.664691,3592.202752
|
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_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_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_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_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_8,8,1,GEOMETRY,1,0,1,0,0,2212.651713,3118.960609,2247.352179,3100.25407,,,,,,
|
||||||
CONVEYOR,UL9_9,9,1,GEOMETRY,1,0,1,0,0,2247.352179,3100.254070,2277.803935,3081.192233
|
CONVEYOR,UL9_9,9,1,GEOMETRY,1,0,1,0,0,2247.352179,3100.25407,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_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,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_3,3,1,GEOMETRY,1,1,1,0,0,548.75287,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_4,4,1,GEOMETRY,1,1,1,0,0,897.324015,3661.485774,1700.480744,3658.22207,,,,,,
|
||||||
CONVEYOR,UL11_5,5,1,GEOMETRY,1,0,1,0,0,1700.480744,3658.222070,1844.529026,3653.231416
|
CONVEYOR,UL11_5,5,1,GEOMETRY,1,0,1,0,0,1700.480744,3658.22207,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_6,6,1,GEOMETRY,1,0,1,0,0,1844.529026,3653.231416,1879.59736,3657.637923,,,,,,
|
||||||
CONVEYOR,UL11_7,7,1,GEOMETRY,1,0,1,0,0,1879.597360,3657.637923,1917.029348,3658.582710
|
CONVEYOR,UL11_7,7,1,GEOMETRY,1,0,1,0,0,1879.59736,3657.637923,1917.029348,3658.58271,,,,,,
|
||||||
CONVEYOR,UL11_8,8,1,GEOMETRY,1,0,1,0,0,1917.029348,3658.582710,1951.991891,3658.283856
|
CONVEYOR,UL11_8,8,1,GEOMETRY,1,0,1,0,0,1917.029348,3658.58271,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_9,9,1,GEOMETRY,1,0,1,0,0,1951.991891,3658.283856,1988.78012,3658.283856,,,,,,
|
||||||
CONVEYOR,UL11_10,10,1,GEOMETRY,1,1,1,0,0,2030.764864,3659.578691,2591.455783,3686.635164
|
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_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_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,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_3,3,1,GEOMETRY,1,1,1,0,0,543.627555,3859.294486,905.03645,3826.957213,,,,,,
|
||||||
CONVEYOR,UL12_4,4,1,GEOMETRY,1,1,1,0,0,905.036450,3826.957213,1742.072614,3827.324144
|
CONVEYOR,UL12_4,4,1,GEOMETRY,1,1,1,0,0,905.03645,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_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_7,7,1,GEOMETRY,1,0,1,0,0,1908.85233,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_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_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,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_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_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_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_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_7,7,1,GEOMETRY,1,0,1,0,0,1857.441282,2972.114781,1893.692205,2973.61201,,,,,,
|
||||||
CONVEYOR,UL7_8,8,1,GEOMETRY,1,0,1,0,0,1893.692205,2973.612010,1929.723023,2973.789916
|
CONVEYOR,UL7_8,8,1,GEOMETRY,1,0,1,0,0,1893.692205,2973.61201,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_9,9,1,GEOMETRY,1,0,1,0,0,1929.723023,2973.789916,1965.806948,2973.25447,,,,,,
|
||||||
CONVEYOR,UL7_10,10,1,GEOMETRY,1,1,1,0,0,1998.130873,2981.527148,2611.835876,2978.598409
|
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_12,12,1,GEOMETRY,1,0,1,0,0,2766.4208,2995.0962,2863.13356,2992.295904,,,,,,
|
||||||
CONVEYOR,UL7_13,13,1,GEOMETRY,1,0,1,0,0,2863.133560,2992.295904,2970.734203,2992.915446
|
CONVEYOR,UL7_13,13,1,GEOMETRY,1,0,1,0,0,2863.13356,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,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_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_4,4,1,GEOMETRY,1,0,1,0,0,3310.573165,3523.337,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_5,5,1,GEOMETRY,1,0,1,0,0,3352.239313,3524.485575,4006.352329,3523.35812,,,,,,
|
||||||
CONVEYOR,PS4_6,6,1,GEOMETRY,1,0,1,0,0,4006.352329,3523.358120,4688.607797,3525.782820
|
CONVEYOR,PS4_6,6,1,GEOMETRY,1,0,1,0,0,4006.352329,3523.35812,4688.607797,3525.78282,,,,,,
|
||||||
CONVEYOR,PS4_7,7,1,GEOMETRY,1,0,1,0,0,4688.607797,3525.782820,5611.139091,3525.602719
|
CONVEYOR,PS4_7,7,1,GEOMETRY,1,0,1,0,0,4688.607797,3525.78282,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_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_10,10,1,GEOMETRY,1,0,1,0,0,6353.888615,3456.502166,6352.160013,2673.21243,,,,,,
|
||||||
CONVEYOR,PS4_11,11,1,GEOMETRY,1,0,1,0,0,6352.160013,2673.212430,6349.468358,2155.105517
|
CONVEYOR,PS4_11,11,1,GEOMETRY,1,0,1,0,0,6352.160013,2673.21243,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_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,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,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_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,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,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,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_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,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,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,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_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,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,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,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,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_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,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,,,,
|
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_1,,,,,,,,,,,,,PS3_1_TPE1,3159.132392,3024.713237,210,90,45.785116
|
||||||
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE1,3519.577701,3258.530860,90.000000,45.785116
|
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE1,3519.577701,3258.53086,90,0,45.785116
|
||||||
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE2,4079.105653,3253.674982,90.000000,55.323971
|
TPE,PS3_5,,,,,,,,,,,,,PS3_5_TPE2,4079.105653,3253.674982,90,0,55.323971
|
||||||
TPE,PS3_3,,,,,,,,,,,,,PS3_3_TPE1,3478.820696,3249.442902,120.000000,45.785116
|
TPE,PS3_3,,,,,,,,,,,,,PS3_3_TPE1,3478.820696,3249.442902,120,0,45.785116
|
||||||
TPE,PS3_2,,,,,,,,,,,,,PS3_2_TPE1,3190.945812,3042.099631,210.000000,45.785116
|
TPE,PS3_2,,,,,,,,,,,,,PS3_2_TPE1,3190.945812,3042.099631,210,90,45.785116
|
||||||
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE2,908.026025,2987.966131,90.000000,43.000000
|
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE2,908.026025,2987.966131,90,0,43
|
||||||
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE1,612.253341,3029.621551,0.000000,49.667350
|
TPE,UL7_3,,,,,,,,,,,,,UL7_3_TPE1,612.253341,3029.621551,0,270,49.66735
|
||||||
TPE,UL7_5,,,,,,,,,,,,,UL7_5_TPE1,1817.542835,2987.029037,90.000000,46.605812
|
TPE,UL7_5,,,,,,,,,,,,,UL7_5_TPE1,1817.542835,2987.029037,90,0,46.605812
|
||||||
TPE,UL7_6,,,,,,,,,,,,,UL7_6_TPE1,1857.441282,2972.114781,90.000000,62.276218
|
TPE,UL7_6,,,,,,,,,,,,,UL7_6_TPE1,1857.441282,2972.114781,90,0,62.276218
|
||||||
TPE,UL7_7,,,,,,,,,,,,,UL7_7_TPE1,1893.692205,2973.612010,90.000000,62.276218
|
TPE,UL7_7,,,,,,,,,,,,,UL7_7_TPE1,1893.692205,2973.61201,90,0,62.276218
|
||||||
TPE,UL7_4,,,,,,,,,,,,,UL7_4_TPE1,1711.113463,2986.840411,90.000000,45.064241
|
TPE,UL7_4,,,,,,,,,,,,,UL7_4_TPE1,1711.113463,2986.840411,90,0,45.064241
|
||||||
TPE,UL7_8,,,,,,,,,,,,,UL7_8_TPE1,1929.723023,2973.789916,90.000000,62.276218
|
TPE,UL7_8,,,,,,,,,,,,,UL7_8_TPE1,1929.723023,2973.789916,90,0,62.276218
|
||||||
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE1,2766.420800,2995.096200,90.000000,49.855884
|
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE1,2766.4208,2995.0962,90,0,49.855884
|
||||||
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE2,2863.133560,2992.295904,90.000000,49.242255
|
TPE,UL7_12,,,,,,,,,,,,,UL7_12_TPE2,2863.13356,2992.295904,90,0,49.242255
|
||||||
TPE,UL7_13,,,,,,,,,,,,,UL7_13_TPE1,2970.734203,2992.915446,90.000000,49.057934
|
TPE,UL7_13,,,,,,,,,,,,,UL7_13_TPE1,2970.734203,2992.915446,90,0,49.057934
|
||||||
TPE,PS3_6,,,,,,,,,,,,,PS3_6_TPE1,4784.946959,3257.612009,90.000000,45.785116
|
TPE,PS3_6,,,,,,,,,,,,,PS3_6_TPE1,4784.946959,3257.612009,90,0,45.785116
|
||||||
TPE,PS3_7,,,,,,,,,,,,,PS3_7_TPE1,5985.674639,3259.327631,90.000000,45.785116
|
TPE,PS3_7,,,,,,,,,,,,,PS3_7_TPE1,5985.674639,3259.327631,90,0,45.785116
|
||||||
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE1,6060.483270,3193.853573,180.000000,45.785116
|
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE1,6060.48327,3193.853573,180,0,45.785116
|
||||||
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE2,6060.789954,2741.579531,180.000000,45.785116
|
TPE,PS3_9,,,,,,,,,,,,,PS3_9_TPE2,6060.789954,2741.579531,180,0,45.785116
|
||||||
TPE,PS3_10,,,,,,,,,,,,,PS3_10_TPE1,6060.495376,2610.801360,180.000000,45.785116
|
TPE,PS3_10,,,,,,,,,,,,,PS3_10_TPE1,6060.495376,2610.80136,180,0,45.785116
|
||||||
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE1,5987.261559,2530.050002,90.000000,45.785116
|
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE1,5987.261559,2530.050002,90,0,45.785116
|
||||||
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE2,5948.039145,2529.928635,90.000000,45.785116
|
TPE,PS3_12,,,,,,,,,,,,,PS3_12_TPE2,5948.039145,2529.928635,90,0,45.785116
|
||||||
TPE,UL8_1,,,,,,,,,,,,,UL8_1_TPE1,824.872344,3157.126582,90.000000,43.000000
|
TPE,UL8_1,,,,,,,,,,,,,UL8_1_TPE1,824.872344,3157.126582,90,0,43
|
||||||
TPE,UL8_3,,,,,,,,,,,,,UL8_3_TPE1,1817.953869,3155.934504,90.000000,63.087627
|
TPE,UL8_3,,,,,,,,,,,,,UL8_3_TPE1,1817.953869,3155.934504,90,0,63.087627
|
||||||
TPE,UL8_8,,,,,,,,,,,,,UL8_8_TPE1,2040.663378,3048.333245,60.000000,65.489640
|
TPE,UL8_8,,,,,,,,,,,,,UL8_8_TPE1,2040.663378,3048.333245,60,0,65.48964
|
||||||
TPE,UL8_7,,,,,,,,,,,,,UL8_7_TPE1,2007.744900,3063.545268,60.000000,65.489640
|
TPE,UL8_7,,,,,,,,,,,,,UL8_7_TPE1,2007.7449,3063.545268,60,0,65.48964
|
||||||
TPE,UL8_6,,,,,,,,,,,,,UL8_6_TPE1,1978.682956,3086.062642,60.000000,65.489640
|
TPE,UL8_6,,,,,,,,,,,,,UL8_6_TPE1,1978.682956,3086.062642,60,0,65.48964
|
||||||
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE2,1944.426945,3101.149921,60.000000,65.489640
|
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE2,1944.426945,3101.149921,60,0,65.48964
|
||||||
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE1,1881.702530,3136.323730,58.094345,65.489640
|
TPE,UL8_5,,,,,,,,,,,,,UL8_5_TPE1,1881.70253,3136.32373,58.094345,0,65.48964
|
||||||
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE1,1891.501859,3302.098769,60.000000,65.489640
|
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE1,1891.501859,3302.098769,60,0,65.48964
|
||||||
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE2,2212.651713,3118.960609,58.094345,65.489640
|
TPE,UL9_7,,,,,,,,,,,,,UL9_7_TPE2,2212.651713,3118.960609,58.094345,0,65.48964
|
||||||
TPE,UL9_8,,,,,,,,,,,,,UL9_8_TPE1,2247.352179,3100.254070,58.094345,65.489640
|
TPE,UL9_8,,,,,,,,,,,,,UL9_8_TPE1,2247.352179,3100.25407,58.094345,0,65.48964
|
||||||
TPE,UL9_9,,,,,,,,,,,,,UL9_9_TPE1,2277.803935,3081.192233,58.094345,65.489640
|
TPE,UL9_9,,,,,,,,,,,,,UL9_9_TPE1,2277.803935,3081.192233,58.094345,0,65.48964
|
||||||
TPE,UL9_10,,,,,,,,,,,,,UL9_10_TPE1,2310.374208,3065.368059,58.094345,65.489640
|
TPE,UL9_10,,,,,,,,,,,,,UL9_10_TPE1,2310.374208,3065.368059,58.094345,0,65.48964
|
||||||
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE1,885.669058,3169.966906,270.000000,49.667350
|
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE1,885.669058,3169.966906,270,0,49.66735
|
||||||
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE2,1712.765129,3158.462454,90.000000,43.000000
|
TPE,UL8_2,,,,,,,,,,,,,UL8_2_TPE2,1712.765129,3158.462454,90,0,43
|
||||||
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE1,608.834305,3362.234637,0.000000,49.667350
|
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE1,608.834305,3362.234637,270,0,49.66735
|
||||||
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE2,907.467125,3324.238385,90.000000,43.000000
|
TPE,UL9_3,,,,,,,,,,,,,UL9_3_TPE2,907.467125,3324.238385,90,0,43
|
||||||
TPE,UL9_4,,,,,,,,,,,,,UL9_4_TPE1,1700.371316,3323.415506,90.000000,43.000000
|
TPE,UL9_4,,,,,,,,,,,,,UL9_4_TPE1,1700.371316,3323.415506,90,0,43
|
||||||
TPE,UL10_1,,,,,,,,,,,,,UL10_1_TPE1,823.776601,3561.145597,90.000000,43.000000
|
TPE,UL10_1,,,,,,,,,,,,,UL10_1_TPE1,823.776601,3561.145597,90,0,43
|
||||||
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE1,874.719154,3570.155999,270.000000,49.667350
|
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE1,874.719154,3570.155999,270,0,49.66735
|
||||||
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE2,1720.187324,3564.061477,90.000000,43.000000
|
TPE,UL10_2,,,,,,,,,,,,,UL10_2_TPE2,1720.187324,3564.061477,90,0,43
|
||||||
TPE,UL10_4,,,,,,,,,,,,,UL10_4_TPE1,2128.229940,3542.739063,90.000000,62.276218
|
TPE,UL10_4,,,,,,,,,,,,,UL10_4_TPE1,2128.22994,3542.739063,90,0,62.276218
|
||||||
TPE,UL10_5,,,,,,,,,,,,,UL10_5_TPE1,2164.812356,3542.467143,90.000000,62.276218
|
TPE,UL10_5,,,,,,,,,,,,,UL10_5_TPE1,2164.812356,3542.467143,90,0,62.276218
|
||||||
TPE,UL10_6,,,,,,,,,,,,,UL10_6_TPE1,2200.090761,3544.785276,90.000000,62.276218
|
TPE,UL10_6,,,,,,,,,,,,,UL10_6_TPE1,2200.090761,3544.785276,90,0,62.276218
|
||||||
TPE,UL10_3,,,,,,,,,,,,,UL10_3_TPE1,2083.996631,3560.766860,90.000000,45.064241
|
TPE,UL10_3,,,,,,,,,,,,,UL10_3_TPE1,2083.996631,3560.76686,90,0,45.064241
|
||||||
TPE,UL10_7,,,,,,,,,,,,,UL10_7_TPE1,2236.861695,3544.527150,90.000000,62.276218
|
TPE,UL10_7,,,,,,,,,,,,,UL10_7_TPE1,2236.861695,3544.52715,90,0,62.276218
|
||||||
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE1,2309.630704,3563.985881,120.000000,63.276200
|
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE1,2309.630704,3563.985881,120,0,62.276218
|
||||||
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE2,2358.664691,3592.202752,120.000000,62.276218
|
TPE,UL10_9,,,,,,,,,,,,,UL10_9_TPE2,2358.664691,3592.202752,120,0,62.276218
|
||||||
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE1,606.378302,3700.030184,0.000000,49.667350
|
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE1,606.378302,3700.030184,0,270,49.66735
|
||||||
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE2,897.324015,3661.485774,90.000000,43.000000
|
TPE,UL11_3,,,,,,,,,,,,,UL11_3_TPE2,897.324015,3661.485774,90,0,43
|
||||||
TPE,UL11_5,,,,,,,,,,,,,UL11_5_TPE1,1844.529026,3653.231416,90.000000,49.642395
|
TPE,UL11_5,,,,,,,,,,,,,UL11_5_TPE1,1844.529026,3653.231416,90,0,49.642395
|
||||||
TPE,UL11_6,,,,,,,,,,,,,UL11_6_TPE1,1879.597360,3657.637923,90.000000,62.276218
|
TPE,UL11_6,,,,,,,,,,,,,UL11_6_TPE1,1879.59736,3657.637923,90,0,62.276218
|
||||||
TPE,UL11_7,,,,,,,,,,,,,UL11_7_TPE1,1917.029348,3658.582710,90.000000,62.276218
|
TPE,UL11_7,,,,,,,,,,,,,UL11_7_TPE1,1917.029348,3658.58271,90,0,62.276218
|
||||||
TPE,UL11_4,,,,,,,,,,,,,UL11_4_TPE1,1700.480744,3658.222070,90.000000,45.064241
|
TPE,UL11_4,,,,,,,,,,,,,UL11_4_TPE1,1700.480744,3658.22207,90,0,45.064241
|
||||||
TPE,UL11_8,,,,,,,,,,,,,UL11_8_TPE1,1951.991891,3658.283856,90.000000,62.276218
|
TPE,UL11_8,,,,,,,,,,,,,UL11_8_TPE1,1951.991891,3658.283856,90,0,62.276218
|
||||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE1,2030.764864,3659.578691,90.000000,62.276218
|
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE1,2030.764864,3659.578691,90,0,62.276218
|
||||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE2,2198.528913,3659.525592,90.000000,62.276218
|
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE2,2198.528913,3659.525592,90,0,62.276218
|
||||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE3,2325.765680,3684.433010,270.000000,62.276218
|
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE3,2325.76568,3684.43301,270,0,62.276218
|
||||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE4,2487.792623,3686.690780,270.000000,62.276218
|
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE4,2487.792623,3686.69078,270,0,62.276218
|
||||||
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE5,2591.455783,3686.635164,270.000000,62.276218
|
TPE,UL11_10,,,,,,,,,,,,,UL11_10_TPE5,2591.455783,3686.635164,270,0,62.276218
|
||||||
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE1,2750.134283,3691.074283,270.000000,54.406101
|
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE1,2750.134283,3691.074283,270,0,54.406101
|
||||||
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE2,2845.387748,3690.854148,270.000000,54.406101
|
TPE,UL11_12,,,,,,,,,,,,,UL11_12_TPE2,2845.387748,3690.854148,270,0,54.406101
|
||||||
TPE,UL11_13,,,,,,,,,,,,,UL11_13_TPE1,2953.707982,3688.012958,270.000000,47.542783
|
TPE,UL11_13,,,,,,,,,,,,,UL11_13_TPE1,2953.707982,3688.012958,270,0,47.542783
|
||||||
TPE,UL12_3,,,,,,,,,,,,,UL12_3_TPE2,905.036450,3826.957213,90.000000,43.000000
|
TPE,UL12_3,,,,,,,,,,,,,UL12_3_TPE2,905.03645,3826.957213,90,0,43
|
||||||
TPE,UL12_4,,,,,,,,,,,,,UL12_4_TPE1,1742.072614,3827.324144,90.000000,43.000000
|
TPE,UL12_4,,,,,,,,,,,,,UL12_4_TPE1,1742.072614,3827.324144,90,0,43
|
||||||
TPE,UL12_9,,,,,,,,,,,,,UL12_9_TPE1,2020.048027,3747.625802,58.094345,65.489640
|
TPE,UL12_9,,,,,,,,,,,,,UL12_9_TPE1,2020.048027,3747.625802,58.094345,0,65.48964
|
||||||
TPE,UL12_8,,,,,,,,,,,,,UL12_8_TPE1,1986.689623,3761.398031,58.094345,65.489640
|
TPE,UL12_8,,,,,,,,,,,,,UL12_8_TPE1,1986.689623,3761.398031,58.094345,0,65.48964
|
||||||
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE2,1955.553412,3781.851714,58.094345,65.489640
|
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE2,1955.553412,3781.851714,58.094345,0,65.48964
|
||||||
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE1,1908.852330,3808.657056,58.094345,65.489640
|
TPE,UL12_7,,,,,,,,,,,,,UL12_7_TPE1,1908.85233,3808.657056,58.094345,0,65.48964
|
||||||
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE1,3144.026193,3596.341132,329.554546,45.785116
|
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE1,3144.026193,3596.341132,330,90,45.785116
|
||||||
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE2,3300.316069,3508.372989,329.554546,45.785116
|
TPE,PS4_2,,,,,,,,,,,,,PS4_2_TPE2,3300.316069,3508.372989,329.554546,90,45.785116
|
||||||
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE1,3310.573165,3523.337000,90.000000,45.785116
|
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE1,3310.573165,3523.337,90,0,45.785116
|
||||||
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE2,3352.239313,3524.485575,90.000000,45.785116
|
TPE,PS4_4,,,,,,,,,,,,,PS4_4_TPE2,3352.239313,3524.485575,90,0,45.785116
|
||||||
TPE,PS4_5,,,,,,,,,,,,,PS4_5_TPE1,4006.352329,3523.358120,90.000000,45.785116
|
TPE,PS4_5,,,,,,,,,,,,,PS4_5_TPE1,4006.352329,3523.35812,90,0,45.785116
|
||||||
TPE,PS4_6,,,,,,,,,,,,,PS4_6_TPE1,4688.607797,3525.782820,90.000000,45.785116
|
TPE,PS4_6,,,,,,,,,,,,,PS4_6_TPE1,4688.607797,3525.78282,90,0,45.785116
|
||||||
TPE,PS4_7,,,,,,,,,,,,,PS4_7_TPE1,5611.139091,3525.602719,90.000000,45.785116
|
TPE,PS4_7,,,,,,,,,,,,,PS4_7_TPE1,5611.139091,3525.602719,90,0,45.785116
|
||||||
TPE,PS4_8,,,,,,,,,,,,,PS4_8_TPE1,6274.851839,3521.438644,90.000000,45.785116
|
TPE,PS4_8,,,,,,,,,,,,,PS4_8_TPE1,6274.851839,3521.438644,90,0,45.785116
|
||||||
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE1,6353.888615,3456.502166,180.000000,45.785116
|
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE1,6353.888615,3456.502166,180,0,45.785116
|
||||||
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE2,6352.160013,2673.212430,180.000000,45.785116
|
TPE,PS4_10,,,,,,,,,,,,,PS4_10_TPE2,6352.160013,2673.21243,180,0,45.785116
|
||||||
TPE,PS4_11,,,,,,,,,,,,,PS4_11_TPE1,6349.468358,2155.105517,180.000000,45.785116
|
TPE,PS4_11,,,,,,,,,,,,,PS4_11_TPE1,6349.468358,2155.105517,180,0,45.785116
|
||||||
TPE,PS4_12,,,,,,,,,,,,,PS4_12_TPE1,6355.840289,1761.029836,180.000000,45.785116
|
TPE,PS4_12,,,,,,,,,,,,,PS4_12_TPE1,6355.840289,1761.029836,180,0,45.785116
|
||||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE1,2985.330236,2984.624061,90.000000,62.276218
|
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE1,2985.330236,2984.624061,90,0,62.276218
|
||||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE2,2995.809571,2984.624061,90.000000,62.276218
|
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE2,2995.809571,2984.624061,90,0,62.276218
|
||||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE3,3006.611353,2984.624061,90.000000,62.276218
|
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE3,3006.611353,2984.624061,90,0,62.276218
|
||||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE4,3145.918252,2982.299275,90.000000,62.276218
|
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE4,3145.918252,2982.299275,90,0,62.276218
|
||||||
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE5,3159.803377,2984.151808,90.000000,62.276218
|
TPE,UL7_14,,,,,,,,,,,,,UL7_14_PE5,3159.803377,2984.151808,90,0,62.276218
|
||||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE1,2971.430134,3668.918012,90.000000,62.276218
|
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE1,2971.430134,3668.918012,90,0,62.276218
|
||||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE2,2981.909469,3668.918012,90.000000,62.276218
|
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE2,2981.909469,3668.918012,90,0,62.276218
|
||||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE3,2992.711251,3668.918012,90.000000,62.276218
|
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE3,2992.711251,3668.918012,90,0,62.276218
|
||||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE4,3140.122346,3669.955216,90.000000,62.276218
|
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE4,3140.122346,3669.955216,90,0,62.276218
|
||||||
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE5,3155.997766,3671.874205,90.000000,62.276218
|
TPE,UL11_14,,,,,,,,,,,,,UL11_14_PE5,3155.997766,3671.874205,90,0,62.276218
|
||||||
TPE,UL7_9,,,,,,,,,,,,,UL7_9_TPE1,1965.806948,2973.254470,90.000000,62.276218
|
TPE,UL7_9,,,,,,,,,,,,,UL7_9_TPE1,1965.806948,2973.25447,90,0,62.276218
|
||||||
TPE,UL9_5,,,,,,,,,,,,,UL9_5_TPE1,1826.538319,3321.774338,90.000000,65.052088
|
TPE,UL9_5,,,,,,,,,,,,,UL9_5_TPE1,1826.538319,3321.774338,90,0,65.052088
|
||||||
TPE,UL9_11,,,,,,,,,,,,,UL9_11_TPE1,2343.399072,3047.086292,58.094345,65.489640
|
TPE,UL9_11,,,,,,,,,,,,,UL9_11_TPE1,2343.399072,3047.086292,58.094345,0,65.48964
|
||||||
TPE,UL11_9,,,,,,,,,,,,,UL11_9_TPE1,1988.780120,3658.283856,90.000000,62.276218
|
TPE,UL11_9,,,,,,,,,,,,,UL11_9_TPE1,1988.78012,3658.283856,90,0,62.276218
|
||||||
TPE,UL12_5,,,,,,,,,,,,,UL12_5_TPE1,1842.084498,3824.815942,90.000000,64.845569
|
TPE,UL12_5,,,,,,,,,,,,,UL12_5_TPE1,1842.084498,3824.815942,90,0,64.845569
|
||||||
TPE,UL12_10,,,,,,,,,,,,,UL12_10_TPE1,2049.673824,3728.878967,58.094345,65.489640
|
TPE,UL12_10,,,,,,,,,,,,,UL12_10_TPE1,2049.673824,3728.878967,58.094345,0,65.48964
|
||||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE2,2184.282561,2976.023749,90.000000,66.331837
|
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE2,2184.282561,2976.023749,90,0,66.331837
|
||||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE4,2488.728147,2977.141287,90.000000,63.585604
|
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE4,2488.728147,2977.141287,90,0,63.585604
|
||||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE5,2611.835876,2978.598409,90.000000,62.276218
|
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE5,2611.835876,2978.598409,90,0,62.276218
|
||||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE1,1998.130873,2981.527148,90.000000,62.276218
|
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE1,1998.130873,2981.527148,90,0,62.276218
|
||||||
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE3,2334.139704,2978.861146,90.000000,62.276218
|
TPE,UL7_10,,,,,,,,,,,,,UL7_10_TPE3,2334.139704,2978.861146,90,0,62.276218
|
||||||
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE1,6272.313843,1688.457365,90.000000,45.785116
|
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE1,6272.313843,1688.457365,90,0,45.785116
|
||||||
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE2,5949.215298,1690.378911,90.000000,45.785116
|
TPE,PS4_14,,,,,,,,,,,,,PS4_14_TPE2,5949.215298,1690.378911,90,0,45.785116
|
||||||
|
|||||||
|
309
add_devices.py
Normal file
309
add_devices.py
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
import csv
|
||||||
|
import math
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# CONFIG
|
||||||
|
# -----------------------
|
||||||
|
SCALE = 0.0254
|
||||||
|
FIXED_Y = 2.4
|
||||||
|
CONVEYOR_WIDTH = 1.524
|
||||||
|
EDGE_CLEARANCE = 0.45
|
||||||
|
BEAM_RANGE_ADJUSTMENT = 0.25
|
||||||
|
|
||||||
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||||
|
csv_candidates = list(SCRIPT_DIR.glob("*.csv"))
|
||||||
|
if not csv_candidates:
|
||||||
|
raise RuntimeError("No CSV found in script directory.")
|
||||||
|
if len(csv_candidates) > 1:
|
||||||
|
raise RuntimeError(
|
||||||
|
"Multiple CSV files found. Please keep only ONE CSV in the folder:\n"
|
||||||
|
+ "\n".join(c.name for c in csv_candidates)
|
||||||
|
)
|
||||||
|
CSV_PATH = csv_candidates[0]
|
||||||
|
|
||||||
|
SCENE_DIR = SCRIPT_DIR.parent
|
||||||
|
OUTPUT_DIR = SCRIPT_DIR / "with_devices"
|
||||||
|
OUTPUT_DIR.mkdir(exist_ok=True)
|
||||||
|
|
||||||
|
SENSOR_SCENE_PATH = "res://parts/DiffuseSensor.tscn"
|
||||||
|
SENSOR_RES_ID = "auto_sensor"
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# LOAD CSV DEVICES
|
||||||
|
# -----------------------
|
||||||
|
devices = []
|
||||||
|
with open(CSV_PATH, newline="", encoding="utf-8") as f:
|
||||||
|
reader = csv.DictReader(f)
|
||||||
|
for row in reader:
|
||||||
|
if row.get("record_type") == "TPE":
|
||||||
|
devices.append(row)
|
||||||
|
|
||||||
|
if not devices:
|
||||||
|
raise RuntimeError("No TPE records found in CSV.")
|
||||||
|
|
||||||
|
devices_by_conveyor = {}
|
||||||
|
for d in devices:
|
||||||
|
key = (d.get("conveyor_key") or "").strip()
|
||||||
|
if key:
|
||||||
|
devices_by_conveyor.setdefault(key, []).append(d)
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# SELECT SCENE
|
||||||
|
# -----------------------
|
||||||
|
scene_files = list(SCENE_DIR.glob("*.tscn"))
|
||||||
|
if not scene_files:
|
||||||
|
raise RuntimeError("No .tscn files found in parent directory.")
|
||||||
|
|
||||||
|
print("\nAvailable scenes:")
|
||||||
|
for i, s in enumerate(scene_files, 1):
|
||||||
|
print(f"[{i}] {s.name}")
|
||||||
|
|
||||||
|
choice = int(input("\nSelect scene number: ")) - 1
|
||||||
|
if choice < 0 or choice >= len(scene_files):
|
||||||
|
raise RuntimeError("Invalid selection.")
|
||||||
|
SCENE_PATH = scene_files[choice]
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# READ SCENE
|
||||||
|
# -----------------------
|
||||||
|
scene_text = SCENE_PATH.read_text(encoding="utf-8")
|
||||||
|
lines = scene_text.splitlines()
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# PARSE CONVEYORS
|
||||||
|
# -----------------------
|
||||||
|
conveyors = {}
|
||||||
|
|
||||||
|
node_name = None
|
||||||
|
has_size = False
|
||||||
|
pending_basis = None
|
||||||
|
pending_position = None
|
||||||
|
conveyor_width = CONVEYOR_WIDTH
|
||||||
|
conveyor_size = None
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
if line.startswith("[node name="):
|
||||||
|
if node_name and pending_basis and pending_position:
|
||||||
|
conveyors[node_name] = {
|
||||||
|
"basis": pending_basis,
|
||||||
|
"has_size": has_size,
|
||||||
|
"width": conveyor_width,
|
||||||
|
"position": pending_position,
|
||||||
|
"size": conveyor_size
|
||||||
|
}
|
||||||
|
|
||||||
|
m = re.search(r'name="([^"]+)"', line)
|
||||||
|
node_name = m.group(1) if m else None
|
||||||
|
has_size = False
|
||||||
|
pending_basis = None
|
||||||
|
pending_position = None
|
||||||
|
conveyor_width = CONVEYOR_WIDTH
|
||||||
|
conveyor_size = None
|
||||||
|
continue
|
||||||
|
|
||||||
|
if node_name and line.strip().startswith("transform = Transform3D"):
|
||||||
|
vals = [float(v) for v in re.search(r"\(([^)]+)\)", line).group(1).split(",")]
|
||||||
|
pending_basis = (vals[0], vals[2], vals[6], vals[8])
|
||||||
|
pending_position = (vals[9], vals[10], vals[11])
|
||||||
|
|
||||||
|
if node_name and line.strip().startswith("size = Vector3"):
|
||||||
|
has_size = True
|
||||||
|
conveyor_size = tuple(
|
||||||
|
float(v) for v in re.search(r"\(([^)]+)\)", line).group(1).split(",")
|
||||||
|
)
|
||||||
|
|
||||||
|
if node_name and line.strip().startswith("conveyor_width ="):
|
||||||
|
conveyor_width = float(line.split("=")[1])
|
||||||
|
|
||||||
|
if node_name and pending_basis and pending_position:
|
||||||
|
conveyors[node_name] = {
|
||||||
|
"basis": pending_basis,
|
||||||
|
"has_size": has_size,
|
||||||
|
"width": conveyor_width,
|
||||||
|
"position": pending_position,
|
||||||
|
"size": conveyor_size
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# ENSURE SENSOR RESOURCE
|
||||||
|
# -----------------------
|
||||||
|
if SENSOR_SCENE_PATH not in scene_text:
|
||||||
|
idx = max(i for i, l in enumerate(lines) if l.startswith("[ext_resource"))
|
||||||
|
lines.insert(idx + 1,
|
||||||
|
f'[ext_resource type="PackedScene" path="{SENSOR_SCENE_PATH}" id="{SENSOR_RES_ID}"]'
|
||||||
|
)
|
||||||
|
|
||||||
|
scene_text = "\n".join(lines) + "\n"
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# HELPERS
|
||||||
|
# -----------------------
|
||||||
|
def yaw_from_x_axis(xx, xz):
|
||||||
|
return math.atan2(-xz, xx)
|
||||||
|
|
||||||
|
def yaw_from_z_axis(zx, zz):
|
||||||
|
return math.atan2(zx, zz)
|
||||||
|
|
||||||
|
def compute_sensor_position(info, yaw, idx, total):
|
||||||
|
px, _, pz = info["position"]
|
||||||
|
|
||||||
|
if not info["size"]:
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
length = info["size"][0]
|
||||||
|
|
||||||
|
if total == 1:
|
||||||
|
off = length / 2
|
||||||
|
elif total == 2:
|
||||||
|
off = (-length / 2) if idx == 0 else (length / 2)
|
||||||
|
else:
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
return (
|
||||||
|
px + math.cos(yaw) * off,
|
||||||
|
pz + math.sin(yaw) * off
|
||||||
|
)
|
||||||
|
|
||||||
|
def godot_yaw_from_cad(cad_deg: float) -> float:
|
||||||
|
"""
|
||||||
|
AutoCAD → Godot rotation conversion
|
||||||
|
|
||||||
|
AutoCAD:
|
||||||
|
0° = up
|
||||||
|
90° = right
|
||||||
|
180° = down
|
||||||
|
270° = left
|
||||||
|
clockwise
|
||||||
|
|
||||||
|
Godot:
|
||||||
|
0° = +X
|
||||||
|
90° = -Z
|
||||||
|
CCW
|
||||||
|
|
||||||
|
With Y→-Z flip already applied in coordinates.
|
||||||
|
"""
|
||||||
|
return math.radians((270 - cad_deg) % 360)
|
||||||
|
|
||||||
|
|
||||||
|
def compute_edge_offset(sensor_yaw, width):
|
||||||
|
"""
|
||||||
|
Move sensor to the edge in the direction perpendicular to where it's pointing.
|
||||||
|
The sensor beam points in the sensor_yaw direction, so we offset perpendicular to that.
|
||||||
|
"""
|
||||||
|
# Perpendicular to sensor's facing direction (90° to the right of where it points)
|
||||||
|
side = sensor_yaw - math.pi / 2
|
||||||
|
d = (width / 2) + EDGE_CLEARANCE
|
||||||
|
return math.cos(side) * d, math.sin(side) * d
|
||||||
|
|
||||||
|
def sensor_yaw_from_csv(info, conveyor_yaw, csv_x, csv_z):
|
||||||
|
cx, _, cz = info["position"]
|
||||||
|
|
||||||
|
# right perpendicular to conveyor forward
|
||||||
|
rx = math.cos(conveyor_yaw - math.pi / 2)
|
||||||
|
rz = math.sin(conveyor_yaw - math.pi / 2)
|
||||||
|
|
||||||
|
vx = csv_x - cx
|
||||||
|
vz = csv_z - cz
|
||||||
|
|
||||||
|
side = vx * rx + vz * rz
|
||||||
|
|
||||||
|
if side >= 0:
|
||||||
|
return conveyor_yaw + math.pi / 2
|
||||||
|
return conveyor_yaw - math.pi / 2
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# APPEND DEVICES
|
||||||
|
# -----------------------
|
||||||
|
node_blocks = []
|
||||||
|
|
||||||
|
for key in sorted(devices_by_conveyor.keys()):
|
||||||
|
devs = devices_by_conveyor[key]
|
||||||
|
|
||||||
|
if key not in conveyors:
|
||||||
|
print(f"⚠ Conveyor not found: {key}")
|
||||||
|
continue
|
||||||
|
|
||||||
|
info = conveyors[key]
|
||||||
|
|
||||||
|
xx, xz, zx, zz = info["basis"]
|
||||||
|
width = info["width"]
|
||||||
|
|
||||||
|
yaw = yaw_from_x_axis(xx, xz) if info["has_size"] else yaw_from_z_axis(zx, zz)
|
||||||
|
|
||||||
|
for i, d in enumerate(devs):
|
||||||
|
name = f"{key}_TPE{i+1}"
|
||||||
|
tag = f"{name}_OIP"
|
||||||
|
|
||||||
|
max_range = width + BEAM_RANGE_ADJUSTMENT
|
||||||
|
|
||||||
|
x, z = compute_sensor_position(info, yaw, i, len(devs))
|
||||||
|
|
||||||
|
LONGITUDINAL_OFFSET = 0.15
|
||||||
|
|
||||||
|
if x is not None:
|
||||||
|
if len(devs) == 1:
|
||||||
|
x -= math.cos(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
z -= math.sin(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
elif len(devs) == 2:
|
||||||
|
if i == 0:
|
||||||
|
x += math.cos(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
z += math.sin(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
else:
|
||||||
|
x -= math.cos(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
z -= math.sin(yaw) * LONGITUDINAL_OFFSET
|
||||||
|
else:
|
||||||
|
x = float(d["tpe_x"]) * SCALE
|
||||||
|
z = -float(d["tpe_y"]) * SCALE
|
||||||
|
|
||||||
|
csv_x = float(d["tpe_x"]) * SCALE
|
||||||
|
csv_z = -float(d["tpe_y"]) * SCALE
|
||||||
|
|
||||||
|
if "tpe_rotation" in d and d["tpe_rotation"] not in ("", None):
|
||||||
|
tpe_rot = float(d["tpe_rotation"])
|
||||||
|
else:
|
||||||
|
tpe_rot = 0.0
|
||||||
|
|
||||||
|
if "tpe_block_rotation" in d and d["tpe_block_rotation"] not in ("", None):
|
||||||
|
blk_rot = float(d["tpe_block_rotation"])
|
||||||
|
else:
|
||||||
|
blk_rot = 0.0
|
||||||
|
|
||||||
|
# If we have ANY rotation data (block or TPE), use it
|
||||||
|
if tpe_rot != 0.0 or blk_rot != 0.0:
|
||||||
|
# Combine both rotations in CAD space
|
||||||
|
cad_world_rot = (blk_rot + tpe_rot) % 360.0
|
||||||
|
sensor_yaw = godot_yaw_from_cad(cad_world_rot)
|
||||||
|
else:
|
||||||
|
# fallback ONLY if both rotations are missing/zero
|
||||||
|
sensor_yaw = yaw + math.pi
|
||||||
|
|
||||||
|
ox, oz = compute_edge_offset(sensor_yaw, width)
|
||||||
|
x += ox
|
||||||
|
z += oz
|
||||||
|
|
||||||
|
c, s = math.cos(sensor_yaw), math.sin(sensor_yaw)
|
||||||
|
|
||||||
|
transform = (
|
||||||
|
f"Transform3D({c:.6f},0,{-s:.6f},0,1,0,{s:.6f},0,{c:.6f},"
|
||||||
|
f"{x:.6f},{FIXED_Y:.6f},{z:.6f})"
|
||||||
|
)
|
||||||
|
|
||||||
|
node_blocks.append(
|
||||||
|
f'\n[node name="{name}" parent="." instance=ExtResource("{SENSOR_RES_ID}")]\n'
|
||||||
|
f"transform = {transform}\n"
|
||||||
|
f"max_range = {max_range:.3f}\n"
|
||||||
|
f"enable_comms = true\n"
|
||||||
|
f'tag_name = "{tag}"\n'
|
||||||
|
)
|
||||||
|
|
||||||
|
scene_text += "".join(node_blocks)
|
||||||
|
|
||||||
|
# -----------------------
|
||||||
|
# WRITE OUTPUT
|
||||||
|
# -----------------------
|
||||||
|
out_path = OUTPUT_DIR / f"{SCENE_PATH.stem}_devices{SCENE_PATH.suffix}"
|
||||||
|
out_path.write_text(scene_text, encoding="utf-8")
|
||||||
|
|
||||||
|
print(f"\n✔ {len(node_blocks)} sensors added → {out_path}")
|
||||||
@ -174,6 +174,11 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(defun block-rot-deg (blk / r)
|
||||||
|
(setq r (vla-get-rotation blk)) ; radians
|
||||||
|
(rad->deg r)
|
||||||
|
)
|
||||||
|
|
||||||
(defun c:EXPORT_CONVEYORS ( / ss i ent blk effName attList ptag parsed
|
(defun c:EXPORT_CONVEYORS ( / ss i ent blk effName attList ptag parsed
|
||||||
prefix section kind idx insPt xy key
|
prefix section kind idx insPt xy key
|
||||||
tpeMap epcMap vfdPresence
|
tpeMap epcMap vfdPresence
|
||||||
@ -208,9 +213,10 @@
|
|||||||
(setq attList (vlax-invoke blk 'GetAttributes))
|
(setq attList (vlax-invoke blk 'GetAttributes))
|
||||||
(setq ptag (getAttVal attList "P_TAG1"))
|
(setq ptag (getAttVal attList "P_TAG1"))
|
||||||
;; >>> ADDED: TPE-specific dynamic properties (Custom section)
|
;; >>> ADDED: TPE-specific dynamic properties (Custom section)
|
||||||
(setq tpeRotRaw (getDynPropValNum blk "PE ROTATION")) ; numeric
|
(setq tpeRotRaw (getDynPropVal blk "PE ROTATION")) ; numeric
|
||||||
(setq tpeRot (tpe-rot-deg tpeRotRaw))
|
(setq tpeRot (tpe-rot-deg tpeRotRaw))
|
||||||
(setq tpeDist (getDynPropVal blk "Distance1"))
|
(setq tpeDist (getDynPropVal blk "Distance1"))
|
||||||
|
(setq blkRot (block-rot-deg blk))
|
||||||
|
|
||||||
|
|
||||||
(setq parsed (parse-ptag1-anchor ptag))
|
(setq parsed (parse-ptag1-anchor ptag))
|
||||||
@ -229,7 +235,7 @@
|
|||||||
(setq xy (list (car insPt) (cadr insPt)))
|
(setq xy (list (car insPt) (cadr insPt)))
|
||||||
(setq entries (cdr (assoc key tpeMap)))
|
(setq entries (cdr (assoc key tpeMap)))
|
||||||
(if (not entries) (setq entries '()))
|
(if (not entries) (setq entries '()))
|
||||||
(setq entries (cons (list idx xy ptag tpeRot tpeDist) entries))
|
(setq entries (cons (list idx xy ptag tpeRot blkRot tpeDist) entries))
|
||||||
(setq tpeMap
|
(setq tpeMap
|
||||||
(if (assoc key tpeMap)
|
(if (assoc key tpeMap)
|
||||||
(subst (cons key entries) (assoc key tpeMap) tpeMap)
|
(subst (cons key entries) (assoc key tpeMap) tpeMap)
|
||||||
@ -387,7 +393,7 @@
|
|||||||
(setq fh (open outPath "w"))
|
(setq fh (open outPath "w"))
|
||||||
;; >>> ADDED: record_type + TPE columns
|
;; >>> ADDED: record_type + TPE columns
|
||||||
(write-line
|
(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"
|
"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_block_rotation,tpe_distance"
|
||||||
fh)
|
fh)
|
||||||
|
|
||||||
|
|
||||||
@ -533,7 +539,8 @@
|
|||||||
(setq xy (nth 1 it))
|
(setq xy (nth 1 it))
|
||||||
(setq tpeName (nth 2 it))
|
(setq tpeName (nth 2 it))
|
||||||
(setq tpeRot (nth 3 it))
|
(setq tpeRot (nth 3 it))
|
||||||
(setq tpeDist (nth 4 it))
|
(setq blkRot (nth 4 it))
|
||||||
|
(setq tpeDist (nth 5 it))
|
||||||
|
|
||||||
(write-line
|
(write-line
|
||||||
(strcat
|
(strcat
|
||||||
@ -545,8 +552,9 @@
|
|||||||
tpeName "," ;; tpe_name
|
tpeName "," ;; tpe_name
|
||||||
(rtos (car xy) 2 6) ","
|
(rtos (car xy) 2 6) ","
|
||||||
(rtos (cadr xy) 2 6) ","
|
(rtos (cadr xy) 2 6) ","
|
||||||
(rtos (tpe-rot-deg tpeRot) 2 6) "," ;; tpe_rotation
|
(rtos tpeRot 2 6) ","
|
||||||
(if tpeDist (rtos tpeDist 2 6) "") ;; tpe_distance
|
(rtos blkRot 2 6) ","
|
||||||
|
(if tpeDist (rtos tpeDist 2 6) "")
|
||||||
|
|
||||||
)
|
)
|
||||||
fh
|
fh
|
||||||
@ -554,8 +562,6 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(close fh)
|
(close fh)
|
||||||
(princ (strcat "\nExported conveyors to: " outPath))
|
(princ (strcat "\nExported conveyors to: " outPath))
|
||||||
(princ "\nIncluded=1 => geometry. Included=0 => VFD-only (no TPE geometry).")
|
(princ "\nIncluded=1 => geometry. Included=0 => VFD-only (no TPE geometry).")
|
||||||
|
|||||||
@ -39,6 +39,11 @@ CURVE_INNER_RADIUS = 0.5
|
|||||||
BELT_WIDTH_DEFAULT = 1.524 # default size.z
|
BELT_WIDTH_DEFAULT = 1.524 # default size.z
|
||||||
DEGEN_EPS = 0.001 # meters (true zero-length)
|
DEGEN_EPS = 0.001 # meters (true zero-length)
|
||||||
|
|
||||||
|
# FIX: curved asset forward-axis / pivot assumptions
|
||||||
|
# - If your curved assembly faces "backwards" compared to your straight conveyors,
|
||||||
|
# adding 180deg fixes that.
|
||||||
|
CURVE_ROT_OFFSET = math.pi # 180 degrees
|
||||||
|
|
||||||
# Gap stitching tolerance
|
# Gap stitching tolerance
|
||||||
EPS = 0.05 # meters
|
EPS = 0.05 # meters
|
||||||
|
|
||||||
@ -483,9 +488,37 @@ for name in sorted(straight.keys()):
|
|||||||
add_straight_node(lines, name, c["rot_y"], cx, cz, c["length"], width)
|
add_straight_node(lines, name, c["rot_y"], cx, cz, c["length"], width)
|
||||||
written_straights.add(name)
|
written_straights.add(name)
|
||||||
|
|
||||||
# Spur logic (kept)
|
# Spur logic (MODIFIED: resilient neighbor lookup + FIXED curved placement + FIXED curved rotation)
|
||||||
placed_spurs = set()
|
placed_spurs = set()
|
||||||
|
|
||||||
|
def find_prev_next(prefix, sec):
|
||||||
|
# Find nearest existing straight neighbors in this prefix if sec±1 isn't present
|
||||||
|
prev_key = f"{prefix}_{sec-1}"
|
||||||
|
next_key = f"{prefix}_{sec+1}"
|
||||||
|
|
||||||
|
if prev_key not in straight:
|
||||||
|
k = sec - 1
|
||||||
|
while k > 0:
|
||||||
|
cand = f"{prefix}_{k}"
|
||||||
|
if cand in straight:
|
||||||
|
prev_key = cand
|
||||||
|
break
|
||||||
|
k -= 1
|
||||||
|
|
||||||
|
if next_key not in straight:
|
||||||
|
k = sec + 1
|
||||||
|
# hard cap to avoid infinite search on bad data
|
||||||
|
while k < sec + 200:
|
||||||
|
cand = f"{prefix}_{k}"
|
||||||
|
if cand in straight:
|
||||||
|
next_key = cand
|
||||||
|
break
|
||||||
|
k += 1
|
||||||
|
|
||||||
|
if prev_key not in straight or next_key not in straight:
|
||||||
|
return None, None
|
||||||
|
return prev_key, next_key
|
||||||
|
|
||||||
for spur in vfd_only:
|
for spur in vfd_only:
|
||||||
name = spur["name"]
|
name = spur["name"]
|
||||||
if name in straight:
|
if name in straight:
|
||||||
@ -493,10 +526,9 @@ for spur in vfd_only:
|
|||||||
|
|
||||||
prefix = spur["prefix"]
|
prefix = spur["prefix"]
|
||||||
sec = spur["sec"]
|
sec = spur["sec"]
|
||||||
prev_key = f"{prefix}_{sec-1}"
|
|
||||||
next_key = f"{prefix}_{sec+1}"
|
|
||||||
|
|
||||||
if prev_key not in straight or next_key not in straight:
|
prev_key, next_key = find_prev_next(prefix, sec)
|
||||||
|
if not prev_key or not next_key:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
prev = straight[prev_key]
|
prev = straight[prev_key]
|
||||||
@ -554,22 +586,41 @@ for spur in vfd_only:
|
|||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Curved spur placement uses width of prev belt for edge offset
|
# -----------------------
|
||||||
|
# FIXED: Curved spur placement + 180° yaw offset
|
||||||
|
#
|
||||||
|
# Old logic assumed a pivot/tangent relationship that effectively used (width/2 - inner_radius),
|
||||||
|
# which is wrong for typical curved assets.
|
||||||
|
#
|
||||||
|
# New logic assumes the curved asset pivot is the CIRCLE CENTER of the BELT CENTERLINE:
|
||||||
|
# r_center = inner_radius + width/2
|
||||||
|
# place = prev.end + inward * r_center
|
||||||
|
# and we also apply CURVE_ROT_OFFSET (pi) if the asset faces backwards.
|
||||||
|
# -----------------------
|
||||||
turn_sign = 1.0 if delta > 0 else -1.0
|
turn_sign = 1.0 if delta > 0 else -1.0
|
||||||
|
|
||||||
rx, rz = unit_right(prev["rot_y"])
|
rx, rz = unit_right(prev["rot_y"])
|
||||||
end_x, end_z = prev["end"]
|
end_x, end_z = prev["end"]
|
||||||
|
|
||||||
prev_width = prev.get("width", BELT_WIDTH_DEFAULT)
|
prev_width = prev.get("width", BELT_WIDTH_DEFAULT)
|
||||||
|
|
||||||
edge_x = end_x + rx * (prev_width / 2) * turn_sign
|
# inward points from the tangent point toward the curve center
|
||||||
edge_z = end_z + rz * (prev_width / 2) * turn_sign
|
|
||||||
inward_x = -rx * turn_sign
|
inward_x = -rx * turn_sign
|
||||||
inward_z = -rz * turn_sign
|
inward_z = -rz * turn_sign
|
||||||
|
|
||||||
place_x = edge_x + inward_x * CURVE_INNER_RADIUS
|
# centerline radius from inner edge
|
||||||
place_z = edge_z + inward_z * CURVE_INNER_RADIUS
|
r_center = CURVE_INNER_RADIUS + (prev_width / 2.0)
|
||||||
|
|
||||||
add_curved_node(lines, name, prev["rot_y"], place_x, place_z, angle_deg)
|
place_x = end_x + inward_x * r_center
|
||||||
|
place_z = end_z + inward_z * r_center
|
||||||
|
|
||||||
|
add_curved_node(
|
||||||
|
lines,
|
||||||
|
name,
|
||||||
|
prev["rot_y"] + CURVE_ROT_OFFSET,
|
||||||
|
place_x,
|
||||||
|
place_z,
|
||||||
|
angle_deg
|
||||||
|
)
|
||||||
placed_spurs.add(name)
|
placed_spurs.add(name)
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user