-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMazak_Integrex-i400S-TURN.tcl
4841 lines (3713 loc) · 133 KB
/
Mazak_Integrex-i400S-TURN.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
########################## TCL Event Handlers ##########################
#
# Mazak_Integrex-i400S-TURN.tcl -
#
# Created by Batarev @ 5 äåêàáðÿ 2016 ã. 16:23:26 RTZ 2 (зима)
# with Post Builder version 6.0.3.
#
########################################################################
set cam_post_dir [MOM_ask_env_var UGII_CAM_POST_DIR]
if { ![info exists mom_sys_post_initialized] } {
source ${cam_post_dir}ugpost_base.tcl
set mom_sys_debug_mode OFF
if { ![info exists env(PB_SUPPRESS_UGPOST_DEBUG)] } {
set env(PB_SUPPRESS_UGPOST_DEBUG) 0
}
if $env(PB_SUPPRESS_UGPOST_DEBUG) {
set mom_sys_debug_mode OFF
}
if { ![string compare $mom_sys_debug_mode "OFF"] } {
proc MOM_before_each_add_var {} {}
proc MOM_before_each_event {} {}
} else {
set cam_debug_dir [MOM_ask_env_var UGII_CAM_DEBUG_DIR]
source ${cam_debug_dir}mom_review.tcl
}
MOM_set_debug_mode ON
#### Listing File variables
set mom_sys_list_output "OFF"
set mom_sys_header_output "OFF"
set mom_sys_list_file_rows "40"
set mom_sys_list_file_columns "30"
set mom_sys_warning_output "OFF"
set mom_sys_group_output "OFF"
set mom_sys_list_file_suffix "lpt"
set mom_sys_output_file_suffix "eia"
set mom_sys_commentary_output "ON"
set mom_sys_commentary_list "x z feed speed"
#=============================================================
proc MOM_before_output { } {
#=============================================================
# This command is executed just before every NC block is
# to be output to a file.
#
# - Never overload this command!
# - Any customization should be done in PB_CMD_before_output!
#
if { [llength [info commands PB_CMD_kin_before_output]] } {
PB_CMD_kin_before_output
}
######### The following procedure invokes the listing file with warnings.
LIST_FILE
}
set mom_sys_control_out "("
set mom_sys_control_in ")"
set mom_sys_post_initialized 1
}
########## SYSTEM VARIABLE DECLARATIONS ##############
set mom_sys_rapid_code "0"
set mom_sys_linear_code "1"
set mom_sys_circle_code(CLW) "2"
set mom_sys_circle_code(CCLW) "3"
set mom_sys_lathe_thread_advance_type(1) "32"
set mom_sys_lathe_thread_advance_type(2) "32"
set mom_sys_lathe_thread_advance_type(3) "32"
set mom_sys_delay_code(SECONDS) "4"
set mom_sys_delay_code(REVOLUTIONS) "4"
set mom_sys_cutcom_code(OFF) "40"
set mom_sys_cutcom_code(LEFT) "41"
set mom_sys_cutcom_code(RIGHT) "42"
set mom_sys_adjust_code "43"
set mom_sys_adjust_code_minus "44"
set mom_sys_adjust_cancel_code "49"
set mom_sys_unit_code(IN) "70"
set mom_sys_unit_code(MM) "71"
set mom_sys_cycle_drill_break_chip_code "73"
set mom_sys_cycle_off "80"
set mom_sys_cycle_drill_code "81"
set mom_sys_cycle_drill_deep_code "83"
set mom_sys_cycle_drill_dwell_code "82"
set mom_sys_cycle_tap_code "84"
set mom_sys_cycle_bore_code "85"
set mom_sys_output_code(ABSOLUTE) "90"
set mom_sys_output_code(INCREMENTAL) "91"
set mom_sys_reset_code "92"
set mom_sys_feed_rate_mode_code(IPM) "94"
set mom_sys_feed_rate_mode_code(IPR) "95"
set mom_sys_feed_rate_mode_code(FRN) "93"
set mom_sys_spindle_mode_code(SFM) "96"
set mom_sys_spindle_mode_code(RPM) "97"
set mom_sys_return_code "28"
set mom_sys_cycle_ret_code(AUTO) "0"
set mom_sys_cycle_ret_code(MANUAL) "0"
set mom_sys_feed_rate_mode_code(MMPM) "94"
set mom_sys_feed_rate_mode_code(MMPR) "95"
set mom_sys_program_stop_code "0"
set mom_sys_optional_stop_code "1"
set mom_sys_end_of_program_code "30"
set mom_sys_spindle_direction_code(CLW) "204"
set mom_sys_spindle_direction_code(CCLW) "203"
set mom_sys_spindle_direction_code(OFF) "205"
set mom_sys_tool_change_code "6"
set mom_sys_coolant_code(MIST) "8"
set mom_sys_coolant_code(ON) "8"
set mom_sys_coolant_code(FLOOD) "8"
set mom_sys_coolant_code(OFF) "9"
set mom_sys_head_code(INDEPENDENT) "21"
set mom_sys_head_code(DEPENDENT) "22"
set mom_sys_rewind_code "30"
set mom_sys_sim_cycle_drill "0"
set mom_sys_sim_cycle_drill_dwell "0"
set mom_sys_sim_cycle_drill_deep "0"
set mom_sys_sim_cycle_drill_break_chip "0"
set mom_sys_sim_cycle_tap "0"
set mom_sys_sim_cycle_bore "0"
set mom_sys_cir_vector "Vector - Arc Start to Center"
set mom_sys_spindle_max_rpm_code "92"
set mom_sys_spindle_cancel_sfm_code "93"
set mom_sys_spindle_ranges "0"
set mom_sys_delay_output_mode "SECONDS"
set mom_sys_rewind_stop_code "\#"
set mom_sys_home_pos(0) "0"
set mom_sys_home_pos(1) "0"
set mom_sys_home_pos(2) "0"
set mom_sys_zero "0"
set mom_sys_opskip_block_leader "/"
set mom_sys_seqnum_start "1"
set mom_sys_seqnum_incr "1"
set mom_sys_seqnum_freq "1"
set mom_sys_seqnum_max "99999"
set mom_sys_lathe_x_double "2"
set mom_sys_lathe_i_double "1"
set mom_sys_lathe_x_factor "1"
set mom_sys_lathe_z_factor "1"
set mom_sys_lathe_i_factor "1"
set mom_sys_lathe_k_factor "1"
set mom_sys_leader(N) "N"
set mom_sys_leader(X) "X"
set mom_sys_leader(Y) "Y"
set mom_sys_leader(Z) "Z"
set mom_sys_turret_index(INDEPENDENT) "1"
set mom_sys_turret_index(DEPENDENT) "2"
set mom_sys_delay_param(SECONDS,format) "Dwell_SECONDS"
set mom_sys_delay_param(REVOLUTIONS,format) "Dwell_REVOLUTIONS"
set mom_sys_contour_feed_mode(LINEAR) "MMPM"
set mom_sys_rapid_feed_mode(LINEAR) "MMPM"
set mom_sys_cycle_feed_mode "MMPR"
set mom_sys_feed_param(IPM,format) "Feed_IPM"
set mom_sys_feed_param(IPR,format) "Feed_IPR"
set mom_sys_feed_param(FRN,format) "Feed_INV"
set mom_sys_vnc_rapid_dogleg "1"
set mom_sys_prev_mach_head ""
set mom_sys_curr_mach_head ""
set mom_sys_feed_param(MMPM,format) "Feed_MMPM"
set mom_sys_feed_param(MMPR,format) "Feed_MMPR"
set mom_sys_post_description "Tomsk Transmission Systems"
set mom_sys_ugpadvkins_used "0"
set mom_sys_post_builder_version "6.0.3"
####### KINEMATIC VARIABLE DECLARATIONS ##############
set mom_kin_4th_axis_center_offset(0) "0.0"
set mom_kin_4th_axis_center_offset(1) "0.0"
set mom_kin_4th_axis_center_offset(2) "0.0"
set mom_kin_4th_axis_max_limit "0.0"
set mom_kin_4th_axis_min_incr "0.0"
set mom_kin_4th_axis_min_limit "0.0"
set mom_kin_4th_axis_point(0) "0.0"
set mom_kin_4th_axis_point(1) "0.0"
set mom_kin_4th_axis_point(2) "0.0"
set mom_kin_4th_axis_zero "0.0"
set mom_kin_5th_axis_center_offset(0) "0.0"
set mom_kin_5th_axis_center_offset(1) "0.0"
set mom_kin_5th_axis_center_offset(2) "0.0"
set mom_kin_5th_axis_max_limit "0.0"
set mom_kin_5th_axis_min_incr "0.0"
set mom_kin_5th_axis_min_limit "0.0"
set mom_kin_5th_axis_point(0) "0.0"
set mom_kin_5th_axis_point(1) "0.0"
set mom_kin_5th_axis_point(2) "0.0"
set mom_kin_5th_axis_zero "0.0"
set mom_kin_arc_output_mode "FULL_CIRCLE"
set mom_kin_arc_valid_plane "XY"
set mom_kin_clamp_time "2.0"
set mom_kin_dependent_head "NONE"
set mom_kin_flush_time "2.0"
set mom_kin_ind_to_dependent_head_x "0"
set mom_kin_ind_to_dependent_head_z "0"
set mom_kin_independent_head "NONE"
set mom_kin_linearization_flag "1"
set mom_kin_linearization_tol "0.001"
set mom_kin_machine_resolution ".002"
set mom_kin_machine_type "lathe"
set mom_kin_machine_zero_offset(0) "0.0"
set mom_kin_machine_zero_offset(1) "0.0"
set mom_kin_machine_zero_offset(2) "0.0"
set mom_kin_max_arc_radius "99999.999"
set mom_kin_max_dpm "0.0"
set mom_kin_max_fpm "10000"
set mom_kin_max_fpr "1000"
set mom_kin_max_frn "99999.999"
set mom_kin_min_arc_length "0.01"
set mom_kin_min_arc_radius "0.002"
set mom_kin_min_dpm "0.0"
set mom_kin_min_fpm "1.0"
set mom_kin_min_fpr "0.001"
set mom_kin_min_frn "0.001"
set mom_kin_output_unit "MM"
set mom_kin_pivot_gauge_offset "0.0"
set mom_kin_post_data_unit "MM"
set mom_kin_rapid_feed_rate "10000"
set mom_kin_tool_change_time "0.0"
set mom_kin_x_axis_limit "1000"
set mom_kin_y_axis_limit "1000"
set mom_kin_z_axis_limit "1000"
if [llength [info commands MOM_SYS_do_template] ] {
if [llength [info commands MOM_do_template] ] {
rename MOM_do_template ""
}
rename MOM_SYS_do_template MOM_do_template
}
if { [llength [info commands MOM_do_template]] == 0 } {
proc MOM_do_template { args } {}
}
if { ![info exists mom_sys_lathe_x_double] } { set mom_sys_lathe_x_double 1 }
if { ![info exists mom_sys_lathe_y_double] } { set mom_sys_lathe_y_double 1 }
if { ![info exists mom_sys_lathe_i_double] } { set mom_sys_lathe_i_double 1 }
if { ![info exists mom_sys_lathe_j_double] } { set mom_sys_lathe_j_double 1 }
if { ![info exists mom_sys_lathe_x_factor] } { set mom_sys_lathe_x_factor 1 }
if { ![info exists mom_sys_lathe_y_factor] } { set mom_sys_lathe_y_factor 1 }
if { ![info exists mom_sys_lathe_z_factor] } { set mom_sys_lathe_z_factor 1 }
if { ![info exists mom_sys_lathe_i_factor] } { set mom_sys_lathe_i_factor 1 }
if { ![info exists mom_sys_lathe_j_factor] } { set mom_sys_lathe_j_factor 1 }
if { ![info exists mom_sys_lathe_k_factor] } { set mom_sys_lathe_k_factor 1 }
if { $mom_sys_lathe_x_double != 1 || \
$mom_sys_lathe_y_double != 1 || \
$mom_sys_lathe_i_double != 1 || \
$mom_sys_lathe_j_double != 1 || \
$mom_sys_lathe_x_factor != 1 || \
$mom_sys_lathe_y_factor != 1 || \
$mom_sys_lathe_z_factor != 1 || \
$mom_sys_lathe_i_factor != 1 || \
$mom_sys_lathe_j_factor != 1 || \
$mom_sys_lathe_k_factor != 1 } {
rename MOM_do_template MOM_SYS_do_template
#====================================
proc MOM_do_template { block args } {
#====================================
global mom_sys_lathe_x_double
global mom_sys_lathe_y_double
global mom_sys_lathe_i_double
global mom_sys_lathe_j_double
global mom_sys_lathe_x_factor
global mom_sys_lathe_y_factor
global mom_sys_lathe_z_factor
global mom_sys_lathe_i_factor
global mom_sys_lathe_j_factor
global mom_sys_lathe_k_factor
global mom_prev_pos mom_pos mom_pos_arc_center mom_from_pos mom_from_ref_pos
global mom_cycle_rapid_to_pos mom_cycle_feed_to_pos mom_cycle_retract_to_pos
global mom_cycle_clearance_to_pos
global mom_cycle_feed_to mom_cycle_rapid_to
global mom_tool_x_offset mom_tool_y_offset mom_tool_z_offset
global mom_lathe_thread_lead_i mom_lathe_thread_lead_k
#-----------------------------------
# Lists of variables to be modified
#-----------------------------------
set var_list_1 { mom_pos(\$i) \
mom_from_pos(\$i) \
mom_from_ref_pos(\$i) \
mom_cycle_rapid_to_pos(\$i) \
mom_cycle_feed_to_pos(\$i) \
mom_cycle_retract_to_pos(\$i) \
mom_cycle_clearance_to_pos(\$i) }
set var_list_2 { mom_prev_pos(\$i) \
mom_pos_arc_center(\$i) }
set var_list_3 { mom_cycle_feed_to \
mom_cycle_rapid_to \
mom_lathe_thread_lead_i \
mom_lathe_thread_lead_k }
# Retain current values
set var_list [concat $var_list_1 $var_list_2]
foreach var $var_list {
for { set i 0 } { $i < 3 } { incr i } {
if [eval info exists [set var]] {
set val [eval format $[set var]]
eval set __[set var] $val
}
}
}
foreach var $var_list_3 {
if [eval info exists [set var]] {
set val [eval format $[set var]]
eval set __[set var] $val
}
}
# Adjust X, Y & Z values
set _factor(0) [expr $mom_sys_lathe_x_double * $mom_sys_lathe_x_factor]
set _factor(1) [expr $mom_sys_lathe_y_double * $mom_sys_lathe_y_factor]
set _factor(2) $mom_sys_lathe_z_factor
foreach var $var_list_1 {
for { set i 0 } { $i < 3 } { incr i } {
if [expr $_factor($i) != 1] {
if [eval info exists [set var]] {
set val [eval format $[set var]]
eval set [set var] [expr $val * $_factor($i)]
}
}
}
}
# Adjust I, J & K
set _factor(0) [expr $mom_sys_lathe_i_factor * $mom_sys_lathe_i_double]
set _factor(1) [expr $mom_sys_lathe_j_factor * $mom_sys_lathe_j_double]
set _factor(2) $mom_sys_lathe_k_factor
foreach var $var_list_2 {
for { set i 0 } { $i < 3 } { incr i } {
if [expr $_factor($i) != 1] {
if [eval info exists [set var]] {
set val [eval format $[set var]]
eval set [set var] [expr $val * $_factor($i)]
}
}
}
}
# Adjust Cycle's & threading registers
foreach var $var_list_3 {
if [eval info exists [set var]] {
set val [eval format $[set var]]
switch "$var" {
"mom_cycle_feed_to" -
"mom_cycle_rapid_to" {
eval set [set var] [expr $val * $mom_sys_lathe_z_factor]
}
"mom_lathe_thread_lead_i" {
eval set [set var] [expr $val * $mom_sys_lathe_i_factor * $mom_sys_lathe_i_double]
}
"mom_lathe_thread_lead_k" {
eval set [set var] [expr $val * $mom_sys_lathe_k_factor]
}
}
}
}
# Neutralize all factors to avoid double multiplication in the legacy posts.
set _lathe_x_double $mom_sys_lathe_x_double
set _lathe_y_double $mom_sys_lathe_y_double
set _lathe_i_double $mom_sys_lathe_i_double
set _lathe_j_double $mom_sys_lathe_j_double
set _lathe_x_factor $mom_sys_lathe_x_factor
set _lathe_y_factor $mom_sys_lathe_y_factor
set _lathe_z_factor $mom_sys_lathe_z_factor
set _lathe_i_factor $mom_sys_lathe_i_factor
set _lathe_j_factor $mom_sys_lathe_j_factor
set _lathe_k_factor $mom_sys_lathe_k_factor
set mom_sys_lathe_x_double 1
set mom_sys_lathe_y_double 1
set mom_sys_lathe_i_double 1
set mom_sys_lathe_j_double 1
set mom_sys_lathe_x_factor 1
set mom_sys_lathe_y_factor 1
set mom_sys_lathe_z_factor 1
set mom_sys_lathe_i_factor 1
set mom_sys_lathe_j_factor 1
set mom_sys_lathe_k_factor 1
#-----------------------
# Output block template
#-----------------------
set block_buffer [MOM_SYS_do_template $block $args]
# Restore values
foreach var $var_list {
for { set i 0 } { $i < 3 } { incr i } {
if [eval info exists [set var]] {
set v __[set var]
set val [eval format $$v]
eval set [set var] $val
}
}
}
foreach var $var_list_3 {
if [eval info exists [set var]] {
set v __[set var]
set val [eval format $$v]
eval set [set var] $val
}
}
# Restore factors
set mom_sys_lathe_x_double $_lathe_x_double
set mom_sys_lathe_y_double $_lathe_y_double
set mom_sys_lathe_i_double $_lathe_i_double
set mom_sys_lathe_j_double $_lathe_j_double
set mom_sys_lathe_x_factor $_lathe_x_factor
set mom_sys_lathe_y_factor $_lathe_y_factor
set mom_sys_lathe_z_factor $_lathe_z_factor
set mom_sys_lathe_i_factor $_lathe_i_factor
set mom_sys_lathe_j_factor $_lathe_j_factor
set mom_sys_lathe_k_factor $_lathe_k_factor
return $block_buffer
}
}
#=============================================================
proc MOM_start_of_program { } {
#=============================================================
global mom_logname mom_date is_from
global mom_coolant_status mom_cutcom_status
global mom_clamp_status mom_cycle_status
global mom_spindle_status mom_cutcom_plane pb_start_of_program_flag
global mom_cutcom_adjust_register mom_tool_adjust_register
global mom_tool_length_adjust_register mom_length_comp_register
global mom_flush_register mom_wire_cutcom_adjust_register
global mom_wire_cutcom_status
set pb_start_of_program_flag 0
set mom_coolant_status UNDEFINED
set mom_cutcom_status UNDEFINED
set mom_clamp_status UNDEFINED
set mom_cycle_status UNDEFINED
set mom_spindle_status UNDEFINED
set mom_cutcom_plane UNDEFINED
set mom_wire_cutcom_status UNDEFINED
catch {unset mom_cutcom_adjust_register}
catch {unset mom_tool_adjust_register}
catch {unset mom_tool_length_adjust_register}
catch {unset mom_length_comp_register}
catch {unset mom_flush_register}
catch {unset mom_wire_cutcom_adjust_register}
set is_from ""
catch { OPEN_files } ; #open warning and listing files
LIST_FILE_HEADER ; #list header in commentary listing
global mom_sys_post_initialized
if { $mom_sys_post_initialized > 1 } { return }
#************
uplevel #0 {
#=============================================================
proc MOM_sync { } {
#=============================================================
if [llength [info commands PB_CMD_kin_handle_sync_event] ] {
PB_CMD_kin_handle_sync_event
}
}
#=============================================================
proc MOM_set_csys { } {
#=============================================================
if [llength [info commands PB_CMD_kin_set_csys] ] {
PB_CMD_kin_set_csys
}
}
#=============================================================
proc MOM_msys { } {
#=============================================================
}
#=========================
# Linked posts definition
#=========================
set mom_sys_master_post "[file rootname $mom_event_handler_file_name]"
set mom_sys_master_head "Turn"
set mom_sys_postname(Turn) "$mom_sys_master_post"
set mom_sys_postname(MILL) "Mazak_Integrex-i400S_MILL"
#=============================================================
proc MOM_end_of_program { } {
#=============================================================
PB_CMD_for_prefun_in_end
PB_CMD_check_ref_motion
PB_CMD_set_modes_end
MOM_set_seq_off
PB_CMD_reprocess
#**** The following procedure lists the tool list with time in commentary data
LIST_FILE_TRAILER
#**** The following procedure closes the warning and listing files
CLOSE_files
}
#=============================================================
proc PB_end_of_HEAD__MILL { } {
#=============================================================
PB_CMD_for_prefun_in_end
}
#=============================================================
proc PB_end_of_HEAD__Turn { } {
#=============================================================
PB_CMD_custom_command_4
}
#=============================================================
proc PB_start_of_HEAD__MILL { } {
#=============================================================
PB_CMD_init_vars_from_mill
PB_CMD_init_vars1_from_mill
PB_CMD_start_from_mill
}
#=============================================================
proc PB_start_of_HEAD__Turn { } {
#=============================================================
MOM_do_template start_of_HEAD__Turn
}
incr mom_sys_post_initialized
} ;# uplevel
#***********
}
#=============================================================
proc PB_TURRET_HEAD_SET { } {
#=============================================================
global mom_kin_independent_head mom_tool_head
global turret_current mom_warning_info
set turret_current INDEPENDENT
set ind_head NONE
set dep_head NONE
if { [string compare $mom_tool_head $mom_kin_independent_head] } {
set turret_current DEPENDENT
}
if { [string compare $mom_tool_head "$ind_head"] && \
[string compare $mom_tool_head "$dep_head"] } {
set mom_warning_info "mom_tool_head = $mom_tool_head IS INVALID, USING NONE"
MOM_catch_warning
}
}
#=============================================================
proc PB_LATHE_THREAD_SET { } {
#=============================================================
global mom_lathe_thread_type mom_lathe_thread_advance_type
global mom_lathe_thread_lead_i mom_lathe_thread_lead_k
global mom_motion_distance
global mom_lathe_thread_increment mom_lathe_thread_value
global thread_type thread_increment feed_rate_mode
switch $mom_lathe_thread_advance_type {
1 {set thread_type CONSTANT ; MOM_suppress once E}
2 {set thread_type INCREASING ; MOM_force once E}
default {set thread_type DECREASING ; MOM_force once E}
}
if { ![string compare $thread_type "INCREASING"] || ![string compare $thread_type "DECREASING"] } {
if {$mom_lathe_thread_type != 1} {
set LENGTH $mom_motion_distance
set LEAD $mom_lathe_thread_value
set INCR $mom_lathe_thread_increment
set E [expr abs(pow(($LEAD + ($INCR * $LENGTH)) , 2) - pow($LEAD , 2)) / 2 * $LENGTH]
set thread_increment $E
}
}
if {$mom_lathe_thread_lead_i == 0} {
MOM_suppress once I ; MOM_force once K
} elseif {$mom_lathe_thread_lead_k == 0} {
MOM_suppress once K ; MOM_force once I
} else {
MOM_force once I ; MOM_force once K
}
}
#=============================================================
proc PB_DELAY_TIME_SET { } {
#=============================================================
global mom_sys_delay_param mom_delay_value
global mom_delay_revs mom_delay_mode delay_time
# post builder provided format for the current mode:
if {[info exists mom_sys_delay_param(${mom_delay_mode},format)] != 0} {
MOM_set_address_format dwell $mom_sys_delay_param(${mom_delay_mode},format)
}
switch $mom_delay_mode {
SECONDS {set delay_time $mom_delay_value}
default {set delay_time $mom_delay_revs}
}
}
#=============================================================
proc MOM_before_motion { } {
#=============================================================
global mom_motion_event mom_motion_type
FEEDRATE_SET
switch $mom_motion_type {
ENGAGE {PB_engage_move}
APPROACH {PB_approach_move}
FIRSTCUT {PB_first_cut}
RETRACT {PB_retract_move}
RETURN {PB_return_move}
}
if [llength [info commands PB_CMD_kin_before_motion] ] { PB_CMD_kin_before_motion }
if [llength [info commands PB_CMD_before_motion] ] { PB_CMD_before_motion }
}
#=============================================================
proc MOM_start_of_group {} {
#=============================================================
global mom_sys_group_output mom_group_name group_level ptp_file_name
global mom_sequence_number mom_sequence_increment mom_sequence_frequency
global mom_sys_ptp_output pb_start_of_program_flag
if {![hiset group_level]} {set group_level 0 ; return}
if {[hiset mom_sys_group_output]} {if { ![string compare $mom_sys_group_output "OFF"] } {set group_level 0 ; return}}
if {[hiset group_level]} {incr group_level} else {set group_level 1}
if {$group_level > 1} {return}
SEQNO_RESET ; #<4133654>
MOM_reset_sequence $mom_sequence_number $mom_sequence_increment $mom_sequence_frequency
if {[info exists ptp_file_name]} {
MOM_close_output_file $ptp_file_name ; MOM_start_of_program
if { ![string compare $mom_sys_ptp_output "ON"] } {MOM_open_output_file $ptp_file_name }
} else {
MOM_start_of_program
}
PB_start_of_program ; set pb_start_of_program_flag 1
}
#=============================================================
proc MOM_machine_mode {} {
#=============================================================
global pb_start_of_program_flag
global mom_operation_name mom_sys_change_mach_operation_name
set mom_sys_change_mach_operation_name $mom_operation_name
if {$pb_start_of_program_flag == 0} {PB_start_of_program ; set pb_start_of_program_flag 1}
if [llength [info commands PB_machine_mode] ] {
if [catch {PB_machine_mode} res] {
global mom_warning_info
set mom_warning_info "$res"
MOM_catch_warning
}
}
}
#=============================================================
proc PB_FORCE { option args } {
#=============================================================
set adds [join $args]
if { [info exists option] && [llength $adds] } {
lappend cmd MOM_force
lappend cmd $option
lappend cmd [join $adds]
eval [join $cmd]
}
}
#=============================================================
proc PB_SET_RAPID_MOD { mod_list blk_list ADDR NEW_MOD_LIST } {
#=============================================================
upvar $ADDR addr
upvar $NEW_MOD_LIST new_mod_list
global mom_cycle_spindle_axis traverse_axis1 traverse_axis2
set new_mod_list [list]
foreach mod $mod_list {
switch $mod {
"rapid1" {
set elem $addr($traverse_axis1)
if { [lsearch $blk_list $elem] >= 0 } {
lappend new_mod_list $elem
}
}
"rapid2" {
set elem $addr($traverse_axis2)
if { [lsearch $blk_list $elem] >= 0 } {
lappend new_mod_list $elem
}
}
"rapid3" {
set elem $addr($mom_cycle_spindle_axis)
if { [lsearch $blk_list $elem] >= 0 } {
lappend new_mod_list $elem
}
}
default {
set elem $mod
if { [lsearch $blk_list $elem] >= 0 } {
lappend new_mod_list $elem
}
}
}
}
}
########################
# Redefine FEEDRATE_SET
########################
if [llength [info commands ugpost_FEEDRATE_SET] ] {
rename ugpost_FEEDRATE_SET ""
}
if [llength [info commands FEEDRATE_SET] ] {
rename FEEDRATE_SET ugpost_FEEDRATE_SET
} else {
proc ugpost_FEEDRATE_SET {} {}
}
#=============================================================
proc FEEDRATE_SET { } {
#=============================================================
if [llength [info commands PB_CMD_kin_feedrate_set] ] {
PB_CMD_kin_feedrate_set
} else {
ugpost_FEEDRATE_SET
}
}
#=============================================================
proc MOM_head { } {
#=============================================================
global mom_warning_info
global mom_sys_in_operation
if { [info exists mom_sys_in_operation] && $mom_sys_in_operation == 1 } {
global mom_operation_name
set mom_warning_info "HEAD event should not be assigned to an operatrion ($mom_operation_name)."
MOM_catch_warning
return
}
global mom_head_name mom_sys_postname
global mom_load_event_handler
global CURRENT_HEAD NEXT_HEAD
global mom_sys_prev_mach_head mom_sys_curr_mach_head
global mom_sys_head_change_init_program
if { ![info exists CURRENT_HEAD] } {
set CURRENT_HEAD ""
}
if { [info exists mom_head_name] } {
set NEXT_HEAD $mom_head_name
} else {
set mom_warning_info "No HEAD event has been assigned."
MOM_catch_warning
return
}
set head_list [array names mom_sys_postname]
foreach h $head_list {
if { [regexp -nocase ^$mom_head_name$ $h] == 1 } {
set NEXT_HEAD $h
break
}
}
set tcl_file ""
if { ![info exists mom_sys_postname($NEXT_HEAD)] } {
set mom_warning_info "Post is not specified with Head ($NEXT_HEAD)."
MOM_catch_warning
} elseif { ![string match "$NEXT_HEAD" $CURRENT_HEAD] } {
if { [llength [info commands PB_end_of_HEAD__$CURRENT_HEAD]] } {
PB_end_of_HEAD__$CURRENT_HEAD
}
set mom_sys_prev_mach_head $CURRENT_HEAD
set mom_sys_curr_mach_head $NEXT_HEAD
set CURRENT_HEAD $NEXT_HEAD
global mom_sys_master_head mom_sys_master_post cam_post_dir
if [string match "$CURRENT_HEAD" $mom_sys_master_head] {
set mom_load_event_handler "\"$mom_sys_master_post.tcl\""
MOM_load_definition_file "$mom_sys_master_post.def"
set tcl_file "$mom_sys_master_post.tcl"
} else {
set tcl_file "[file dirname $mom_sys_master_post]/$mom_sys_postname($CURRENT_HEAD).tcl"
set def_file "[file dirname $mom_sys_master_post]/$mom_sys_postname($CURRENT_HEAD).def"
if [file exists "$tcl_file"] {
global tcl_platform
if [string match "*windows*" $tcl_platform(platform)] {
regsub -all {/} $tcl_file {\\} tcl_file
regsub -all {/} $def_file {\\} def_file
}
set mom_load_event_handler "\"$tcl_file\""
MOM_load_definition_file "$def_file"
} else {
set tcl_file "${cam_post_dir}$mom_sys_postname($CURRENT_HEAD).tcl"
set def_file "${cam_post_dir}$mom_sys_postname($CURRENT_HEAD).def"
if [file exists "$tcl_file"] {
set mom_load_event_handler "\"$tcl_file\""
MOM_load_definition_file "$def_file"
} else {
set mom_warning_info "Post ($mom_sys_postname($CURRENT_HEAD)) for HEAD ($CURRENT_HEAD) not found."
MOM_catch_warning
}
}
}
set mom_sys_head_change_init_program 1
if [llength [info commands MOM_start_of_program_save]] {
rename MOM_start_of_program_save ""
}
rename MOM_start_of_program MOM_start_of_program_save
if [llength [info commands MOM_end_of_program]] {
if [llength [info commands MOM_end_of_program_save]] {
rename MOM_end_of_program_save ""
}
rename MOM_end_of_program MOM_end_of_program_save
}
if [llength [info commands MOM_head_save]] {
rename MOM_head_save ""
}
rename MOM_head MOM_head_save
}
}
#=============================================================
proc MOM_Head { } {
#=============================================================
MOM_head
}
#=============================================================
proc MOM_HEAD { } {
#=============================================================
MOM_head
}
############## EVENT HANDLING SECTION ################
#=============================================================
proc MOM_auxfun { } {
#=============================================================
MOM_do_template auxfun
}
#=============================================================
proc MOM_bore { } {
#=============================================================
global cycle_name
global cycle_init_flag
set cycle_init_flag TRUE
set cycle_name BORE
CYCLE_SET
}
#=============================================================
proc MOM_bore_move { } {
#=============================================================
global cycle_init_flag
global mom_sys_abort_next_event
if { [info exists mom_sys_abort_next_event] } {
if { [llength [info commands PB_CMD_kin_abort_event]] } {
PB_CMD_kin_abort_event
}
}