-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMenu_prikazy.html
More file actions
1393 lines (1326 loc) · 56.1 KB
/
Copy pathMenu_prikazy.html
File metadata and controls
1393 lines (1326 loc) · 56.1 KB
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
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<title>Příkazy a Syntax</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 20px;
padding: 20px;
}
.command-list {
width: 300px;
background: white;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
max-height: 500px;
overflow-y: auto;
}
.command-item {
padding: 15px;
border-bottom: 1px solid #eee;
cursor: pointer;
transition: background-color 0.2s;
}
.command-item:hover {
background-color: #f0f0f0;
}
.command-name {
font-weight: bold;
color: #2c3e50;
margin-bottom: 5px;
}
.command-brief {
font-size: 0.9em;
color: #666;
font-family: monospace;
}
.modal {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
z-index: 1000;
width: 80%;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
}
.modal-content {
margin: 20px 0;
}
.close-button {
position: absolute;
right: 10px;
top: 10px;
border: none;
background: none;
font-size: 24px;
cursor: pointer;
color: #666;
}
.example-code {
background: #f8f8f8;
padding: 15px;
border-left: 4px solid #4CAF50;
margin: 5px 0 10px 0;
font-family: monospace;
white-space: pre-wrap;
}
.syntax-section {
background: #fff8dc;
padding: 15px;
border-radius: 5px;
margin: 10px 0;
}
.example-section {
margin: 20px 0;
padding-bottom: 20px;
}
.example-title {
color: #2c3e50;
font-weight: bold;
margin: 10px 0 5px 0;
padding: 5px 0;
border-bottom: 1px solid #eee;
}
.example-description {
margin: 5px 0 15px 0;
color: #666;
font-size: 0.95em;
}
.search-box {
width: calc(100% - 40px);
max-width: 600px;
margin: 20px auto;
display: block;
padding: 10px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
}
.search-box:focus {
outline: none;
border-color: #4CAF50;
}
.commands-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 15px;
padding: 20px;
margin: 0 auto;
max-width: 1200px;
}
.command-button {
background: white;
border: 1px solid #ccc;
border-radius: 8px;
padding: 15px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.command-button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
background: #f8f8f8;
}
.command-name {
font-weight: bold;
color: #2c3e50;
font-size: 1.2em;
margin-bottom: 8px;
}
.command-brief {
font-size: 0.9em;
color: #666;
font-family: monospace;
}
.command-group {
margin: 30px 0;
}
.group-title {
font-size: 1.5em;
color: #2c3e50;
margin: 20px 0;
padding-bottom: 10px;
border-bottom: 2px solid #4CAF50;
grid-column: 1 / -1;
}
.commands-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 15px;
padding: 20px;
margin: 0 auto;
max-width: 1200px;
}
h1 {
text-align: center;
margin: 20px auto;
width: 100%;
color: #2c3e50;
font-size: 2em;
padding: 10px 0;
}
/* Responsive styly */
@media (max-width: 768px) {
.commands-grid {
grid-template-columns: 1fr;
padding: 10px;
}
.command-button {
font-size: 14px;
}
.search-box {
width: 90%;
font-size: 16px;
padding: 10px;
}
.modal {
width: 95%;
max-width: none;
}
.example-code {
font-size: 14px;
}
h1 {
font-size: 1.5em;
}
.group-title {
font-size: 1.2em;
}
}
/* Upravený styl pro modální okno */
.modal-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
.modal {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
z-index: 1000;
width: 80%;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
}
</style>
</head>
<body>
<h1>Sinumerik 840D Příkazy</h1>
<div class="search-container">
<button class="menu-toggle">
<i class="fas fa-bars"></i> Kategorie
</button>
<input type="text"
class="search-box"
id="searchBox"
placeholder="Hledat příkaz...">
<button class="quick-codes-toggle">
<i class="fas fa-list"></i> Příkazy
</button>
</div>
<div class="side-menu categories-menu" id="categoriesMenu">
<button class="menu-close">×</button>
<div id="categoriesList">
<!-- Kategorie se vygenerují dynamicky -->
</div>
</div>
<div class="side-menu quick-codes-menu" id="quickCodesMenu">
<button class="menu-close">×</button>
<div id="quickCodesList">
<!-- Příkazy se vygenerují dynamicky -->
</div>
</div>
<!-- Přidat CSS styly pro nové prvky -->
<style>
.search-container {
display: flex;
justify-content: center;
align-items: center;
padding: 10px;
gap: 10px;
max-width: 800px;
margin: 0 auto;
}
.menu-toggle, .quick-codes-toggle {
background: #4CAF50;
color: white;
border: none;
padding: 8px 15px;
border-radius: 5px;
cursor: pointer;
font-size: 14px;
white-space: nowrap;
transition: background-color 0.3s;
}
.menu-toggle:hover, .quick-codes-toggle:hover {
background-color: #45a049;
}
.side-menu {
position: fixed;
top: 0;
height: 100%;
background: white;
box-shadow: 0 0 10px rgba(0,0,0,0.2);
z-index: 99;
overflow-y: auto;
transition: transform 0.3s ease;
}
.categories-menu {
left: 0;
width: 250px;
transform: translateX(-100%);
}
.quick-codes-menu {
right: 0;
width: 200px;
transform: translateX(100%);
}
.categories-menu.active,
.quick-codes-menu.active {
transform: translateX(0);
}
.menu-item {
padding: 15px;
border-bottom: 1px solid #eee;
cursor: pointer;
}
.menu-item:hover {
background: #f0f0f0;
}
.menu-close {
position: absolute;
right: 10px;
top: 10px;
background: none;
border: none;
font-size: 20px;
cursor: pointer;
}
.reset-view {
background: #ff6b6b;
color: white;
border: none;
padding: 8px 15px;
border-radius: 5px;
cursor: pointer;
margin: 10px;
display: none;
position: fixed;
bottom: 20px;
right: 20px;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.reset-view:hover {
background: #ff5252;
}
.reset-view.active {
display: block;
}
</style>
<div class="commands-grid" id="commandList">
<!-- Skupiny příkazů se vytvoří dynamicky -->
</div>
<button id="resetView" class="reset-view">
Zobrazit vše
</button>
<!-- Přidejte overlay pro modál -->
<div id="modalOverlay" class="modal-overlay"></div>
<div id="commandModal" class="modal">
<button class="close-button">×</button>
<div class="modal-content" id="modalContent"></div>
</div>
<script type="text/javascript">
'use strict';
console.log('Script initialization started');
// Deklarace proměnných
var commandGroups = {
'Základní pohybové příkazy': [
'AC', 'ACN', 'ACP', 'IC', 'DC'
],
'Polární souřadnice': [
'AP', 'RP', 'AR'
],
'Kruhová interpolace': [
'CIP', 'CR', 'I1', 'J1', 'K1'
],
'Transformace souřadnic': [
'TRANS', 'ATRANS', 'ROT', 'AROT',
'MIRROR', 'AMIRROR', 'SCALE', 'ASCALE'
],
'Tvarové prvky': [
'CHF', 'CHR', 'RND', 'RNDM',
'CONTPRON', 'KONT', 'OFFN', 'NORM'
],
'Programové řízení': [
'IF', 'ELSE', 'ENDIF',
'FOR', 'ENDFOR',
'WHILE', 'ENDWHILE',
'LOOP', 'ENDLOOP',
'CASE', 'DEFAULT',
'GOTOB', 'GOTOF', 'GOTO' // Přidáno GOTO do seznamu
],
'Logické operátory': [
'AND', 'OR', 'NOT',
'B_AND', 'B_NOT', 'B_OR', 'B_XOR'
],
'Nastavení obrábění': [
'CFC', 'CFIN', 'CFTCP',
'DIAMOF', 'DIAMON',
'F', 'FAD', 'S', 'LIMS',
'D', 'DISC', 'DISCL', 'DISR'
],
'Podprogramy a makra': [
'PROC', 'RET', 'MCALL',
'P', 'SAVE', 'DEFINE AS'
],
'Datové typy a proměnné': [
'DEF', 'AXIS', 'AX', 'AXNAME',
'BOOL', 'CHAR', 'FRAME',
'INT', 'REAL', 'STRING'
],
'Vřeteno a polohování': [
'SPCON', 'SPCOF',
'SPOS', 'SPOSA',
'SETMS', 'SF'
],
'Systémové příkazy': [
'MSG', 'SETAL', 'SET',
'SBLOF', 'DISPLOF',
'SUPA', 'N'
]
};
var commandsList = [
{
name: 'AC',
syntax: 'osa=AC(hodnota)',
description: 'Absolutní programování polohy. Hodnota je vztažena k nulovému bodu stroje nebo obrobku. Funguje i v přírůstkovém programování G91.',
examples: [
{
title: 'Základní použití:',
code: 'G0 X=AC(100) Z=AC(50) ; Najetí na absolutní pozici\nG1 X=AC(80) F0.2 ; Soustružení na průměr 80mm',
description: 'Absolutní polohování v osách X a Z'
},
{
title: 'Použití v G91:',
code: 'G91 ; Přírůstkové programování\nG1 X=IC(10) ; Přírůstkový pohyb\nX=AC(50) ; Absolutní pozice i v G91',
description: 'AC funguje nezávisle na G90/G91'
}
]
},
{
name: 'ACN',
syntax: 'osa=ACN(hodnota)',
description: 'Absolutní programování s najetím v negativním směru.',
examples: [
{
title: 'Vnitřní soustružení:',
code: 'G0 X=AC(50) Z=AC(2)\nG1 X=ACN(80)',
description: 'Nástroj najede na pozici vždy z menšího rozměru'
}
]
},
{
name: 'ACP',
syntax: 'osa=ACP(hodnota)',
description: 'Absolutní programování s najetím v pozitivním směru.',
examples: [
{
title: 'Vnější soustružení:',
code: 'G0 X=AC(100) Z=AC(2)\nG1 X=ACP(80)',
description: 'Nástroj najede na pozici vždy z většího rozměru'
}
]
},
{
name: 'AND',
syntax: 'IF (podmínka1 AND podmínka2)',
description: 'Logická spojka AND pro kombinaci podmínek.',
examples: [
{
title: 'Použití v podmínce:',
code: 'R1=5 R2=10\nIF (R1>0 AND R2<20) GOTOF N100',
description: 'Skok na N100 pokud jsou splněny obě podmínky'
}
]
},
{
name: 'AP',
syntax: 'AP=hodnota',
description: 'Polární úhel při programování v polárních souřadnicích.',
examples: [
{
title: 'Polární programování:',
code: 'G111 ; Aktivace polárních souřadnic\nRP=50 AP=45 ; Bod 50mm pod úhlem 45°',
description: 'Definice bodu pomocí vzdálenosti a úhlu'
}
]
},
{
name: 'AR',
syntax: 'AR=hodnota',
description: 'Úhel rozevření u kruhové interpolace.',
examples: [
{
title: 'Kruhový oblouk:',
code: 'G2 X100 Z0 AR=90 ; Kruhový oblouk s úhlem 90°',
description: 'Vytvoření čtvrtkruhu pomocí úhlu rozevření'
}
]
},
{
name: 'AXIS',
syntax: 'DEF AXIS název',
description: 'Definice proměnné typu osa.',
examples: [
{
title: 'Definice osy:',
code: 'DEF AXIS OSA_X ; Definice proměnné pro osu X\nOSA_X=100 ; Přiřazení hodnoty',
description: 'Použití proměnné typu AXIS pro práci s osami'
}
]
},
{
name: 'AMIRROR',
syntax: 'AMIRROR X0 Y0',
description: 'Přídavné zrcadlení ke stávajícímu zrcadlení.',
examples: [
{
title: 'Přídavné zrcadlení:',
code: 'MIRROR X0 ; Základní zrcadlení\nAMIRROR Y0 ; Přidání zrcadlení v Y',
description: 'Kombinace více zrcadlení'
}
]
},
{
name: 'AROT',
syntax: 'AROT X=úhel',
description: 'Přídavná rotace souřadného systému.',
examples: [
{
title: 'Přídavná rotace:',
code: 'ROT X45 ; Základní rotace 45°\nAROT X30 ; Přídavná rotace o 30°',
description: 'Celková rotace bude 75°'
}
]
},
{
name: 'B_AND',
syntax: 'IF (B_AND(var1,var2))',
description: 'Bitový operátor AND pro porovnání jednotlivých bitů dvou hodnot.',
examples: [
{
title: 'Porovnání bitů:',
code: 'R1=5 R2=3\nIF B_AND(R1,R2) GOTOF N100 ; Skok když je výsledek nenulový',
description: 'Porovnání bitů: 5(101) AND 3(011) = 1(001)'
}
]
},
{
name: 'CIP',
syntax: 'CIP X.. Z.. I1=.. K1=..',
description: 'Kruhová interpolace přes zadaný mezibod. Umožňuje programování oblouku zadáním průchozího bodu.',
examples: [
{
title: 'Kruhový oblouk:',
code: 'G0 X0 Z0\nCIP X50 Z-20 I1=25 K1=-5 ; Oblouk přes bod I1,K1\nG1 X100 Z-50 ; Pokračování lineárním pohybem',
description: 'Vytvoření plynulého přechodu obloukem'
}
]
},
{
name: 'CHF',
syntax: 'CHF=hodnota',
description: 'Vloží sražení hrany mezi dva pohyby. Hodnota určuje velikost sražení.',
examples: [
{
title: 'Sražení hrany:',
code: 'G1 X100 Z0\nCHF=2 ; Sražení 2mm\nZ-30 ; Druhý pohyb se sražením',
description: 'Automatické sražení hrany mezi pohyby'
}
]
},
{
name: 'DIAMOF',
syntax: 'DIAMOF',
description: 'Přepne programování na zadávání v poloměrech (radius). Hodnoty X jsou interpretovány jako poloměr.',
examples: [
{
title: 'Programování v poloměrech:',
code: 'DIAMOF\nG1 X25 F0.2 ; X=25 znamená průměr 50mm\nG1 Z-30 ; Podélný pohyb\nDIAMON ; Přepnutí zpět na průměry',
description: 'Ukázka přepínání mezi průměry a poloměry'
}
]
},
{
name: 'DIAMON',
syntax: 'DIAMON',
description: 'Přepne programování na zadávání v průměrech. Hodnoty X jsou interpretovány jako průměr.',
examples: [
{
title: 'Programování v průměrech:',
code: 'DIAMON\nG1 X50 F0.2 ; X=50 znamená průměr 50mm\nG1 Z-30 ; Podélný pohyb',
description: 'Standardní programování pro soustružení'
}
]
},
{
name: 'GOTOF',
syntax: 'IF (podmínka) GOTOF číslo_řádku/návěští',
description: 'Podmíněný skok vpřed v programu. Hledá cílový řádek pouze směrem ke konci programu.',
examples: [
{
title: 'Podmíněný skok:',
code: 'N100 R1=R1+1\nIF R1<5 GOTOF N200 ; Skok na N200 pokud R1<5\nN150 G1 X50 F0.2\nN200 G1 Z-30',
description: 'Řízení průběhu programu pomocí skoku vpřed'
}
]
},
{
name: 'GOTOB',
syntax: 'IF (podmínka) GOTOB číslo_řádku/návěští',
description: 'Podmíněný skok vzad v programu. Hledá cílový řádek pouze směrem k začátku programu.',
examples: [
{
title: 'Smyčka s počítadlem:',
code: 'N100 R1=5\nN110 G1 X50 F0.2\nN120 R1=R1-1\nN130 IF R1>0 GOTOB N110 ; Opakuj dokud R1>0',
description: 'Vytvoření programové smyčky pomocí skoku vzad'
}
]
},
{
name: 'MSG',
syntax: 'MSG("text zprávy")',
description: 'Zobrazí text zprávy na obrazovce řídicího systému. Používá se pro komunikaci s obsluhou.',
examples: [
{
title: 'Základní použití:',
code: 'MSG("Vyměňte nástroj") ; Zobrazí zprávu\nM0 ; Zastaví program\nMSG("") ; Vymaže zprávu',
description: 'Informování operátora během programu'
}
]
},
{
name: 'FOR',
syntax: 'FOR proměnná=start TO konec\n...\nENDFOR',
description: 'Vytvoření programové smyčky s počítadlem. Provádí blok příkazů mezi FOR a ENDFOR.',
examples: [
{
title: 'Základní smyčka:',
code: 'N100 FOR R1=1 TO 5 ; Opakuj 5x\nN110 G1 X=R1 F0.2 ; Pohyb v X\nN120 G1 Z-10 ; Pohyb v Z\nN130 ENDFOR',
description: 'Opakování bloku 5krát'
},
{
title: 'Smyčka s krokem:',
code: 'FOR R2=0 TO 100 STEP 20 ; Krok po 20\n G1 X=R2 F0.2 ; Postupné pohyby\n G4 F1 ; Prodleva 1s\nENDFOR',
description: 'Použití STEP pro určení velikosti kroku'
}
]
},
{
name: 'WHILE',
syntax: 'WHILE podmínka\n...\nENDWHILE',
description: 'Smyčka s podmínkou na začátku. Provádí blok příkazů, dokud je podmínka splněna.',
examples: [
{
title: 'Podmíněné opakování:',
code: 'R1=0\nWHILE R1<5 ; Dokud R1 menší než 5\n G1 X=R1*10 F0.2 ; Násobky 10\n R1=R1+1 ; Zvýšení počítadla\nENDWHILE',
description: 'Opakování dokud není splněna podmínka'
}
]
},
{
name: 'CASE',
syntax: 'CASE proměnná OF konstanty ... DEFAULT ...',
description: 'Větvení programu podle hodnoty proměnné. Umožňuje provést různé akce pro různé hodnoty.',
examples: [
{
title: 'Výběr podle hodnoty:',
code: 'CASE R1 OF 1 GOTOF _m1 2 GOTOF _m2 DEFAULT GOTOF _def\n_m1: G1 X100 ; Pro R1=1\n GOTOF _end\n_m2: G1 X200 ; Pro R1=2\n GOTOF _end\n_def: MSG("Neplatná hodnota")\n_end: M30',
description: 'Různé akce pro různé hodnoty R1'
}
]
},
{
name: 'PROC',
syntax: 'PROC název(parametry)',
description: 'Definice podprogramu s parametry. Umožňuje vytvořit znovupoužitelný blok kódu.',
examples: [
{
title: 'Definice podprogramu:',
code: 'PROC drilling(REAL _depth, INT _count)\n R1=0\n WHILE R1<_count\n G1 Z=_depth F0.1\n G0 Z2\n R1=R1+1\n ENDWHILE\n RET\n\n; Volání\ndrilling(-30.5, 3)',
description: 'Podprogram pro vrtání s parametry'
}
]
},
{
name: 'SPCON',
syntax: 'SPCON',
description: 'Zapnutí polohování vřetena. Umožňuje přesné polohování vřetena při zastavení.',
examples: [
{
title: 'Polohování vřetena:',
code: 'SPCON ; Aktivace polohování\nSPOS=45 ; Natočení na 45°\nG0 X100 ; Pohyb v X\nSPCOF ; Vypnutí polohování',
description: 'Přesné polohování vřetena'
}
]
},
{
name: 'SPOS',
syntax: 'SPOS=úhel',
description: 'Natočení vřetena na zadaný úhel. Vyžaduje aktivní SPCON.',
examples: [
{
title: 'Natočení vřetena:',
code: 'SPCON ; Aktivace polohování\nSPOS=180 ; Otočení o 180°\nG4 F1 ; Prodleva pro stabilizaci\nG0 X50 ; Pohyb v X',
description: 'Přesné natočení vřetena na pozici'
}
]
},
{
name: 'SCALE',
syntax: 'SCALE X.. Y.. Z..',
description: 'Změna měřítka pro programované rozměry. Umožňuje zvětšení nebo zmenšení programovaných hodnot.',
examples: [
{
title: 'Základní použití:',
code: 'SCALE X2 Z2 ; Dvojnásobné zvětšení v X a Z\nG1 X50 Z-30 ; Skutečný pohyb bude X100 Z-60\nSCALE ; Vypnutí změny měřítka',
description: 'Zvětšení všech následujících pohybů'
}
]
},
{
name: 'RND',
syntax: 'RND=hodnota',
description: 'Vložení zaoblení mezi dva lineární pohyby nebo mezi lineární a kruhový pohyb.',
examples: [
{
title: 'Zaoblení rohu:',
code: 'G1 X100 F0.2 ; První pohyb\nRND=5 ; Zaoblení R5\nZ-30 ; Druhý pohyb',
description: 'Automatické vložení zaoblení'
},
{
title: 'Komplexní obrábění:',
code: 'G1 X50\nRND=3 ; První zaoblení\nZ-20\nRND=5 ; Druhé zaoblení\nX70 ; Vytvoří plynulý profil',
description: 'Více zaoblení v jednom programu'
}
]
},
{
name: 'RNDM',
syntax: 'RNDM=hodnota\nRNDM=0 (vypnutí)',
description: 'Modální zaoblení - automaticky vkládá zaoblení mezi všechny následující pohyby až do vypnutí.',
examples: [
{
title: 'Modální zaoblení:',
code: 'RNDM=3 ; Zapnutí modálního zaoblení R3\nG1 X100\nZ-20 ; Automatické zaoblení R3\nX70 ; Další automatické zaoblení\nRNDM=0 ; Vypnutí modálního zaoblení',
description: 'Série zaoblení bez opakovaného zadávání'
}
]
},
{
name: 'S',
syntax: 'S hodnota',
description: 'Nastavení otáček vřetena nebo řezné rychlosti (v závislosti na G96/G97).',
examples: [
{
title: 'Konstantní otáčky:',
code: 'G97 S1000 M3 ; 1000 ot/min pravotočivě\nG1 X50 F0.2\nS1500 ; Zvýšení na 1500 ot/min',
description: 'Přímé zadání otáček'
},
{
title: 'Konstantní řezná rychlost:',
code: 'G96 S200 M3 ; 200m/min konstantní řezná rychlost\nLIMS=2000 ; Limit otáček 2000/min\nG1 X20 F0.2 ; Automatická regulace otáček',
description: 'Řízení konstantní řezné rychlosti'
}
]
},
{
name: 'SETMS',
syntax: 'SETMS(číslo)',
description: 'Nastavení hlavního vřetena pro více-vřetenové stroje.',
examples: [
{
title: 'Přepínání vřeten:',
code: 'SETMS(1) ; Aktivace vřetena 1\nS1000 M3\nSETMS(2) ; Přepnutí na vřeteno 2\nS500 M3',
description: 'Ovládání více vřeten'
}
]
},
{
name: 'SETAL',
syntax: 'SETAL(číslo_alarmu)',
description: 'Vyvolání programovatelného alarmu. Slouží k upozornění na specifické situace v programu.',
examples: [
{
title: 'Kontrola podmínky:',
code: 'IF R1>100\n SETAL(61000) ; Vyvolání alarmu 61000\nENDIF',
description: 'Alarm při překročení hodnoty'
}
]
},
{
name: 'BOOL',
syntax: 'DEF BOOL proměnná=hodnota',
description: 'Definice logické proměnné typu BOOL. Může nabývat hodnot TRUE nebo FALSE.',
examples: [
{
title: 'Definice proměnné:',
code: 'DEF BOOL _kontrola=TRUE ; Definice boolean\nIF _kontrola == TRUE ; Podmínka\n MSG("Test OK")\nENDIF',
description: 'Použití boolean proměnné v podmínce'
}
]
},
{
name: 'CONTPRON',
syntax: 'CONTPRON',
description: 'Příprava kontury pro následné zpracování. Aktivuje režim přípravy kontury.',
examples: [
{
title: 'Definice kontury:',
code: 'CONTPRON ; Start definice kontury\nG1 X100 Z0\nX80\nZ-50 ; Body kontury\nCONTPROF ; Konec definice kontury',
description: 'Příprava kontury pro další zpracování'
}
]
},
{
name: 'DISC',
syntax: 'DISC=hodnota',
description: 'Korekce vnějšího rohu při nájezdu nebo odjezdu. Určuje vzdálenost dráhy nástroje od kontury.',
examples: [
{
title: 'Nájezd na konturu:',
code: 'DISC=3 ; Nastavení odstupu 3mm\nG1 X100 Z0 F0.2 ; Nájezd s korekcí\nG1 X80 ; Obrábění kontury',
description: 'Bezpečný nájezd na konturu s odstupem'
}
]
},
{
name: 'INT',
syntax: 'DEF INT proměnná=hodnota',
description: 'Definice celočíselné proměnné. Používá se pro počítadla a indexy.',
examples: [
{
title: 'Použití počítadla:',
code: 'DEF INT _pocet=5 ; Definice počítadla\nN10 G1 X=_pocet*10 ; X = 50mm\n_pocet=_pocet-1 ; Snížení počítadla\nIF _pocet>0 GOTOB N10',
description: 'Smyčka s celočíselným počítadlem'
}
]
},
{
name: 'REAL',
syntax: 'DEF REAL proměnná=hodnota',
description: 'Definice proměnné s desetinnou čárkou. Pro přesné výpočty a rozměry.',
examples: [
{
title: 'Výpočet rozměru:',
code: 'DEF REAL _prumer=50.5 ; Průměr součásti\nDEF REAL _radius=_prumer/2 ; Výpočet poloměru\nG1 X=_radius F0.2 ; Použití vypočtené hodnoty',
description: 'Práce s desetinnými čísly'
}
]
},
{
name: 'STRING',
syntax: 'DEF STRING[délka] proměnná=hodnota',
description: 'Definice textového řetězce. Pro ukládání textu a zpráv.',
examples: [
{
title: 'Práce s textem:',
code: 'DEF STRING[20] _text="Vyměňte nástroj"\nMSG(_text) ; Zobrazení zprávy\n_text="Hotovo"\nMSG(_text)',
description: 'Ukládání a zobrazování textových zpráv'
}
]
},
{
name: 'MCALL',
syntax: 'MCALL název_podprogramu',
description: 'Modální volání podprogramu. Podprogram se automaticky volá v každém následujícím bloku.',
examples: [
{
title: 'Opakované vrtání:',
code: 'MCALL L10 ; Aktivace modálního volání L10\nX10 Y20 ; První pozice - volá L10\nX30 Y20 ; Druhá pozice - volá L10\nMCALL ; Vypnutí modálního volání',
description: 'Automatické volání podprogramu na více pozicích'
}
]
},
{
name: 'SAVE',
syntax: 'PROC název SAVE',
description: 'Ukládá aktuální nastavení při volání podprogramu. Zajišťuje návrat do původního stavu.',
examples: [
{
title: 'Bezpečné volání podprogramu:',
code: 'PROC vrtani SAVE ; Definice s uložením stavu\nG17 G90 G54 ; Lokální nastavení\nG0 Z-10\nRET ; Návrat do původního stavu',
description: 'Zachování nastavení hlavního programu'
}
]
},
{
name: 'CFC',
syntax: 'CFC',
description: 'Konstantní posuv po kontuře. Zajišťuje konstantní posuv nástroje po naprogramované dráze.',
examples: [
{
title: 'Obrábění kontury:',
code: 'CFC ; Aktivace konstantního posuvu\nG1 X100 Z0 F0.2 ; První pohyb\nX80 Z-20 ; Šikmý pohyb - posuv se upraví\nCFIN ; Přepnutí na konstantní posuv ostří',
description: 'Zachování stejné rychlosti po kontuře'
}
]
},
{
name: 'CFIN',
syntax: 'CFIN',
description: 'Konstantní posuv ostří nástroje. Udržuje konstantní posuv břitu nástroje.',
examples: [
{
title: 'Soustružení šikmých ploch:',
code: 'CFIN ; Aktivace konstantního posuvu ostří\nG1 X100 Z0 F0.15 ; Počáteční bod\nX50 Z-25 ; Šikmá plocha - posuv se přizpůsobí\nCFC ; Přepnutí zpět na konstantní posuv',
description: 'Rovnoměrné zatížení břitu nástroje'
}
]
},
{
name: 'DISPLOF',
syntax: 'DISPLOF',
description: 'Vypnutí zobrazování bloků programu během zpracování. Používá se pro optimalizaci výkonu.',
examples: [
{
title: 'Rychlé zpracování:',
code: 'DISPLOF ; Vypnutí zobrazování\nFOR R1=1 TO 1000 ; Smyčka s mnoha průchody\n G1 X=R1 F0.2\nENDFOR\nDISPLON ; Zapnutí zobrazování',
description: 'Zrychlení zpracování programu'
}
]
},
{
name: 'SBLOF',
syntax: 'SBLOF',
description: 'Vypnutí režimu jednotlivých bloků. Program běží plynule bez zastavování po blocích.',
examples: [
{
title: 'Plynulé obrábění:',
code: 'SBLOF ; Vypnutí režimu po blocích\nG1 X100 F0.2 ; První pohyb\nX80 Z-20 ; Další pohyby bez přerušení\nSBLON ; Zapnutí režimu po blocích',
description: 'Nepřerušovaný běh programu'
}
]
},
{
name: 'DEFINE AS',
syntax: 'DEFINE název AS text_makra',
description: 'Definice makra pro opakovaně používané sekvence příkazů.',
examples: [
{
title: 'Vytvoření makra:',
code: 'DEFINE BEZPECNA_VZDALENOST AS G0 G90 Z100\nDEFINE CHLAZENI_ZAP AS M8 G4 F2\n\n; Použití maker\nBEZPECNA_VZDALENOST ; Odjezd do bezpečné výšky\nCHLAZENI_ZAP ; Zapnutí chlazení s prodlevou',
description: 'Zjednodušení často používaných sekvencí'
}
]
},
{
name: 'LIMS',
syntax: 'LIMS=hodnota',
description: 'Omezení maximálních otáček vřetena při G96 (konstantní řezná rychlost).',
examples: [
{
title: 'Omezení otáček:',
code: 'G96 S200 M3 ; Konstantní řezná rychlost 200m/min\nLIMS=2000 ; Max. otáčky 2000/min\nG1 X10 F0.2 ; Při malém průměru se otáčky omezí na 2000',
description: 'Bezpečné omezení maximálních otáček'
}
]
},
{
name: 'AX',
syntax: 'AX(název_osy)',
description: 'Převod názvu osy na její proměnnou. Používá se pro dynamické adresování os.',
examples: [
{
title: 'Dynamické adresování:',
code: 'DEF AXIS osa=AX("X") ; Definice osy X\nG1 osa=100 F0.2 ; Pohyb v ose X',
description: 'Použití proměnné pro adresování osy'
}
]