SHOW:
|
|
- or go back to the newest paste.
| 1 | - | 'Prd Interna |
| 1 | + | 'Tooling |
| 2 | ||
| 3 | - | Sub PROG_MAC_S4() |
| 3 | + | Function T_RECT1(ByVal XS As Double, ByVal XD As Double, ByVal YI As Double, ByVal YS As Double) As String |
| 4 | ||
| 5 | - | VPRSS = 0 |
| 5 | + | |
| 6 | - | str_no_repet = "" |
| 6 | + | N1 = Round(XS, 2) |
| 7 | N2 = Round(XD, 2) | |
| 8 | - | For CFL = 1 To NM_DT |
| 8 | + | N3 = Round(YI, 2) |
| 9 | N4 = Round(YS, 2) | |
| 10 | - | ACT_MOD = "" |
| 10 | + | |
| 11 | - | 'PROGRAMMI EMZ |
| 11 | + | If XS > XD Then |
| 12 | - | If INFO_DAT(CFL, 0, 6) = "9999999" Then Call S_9999999(CFL) |
| 12 | + | XS = N2 |
| 13 | XD = N1 | |
| 14 | - | If VAR_ACCORP = True And InStr(1, STR_VR_ACC, INFO_DAT(CFL, 0, 6)) = 0 Then GoTo NO_PROD_INT |
| 14 | + | |
| 15 | - | If VAR_ACCORP = True And InStr(1, STR_VR_FIBRA, INFO_DAT(CFL, 0, 6)) > 0 Then GoTo NO_PROD_INT |
| 15 | + | |
| 16 | If YI > YS Then | |
| 17 | - | '**************************COPRIFESSURA |
| 17 | + | YI = N4 |
| 18 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014688A" Then Call S_1014688A(CFL) |
| 18 | + | YS = N3 |
| 19 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007069A" Then Call S_1007069A(CFL) |
| 19 | + | |
| 20 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10288740" Then Call S_10288740(CFL) |
| 20 | + | |
| 21 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026845A" Then Call S_1026845A(CFL) |
| 21 | + | ''******************** |
| 22 | 'If YI < -4 Then | |
| 23 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10328000" Then Call S_10328000(CFL) |
| 23 | + | 'YI = -4 |
| 24 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10269010" Then Call S_10269010(CFL) |
| 24 | + | 'End If |
| 25 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026901A" Then Call S_1026901A(CFL) |
| 25 | + | ''******************** |
| 26 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10287960" Then Call S_10287960(CFL) |
| 26 | + | |
| 27 | ||
| 28 | - | '************************************** RINFORZI/COMPONENTI |
| 28 | + | XC = (XS + XD) / 2 |
| 29 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10228760" Then Call S_10228760(CFL) |
| 29 | + | YC = (YI + YS) / 2 |
| 30 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006718A" Then Call S_1006718A(CFL) |
| 30 | + | WDTJ = Abs(XS - XD) |
| 31 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006718B" Then Call S_1006718B(CFL) |
| 31 | + | HGTJ = Abs(YI - YS) |
| 32 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10068200" Then Call S_10068200(CFL) |
| 32 | + | |
| 33 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006820A" Then Call S_1006820A(CFL) |
| 33 | + | |
| 34 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026716A" Then Call S_1026716A(CFL) |
| 34 | + | T_RECT1 = T_RECT2(XC, YC, WDTJ, HGTJ) |
| 35 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026716B" Then Call S_1026716A(CFL) |
| 35 | + | |
| 36 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1027588A" Then Call S_1027588A(CFL) |
| 36 | + | |
| 37 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1027588C" Then Call S_1027588C(CFL) |
| 37 | + | |
| 38 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026699A" Then Call S_1026699A(CFL) |
| 38 | + | If T_RECT1 = "" Then MsgBox ("ATTENZIONE ERRORE SPACCO RETTANGOLARE SU") & " " & ACT_MOD
|
| 39 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10280840" Then Call S_10280840(CFL) |
| 39 | + | |
| 40 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10277620" Then Call S_10277620(CFL) |
| 40 | + | End Function |
| 41 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1011069A" Then Call S_1011069A(CFL) |
| 41 | + | |
| 42 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020085B" Then Call S_1020085B(CFL) |
| 42 | + | |
| 43 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020085C" Then Call S_1020085B(CFL) |
| 43 | + | |
| 44 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1019999A" Then Call S_1019999A(CFL) |
| 44 | + | Function T_RECT2(ByVal XC As Double, ByVal YC As Double, ByVal WDT As Double, ByVal HGT As Double) As String |
| 45 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10067200" Then Call S_10067200(CFL) |
| 45 | + | |
| 46 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1013300C" Then Call S_1013300C(CFL) |
| 46 | + | 'ESEGUE UNA LAVORAZIONE RETTANGOLARE |
| 47 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1017690A" Then Call S_1017690A(CFL) |
| 47 | + | 'XC = X CENTRO RETTANGOLO YC= Y CENTRO RETTANGOLO |
| 48 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1017690B" Then Call S_1017690B(CFL) |
| 48 | + | 'WDT = LARGHEZZA RETTANGOLO HGT= ALTEZZA RETTANGOLO |
| 49 | - | If INFO_DAT(CFL, 0, 6) = "3201155358" Then Call S_3201155358(CFL) |
| 49 | + | |
| 50 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10163900" Then Call S_10163900(CFL) |
| 50 | + | WDT = Round(WDT, 2) |
| 51 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016517A" Then Call S_1016517A(CFL) |
| 51 | + | HGT = Round(HGT, 2) |
| 52 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016517B" Then Call S_1016517B(CFL) |
| 52 | + | |
| 53 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016517C" Then Call S_1016517C(CFL) |
| 53 | + | XC = Round(XC, 2) |
| 54 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016517D" Then Call S_1016517C(CFL) |
| 54 | + | YC = Round(YC, 2) |
| 55 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016517E" Then Call S_1016517E(CFL) |
| 55 | + | |
| 56 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10174520" Then Call S_10174520(CFL) |
| 56 | + | XSX = XC - WDT / 2 |
| 57 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10357360" Then Call S_10357360(CFL) |
| 57 | + | YLW = YC - HGT / 2 |
| 58 | - | '************************************** |
| 58 | + | |
| 59 | If XSX <= 0 Then LSX = 1 Else LSX = 0 | |
| 60 | If YLW <= 0 Then LNF = 1 Else LNF = 0 | |
| 61 | - | '**********************ANTE |
| 61 | + | |
| 62 | - | NHD = 17 |
| 62 | + | |
| 63 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006616A" Then Call S_1006616A(CFL) |
| 63 | + | TX = LAB_2(WDT, HGT) |
| 64 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006619A" Then Call S_1006619A(CFL) |
| 64 | + | |
| 65 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006629E" Then Call S_1006629E(CFL) |
| 65 | + | TXQ = LAB_7(WDT, HGT) |
| 66 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006632B" Then Call S_1006632B(CFL) |
| 66 | + | |
| 67 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006702A" Then Call S_1006702A(CFL) |
| 67 | + | ' --------------------------- COMPARIAMO I RISULTATI FRA QUADRI E RETTANGOLI: |
| 68 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006704A" Then Call S_1006704A(CFL) |
| 68 | + | RQ = 0 |
| 69 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006707B" Then Call S_1006707A(CFL) |
| 69 | + | If TX <> "" Then RQ = ((1 * Right(TX, InStr(1, StrReverse(TX), " ", vbTextCompare) - 1)) ^ 2) / (WDT * HGT) ' INDICE DELLA LAVORAZIONE COL QUADRO |
| 70 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006711A" Then Call S_1006711A(CFL) |
| 70 | + | |
| 71 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10128290" Then Call S_10128290(CFL) |
| 71 | + | If TXQ <> "" Then |
| 72 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10130960" Then Call S_10130960(CFL) |
| 72 | + | MLR = Right(TXQ, Len(TXQ) - InStr(1, TXQ, " ", vbBinaryCompare)) |
| 73 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015353A" Then Call S_1015353A(CFL) |
| 73 | + | MDX = NUM(Right(MLR, InStr(1, StrReverse(MLR), " ", vbTextCompare) - 1)) |
| 74 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015390A" Then Call S_1015390A(CFL) |
| 74 | + | MSX = NUM(Left(MLR, InStr(1, MLR, " ", vbTextCompare))) |
| 75 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015448C" Then Call S_1015448C(CFL) |
| 75 | + | |
| 76 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015607C" Then Call S_1015607C(CFL) |
| 76 | + | |
| 77 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015627A" Then Call S_1015627A(CFL) |
| 77 | + | |
| 78 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015591A" Then Call S_1015591A(CFL) |
| 78 | + | |
| 79 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1017011A" Then Call S_1017011A(CFL) |
| 79 | + | RR = 0 |
| 80 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1017132A" Then Call S_1017132A(CFL) |
| 80 | + | RR = (MDX * MSX) / (WDT * HGT) ' INDICE DELLA PRESTAZIONE CON RETTANGOLO |
| 81 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10253920" Then Call S_1025392A(CFL) |
| 81 | + | |
| 82 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1025682A" Then Call S_1025682A(CFL) |
| 82 | + | If ACT_MOD = "1006715" And InStr(1, TXQ, "30 5") > 0 Then 'ELIMINARE |
| 83 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1025392A" Then Call S_1025392A(CFL) |
| 83 | + | RR = 0 |
| 84 | - | '************************** |
| 84 | + | |
| 85 | If ACT_MOD = "1014657" And InStr(1, TXQ, "32,6 22,6") > 0 Then 'ELIMINARE | |
| 86 | - | '**************************PIASTRONI |
| 86 | + | RR = 0 |
| 87 | - | NHD = 15 'CAMBIO TESTA PER PIASTRONI E PARAMENTI |
| 87 | + | |
| 88 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1005784C" Then Call S_1005784C(CFL) |
| 88 | + | |
| 89 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1005784D" Then Call S_1005784C(CFL) |
| 89 | + | If TX & TXQ = "" Then GoTo UUUUUU |
| 90 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1005784E" Then Call S_1005784E(CFL) |
| 90 | + | |
| 91 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1005785A" Then Call S_1005785A(CFL) |
| 91 | + | If RQ > RR Then |
| 92 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1005785B" Then Call S_1005785B(CFL) |
| 92 | + | TLBL = Left(TX, InStr(1, TX, " ", vbBinaryCompare) - 1) 'ETICHETTA DELL'UTENSILE QUADRO SELEZIONATO |
| 93 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615C" Then Call S_1006615C(CFL) |
| 93 | + | SQRV = Right(TX, Len(TX) - InStr(1, TX, " ", vbBinaryCompare)) 'LATO DELL'UTENSILE QUADRO SELEZIONATO |
| 94 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615D" Then Call S_1006615E(CFL) |
| 94 | + | MIN_LAT = -(WDT * (WDT <= HGT) + HGT * (WDT > HGT)) 'LATO MINIMO DEL RETTANGOLO |
| 95 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615E" Then Call S_1006615E(CFL) |
| 95 | + | |
| 96 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615F" Then Call S_1006615F(CFL) |
| 96 | + | DIFF = MIN_LAT - SQRV |
| 97 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615G" Then Call S_1006615G(CFL) |
| 97 | + | |
| 98 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006615H" Then Call S_1006615H(CFL) |
| 98 | + | |
| 99 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006715D" Then Call S_1006715D(CFL) |
| 99 | + | Select Case DIFF |
| 100 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006715E" Then Call S_1006715E(CFL) |
| 100 | + | |
| 101 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006715F" Then Call S_1006715F(CFL) |
| 101 | + | Case Is > 0 'RODITURA X-Y |
| 102 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902895D" Then Call S_0902895D(CFL) |
| 102 | + | NPX = WDT / SQRV |
| 103 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902895E" Then Call S_0902895E(CFL) |
| 103 | + | If NPX > 1 Then |
| 104 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902895F" Then Call S_0902895F(CFL) |
| 104 | + | NPX = Int(NPX) |
| 105 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902895G" Then Call S_0902895G(CFL) |
| 105 | + | PX = Round((WDT - SQRV) / NPX, 2) |
| 106 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902895J" Then Call S_0902895J(CFL) |
| 106 | + | End If |
| 107 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902920C" Then Call S_0902920C(CFL) |
| 107 | + | |
| 108 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902920D" Then Call S_0902920D(CFL) |
| 108 | + | NPY = HGT / SQRV |
| 109 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902920F" Then Call S_0902920F(CFL) |
| 109 | + | If NPY > 1 Then |
| 110 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902935C" Then Call S_0902935C(CFL) |
| 110 | + | NPY = Int(NPY) |
| 111 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "0902935D" Then Call S_0902935D(CFL) |
| 111 | + | PY = Round((HGT - SQRV) / NPY, 2) |
| 112 | - | '*********************************** |
| 112 | + | End If |
| 113 | - | '**************************PARAMENTI |
| 113 | + | |
| 114 | - | If INFO_DAT(CFL, 0, 6) = "1007305" Then Call S_1007305(CFL) |
| 114 | + | |
| 115 | - | If INFO_DAT(CFL, 0, 6) = "1007303" Then Call S_1007303(CFL) |
| 115 | + | Select Case LSX & LNF |
| 116 | - | If INFO_DAT(CFL, 0, 6) = "1007236" Then Call S_1007236(CFL) |
| 116 | + | |
| 117 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023836A" Then Call S_1023836A(CFL) |
| 117 | + | Case "00" ' SCANTONATURA DX ALTA |
| 118 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023836B" Then Call S_1023836B(CFL) |
| 118 | + | XPC = XC + (WDT / 2 - SQRV / 2) |
| 119 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006951B" Then Call S_1006951(CFL) |
| 119 | + | YPC = YC + (HGT / 2 - SQRV / 2) |
| 120 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006951C" Then Call S_1006951C(CFL) |
| 120 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 121 | - | '*********************************** |
| 121 | + | G37 = "G37/I-" & PX & "/P" & NPX & "/J-" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 122 | - | '****************************ENTRANCE -->attesa utensile asola |
| 122 | + | |
| 123 | - | NHD = 16 'CAMBIO TESTA PER ENTRANCE |
| 123 | + | Case "11" ' SCANTONATURA SX BASSA |
| 124 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1012500B" Then Call S_1012500(CFL) |
| 124 | + | XPC = XC - (WDT / 2 - SQRV / 2) |
| 125 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1012499B" Then Call S_1012499(CFL) 'OK GALLONI |
| 125 | + | YPC = YC - (HGT / 2 - SQRV / 2) |
| 126 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1011908B" Then Call S_1011908(CFL) |
| 126 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 127 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1011067E" Then Call S_1011067(CFL) 'OK GALLONI |
| 127 | + | G37 = "G37/I" & PX & "/P" & NPX & "/J" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 128 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1011060C" Then Call S_1011060(CFL) 'OK GALLONI |
| 128 | + | |
| 129 | Case "10" ' SCANTONATURA SX ALTA | |
| 130 | - | 'If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037319B" Then Call S_1037319B(CFL) |
| 130 | + | XPC = XC - (WDT / 2 - SQRV / 2) |
| 131 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037258B" Then Call S_1037258B(CFL) |
| 131 | + | YPC = YC + (HGT / 2 - SQRV / 2) |
| 132 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037258C" Then Call S_1037258C(CFL) |
| 132 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 133 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037258D" Then Call S_1037258C(CFL) |
| 133 | + | G37 = "G37/I" & PX & "/P" & NPX & "/J-" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 134 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037258E" Then Call S_1037258E(CFL) |
| 134 | + | |
| 135 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1037258F" Then Call S_1037258F(CFL) |
| 135 | + | Case "01" ' SCANTONATURA DX BASSA |
| 136 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042991A" Then Call S_1042991A(CFL) |
| 136 | + | XPC = XC + (WDT / 2 - SQRV / 2) |
| 137 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042991C" Then Call S_1042991C(CFL) |
| 137 | + | YPC = YC - (HGT / 2 - SQRV / 2) |
| 138 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042991C01" Then Call S_1042991C(CFL) |
| 138 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 139 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042991D" Then Call S_1042991D(CFL) |
| 139 | + | G37 = "G37/I-" & PX & "/P" & NPX & "/J" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 140 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036865A" Then Call S_1036865A(CFL) |
| 140 | + | |
| 141 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036865B" Then Call S_1036865B(CFL) |
| 141 | + | End Select |
| 142 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036865C" Then Call S_1036865C(CFL) |
| 142 | + | |
| 143 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10483620" Then Call S_10483620(CFL) |
| 143 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G37)) |
| 144 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1048362A" Then Call S_1048362A(CFL) |
| 144 | + | |
| 145 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10429030" Then Call S_10429030(CFL) |
| 145 | + | |
| 146 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10429030-MOD" Then Call S_10429030(CFL) |
| 146 | + | Case Is = 0 |
| 147 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042903B" Then Call S_1042903B(CFL) |
| 147 | + | If HGT - WDT = 0 Then 'COLPO SINGOLO |
| 148 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036714A" Then Call S_1036714A(CFL) |
| 148 | + | XPC = XC |
| 149 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036714B" Then Call S_1036714A(CFL) |
| 149 | + | YPC = YC |
| 150 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10428730" Then Call S_10428730(CFL) |
| 150 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/>" |
| 151 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042873A" Then Call S_1042873A(CFL) |
| 151 | + | T_RECT2 = ST64(Jcdf(G90)) |
| 152 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1042873A02" Then Call S_1042873A(CFL) |
| 152 | + | Else |
| 153 | ||
| 154 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036629A" Then Call S_1036629A(CFL) |
| 154 | + | If WDT > HGT Then 'RODITURA X |
| 155 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036629B" Then Call S_1036629A(CFL) |
| 155 | + | NPX = WDT / SQRV |
| 156 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036629D" Then Call S_1036629D(CFL) |
| 156 | + | If NPX > 1 Then |
| 157 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036629E" Then Call S_1036629E(CFL) |
| 157 | + | NPX = Int(NPX) |
| 158 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1036629F" Then Call S_1036629F(CFL) |
| 158 | + | PX = Round((WDT - SQRV) / NPX, 2) |
| 159 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10414310" Then Call S_10414310(CFL) |
| 159 | + | End If |
| 160 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1041431A" Then Call S_1041431A(CFL) |
| 160 | + | |
| 161 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1041431B" Then Call S_1041431B(CFL) |
| 161 | + | If LSX = 1 Then '-------DA DX A SX <<<<<< |
| 162 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1041431C" Then Call S_1041431C(CFL) |
| 162 | + | XPC = Round(XC - (WDT / 2 - SQRV / 2), 2) |
| 163 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1041431D" Then Call S_1041431D(CFL) |
| 163 | + | YPC = Round(YC, 2) |
| 164 | - | NHD = 14 |
| 164 | + | REP_X = XPC - 2000 |
| 165 | - | '************************************ |
| 165 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 166 | G28 = "G28/I" & PX & "/J0./K" & NPX & "/" & TLBL & "/*SQ*/>" | |
| 167 | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) | |
| 168 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10068260" Then Call S_10068260(CFL) |
| 168 | + | |
| 169 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006897B" Then Call S_1006897C(CFL) |
| 169 | + | Else '-------DA SX A DX >>>>>>> |
| 170 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006897C" Then Call S_1006897C(CFL) |
| 170 | + | XPC = Round(XC + (WDT / 2 - SQRV / 2), 2) |
| 171 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006897D" Then Call S_1006897D(CFL) |
| 171 | + | YPC = Round(YC, 2) |
| 172 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006897E" Then Call S_1006897E(CFL) |
| 172 | + | REP_X = XPC - 2000 |
| 173 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006897H" Then Call S_1006897H(CFL) |
| 173 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 174 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007098C" Then Call S_1007098C(CFL) |
| 174 | + | G28 = "G28/I" & PX & "/J180./K" & NPX & "/" & TLBL & "/*SQ*/>" |
| 175 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007098D" Then Call S_1007098D(CFL) |
| 175 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 176 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007098E" Then Call S_1007098D(CFL) |
| 176 | + | End If |
| 177 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1010304B" Then Call S_1010304B(CFL) |
| 177 | + | |
| 178 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1010304C" Then Call S_1010304C(CFL) |
| 178 | + | |
| 179 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10130980" Then Call S_10130980(CFL) |
| 179 | + | Else 'RODITURA Y |
| 180 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014657D" Then Call S_1014657D(CFL) |
| 180 | + | NPY = HGT / SQRV |
| 181 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014657E" Then Call S_1014657E(CFL) |
| 181 | + | If NPY > 1 Then |
| 182 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10519690" Then Call S_10519690(CFL) |
| 182 | + | NPY = Int(NPY) |
| 183 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10153570" Then Call S_10153570(CFL) |
| 183 | + | PY = Round((HGT - SQRV) / NPY, 2) |
| 184 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1015357A" Then Call S_10153570(CFL) |
| 184 | + | End If |
| 185 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10155310" Then Call S_10155310(CFL) |
| 185 | + | |
| 186 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10155340" Then Call S_10155340(CFL) |
| 186 | + | If LNF = 1 Then '------DALL'BASSO ALL'ALTO |
| 187 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016400A" Then Call S_1016400A(CFL) |
| 187 | + | XPC = Round(XC, 2) |
| 188 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1016520A" Then Call S_1016520A(cfl) 'fondello -- fare dxf |
| 188 | + | YPC = Round(YC - (HGT / 2 - SQRV / 2), 2) |
| 189 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020374B" Then Call S_1020374B(CFL) |
| 189 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 190 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020374C" Then Call S_1020374B(CFL) |
| 190 | + | G28 = "G28/I" & PY & "/J90./K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 191 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020445A" Then Call S_1020445A(CFL) |
| 191 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 192 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020445B" Then Call S_1020445B(CFL) |
| 192 | + | |
| 193 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020445C" Then Call S_1020445B(CFL) |
| 193 | + | Else '-------DALL'ALTO AL BASSO |
| 194 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10202990" Then Call S_10202990(CFL) |
| 194 | + | XPC = Round(XC, 2) |
| 195 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020299A" Then Call S_1020299A(CFL) |
| 195 | + | YPC = Round(YC + HGT / 2 - SQRV / 2, 2) |
| 196 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020299B" Then Call S_1020299B(CFL) |
| 196 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 197 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10206680" Then Call S_10206680(CFL) |
| 197 | + | G28 = "G28/I" & PY & "/J-90./K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 198 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020668B" Then Call S_1020668B(CFL) |
| 198 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 199 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020668C" Then Call S_1020668B(CFL) |
| 199 | + | End If |
| 200 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10206400" Then Call S_10206400(CFL) |
| 200 | + | |
| 201 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020640A" Then Call S_10206400(CFL) |
| 201 | + | End If |
| 202 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020237A" Then Call S_10202370(CFL) |
| 202 | + | End If |
| 203 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1020092A" Then Call S_1020092A(CFL) |
| 203 | + | |
| 204 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10229750" Then Call S_10229750(CFL) |
| 204 | + | Case Is < 0 |
| 205 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10257410" Then Call S_10257410(CFL) |
| 205 | + | |
| 206 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10275400" Then Call S_10275400(CFL) |
| 206 | + | End Select |
| 207 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10339350" Then Call S_10339350(CFL) |
| 207 | + | |
| 208 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1033935A" Then Call S_1033935A(CFL) |
| 208 | + | |
| 209 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10339220" Then Call S_10339220(CFL) |
| 209 | + | |
| 210 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1033922A" Then Call S_1033922A(CFL) |
| 210 | + | Else '---------------------- DEFINIAMO LA LAVORAZIONE FATTA DI RETTANGOLO |
| 211 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10269750" Then Call S_10269750(CFL) |
| 211 | + | |
| 212 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10284540" Then Call S_10284540(CFL) |
| 212 | + | |
| 213 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10285220" Then Call S_10285220(CFL) |
| 213 | + | UTE = Left(TXQ, InStr(1, TXQ, " ", vbBinaryCompare) - 1) |
| 214 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1028522A" Then Call S_10285220(CFL) |
| 214 | + | ANG = Right(UTE, InStr(1, StrReverse(UTE), "_", vbBinaryCompare) - 1) |
| 215 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026712A" Then Call S_1026712A(CFL) |
| 215 | + | TLBL = Left(UTE, InStr(1, UTE, "_", vbBinaryCompare) - 1) |
| 216 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026633A" Then Call S_1026633A(CFL) |
| 216 | + | |
| 217 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1026633B" Then Call S_1026633A(CFL) |
| 217 | + | If Right(ANG, 1) = "I" Then TLBL = TLBL & "C" & Replace(ANG, "I", "") & "." |
| 218 | ||
| 219 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10458640" Then Call S_10458640(CFL) |
| 219 | + | |
| 220 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1045864A" Then Call S_1045864A(CFL) |
| 220 | + | MLR = Right(TXQ, Len(TXQ) - InStr(1, TXQ, " ", vbBinaryCompare)) |
| 221 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1045864B" Then Call S_1045864A(CFL) |
| 221 | + | |
| 222 | ||
| 223 | - | 'If INFO_DAT(cfl, 0, 6) = "1007233" Then Call S_1007233(cfl) |
| 223 | + | Select Case ANG |
| 224 | - | 'If INFO_DAT(cfl, 0, 6) = "1007253" Then Call S_1007253(cfl) |
| 224 | + | |
| 225 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1007889C" Then Call S_1007889C(cfl) |
| 225 | + | Case "0", "0I" |
| 226 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1007896B" Then Call S_1007896B(cfl) |
| 226 | + | XXX = NUM(Left(MLR, InStr(1, MLR, " ", vbTextCompare))) |
| 227 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1007909G" Then Call S_1007909G(cfl) |
| 227 | + | YYY = NUM(Right(MLR, InStr(1, StrReverse(MLR), " ", vbTextCompare) - 1)) |
| 228 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1007093D" Then Call S_1007093D(cfl) |
| 228 | + | |
| 229 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1006927A" Then Call S_1006927A(cfl) |
| 229 | + | Case "90", "90I" |
| 230 | - | 'If INFO_DAT(cfl, 0, 6) = "1011763" Then Call S_1011763(cfl) |
| 230 | + | |
| 231 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1014512C" Then Call S_1014512C(cfl) |
| 231 | + | XXX = NUM(Right(MLR, InStr(1, StrReverse(MLR), " ", vbTextCompare) - 1)) |
| 232 | - | 'If INFO_DAT(cfl, 0, 6) = "1014700" Then Call S_1014700(cfl) |
| 232 | + | YYY = NUM(Left(MLR, InStr(1, MLR, " ", vbTextCompare))) |
| 233 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1016416D" Then Call S_1016416D(cfl) |
| 233 | + | |
| 234 | - | 'If INFO_DAT(cfl, 0, 6) & INFO_DAT(cfl, 0, 9) = "1016428B" Then Call S_1016428B(cfl) |
| 234 | + | Case Else |
| 235 | MsgBox "ERROR RECT TOOL ANGLE" | |
| 236 | End Select | |
| 237 | ||
| 238 | - | '********************************OUTPUT DXF *********************** |
| 238 | + | |
| 239 | RX = "0" | |
| 240 | - | If InStr(1, str_no_repet, INFO_DAT(CFL, 0, 3)) = 0 Then |
| 240 | + | RY = "0" |
| 241 | ||
| 242 | - | cd_dxf = "_1006908_1006914_1006930_1007161_1007886_1011060_1011067_1011908_1011069_1012499_1012500_1007909_1016416_1016428_1007253_1020145_1022168_1020979_1020899_1023837_1023240_" |
| 242 | + | If WDT > XXX Then RX = "1" |
| 243 | - | cd_dxf = cd_dxf & "_1045862_1045866_1045872_1046016_1014512_1016520_1007896_1078916_1078917_1016517_" |
| 243 | + | If HGT > YYY Then RY = "1" |
| 244 | - | cd_mag = "_3212155519_" |
| 244 | + | |
| 245 | - | If InStr(1, cd_dxf, INFO_DAT(CFL, 0, 6)) > 0 Or InStr(1, cd_mag, INFO_DAT(CFL, 0, 6)) > 0 Then |
| 245 | + | |
| 246 | - | str_no_repet = str_no_repet & "-" & INFO_DAT(CFL, 0, 3) & "_" |
| 246 | + | Select Case RX & RY |
| 247 | ||
| 248 | Case "00" 'COLPO ------------------------------------------------------------------------------------- | |
| 249 | - | If INFO_DAT(CFL, 0, 6) = "1006908" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 249 | + | XPC = XC |
| 250 | - | If INFO_DAT(CFL, 0, 6) = "1006914" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 250 | + | YPC = YC |
| 251 | - | If INFO_DAT(CFL, 0, 6) = "1006930" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 251 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/>" |
| 252 | - | If INFO_DAT(CFL, 0, 6) = "1007161" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 252 | + | T_RECT2 = ST64(Jcdf(G90)) |
| 253 | - | If INFO_DAT(CFL, 0, 6) = "1007886" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 253 | + | |
| 254 | ||
| 255 | - | ''If INFO_DAT(CFL, 0, 6) = "1011060" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) 'ENTRANCE |
| 255 | + | Case "11" 'RODITURA XY ------------------------------------------------------------------------------------- |
| 256 | - | ''If INFO_DAT(CFL, 0, 6) = "1011067" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 256 | + | |
| 257 | - | ''If INFO_DAT(CFL, 0, 6) = "1011908" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 257 | + | NPX = WDT / XXX |
| 258 | - | ''If INFO_DAT(CFL, 0, 6) = "1012499" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 258 | + | If NPX > 1 Then |
| 259 | - | ''If INFO_DAT(CFL, 0, 6) = "1012500" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 259 | + | NPX = Int(NPX) |
| 260 | PX = Round((WDT - XXX) / NPX, 3) | |
| 261 | - | 'If INFO_DAT(CFL, 0, 6) = "1007909" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 261 | + | End If |
| 262 | - | 'If INFO_DAT(CFL, 0, 6) = "1016416" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 262 | + | |
| 263 | - | If INFO_DAT(CFL, 0, 6) = "1007253" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 263 | + | NPY = HGT / YYY |
| 264 | If NPY > 1 Then | |
| 265 | NPY = Int(NPY) | |
| 266 | - | If INFO_DAT(CFL, 0, 6) = "1020145" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 266 | + | PY = Round((HGT - YYY) / NPY, 3) |
| 267 | - | If INFO_DAT(CFL, 0, 6) = "1022168" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 267 | + | End If |
| 268 | - | If INFO_DAT(CFL, 0, 6) = "1020979" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 268 | + | |
| 269 | - | If INFO_DAT(CFL, 0, 6) = "1020899" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 269 | + | |
| 270 | - | If INFO_DAT(CFL, 0, 6) = "1023837" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 270 | + | Select Case LSX & LNF |
| 271 | ||
| 272 | - | If INFO_DAT(CFL, 0, 6) = "1016520" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 272 | + | Case "00" ' SCANTONATURA DX ALTA |
| 273 | XPC = XC + (WDT / 2 - XXX / 2) | |
| 274 | - | If INFO_DAT(CFL, 0, 6) = "1045862" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 274 | + | YPC = YC + (HGT / 2 - YYY / 2) |
| 275 | - | If INFO_DAT(CFL, 0, 6) = "1045866" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 275 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 276 | - | If INFO_DAT(CFL, 0, 6) = "1045872" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 276 | + | G37 = "G37/I-" & PX & "/P" & NPX & "/J-" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 277 | - | If INFO_DAT(CFL, 0, 6) = "1046016" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 277 | + | |
| 278 | - | If INFO_DAT(CFL, 0, 6) = "1078916" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 278 | + | Case "11" ' SCANTONATURA SX BASSA |
| 279 | - | If INFO_DAT(CFL, 0, 6) = "1078917" And INFO_DAT(CFL, 0, 19) = 0 Then Call MODEL_SUB(CFL, 1) |
| 279 | + | XPC = XC - (WDT / 2 - XXX / 2) |
| 280 | YPC = YC - (HGT / 2 - YYY / 2) | |
| 281 | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" | |
| 282 | G37 = "G37/I" & PX & "/P" & NPX & "/J" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" | |
| 283 | ||
| 284 | - | If InStr(1, str_no_repet, INFO_DAT(CFL, 0, 3)) = 0 Then 'CHECK SU MODULO O DXF MANCANTE |
| 284 | + | Case "10" ' SCANTONATURA SX ALTA |
| 285 | - | If ACT_MOD = "" Then MsgBox ("MODULO " & INFO_DAT(CFL, 0, 6) & " MANCANTE")
|
| 285 | + | XPC = XC - (WDT / 2 - XXX / 2) |
| 286 | YPC = YC + (HGT / 2 - YYY / 2) | |
| 287 | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" | |
| 288 | - | ACT_MOD = "" |
| 288 | + | G37 = "G37/I" & PX & "/P" & NPX & "/J-" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 289 | - | NO_PROD_INT: |
| 289 | + | |
| 290 | Case "01" ' SCANTONATURA DX BASSA | |
| 291 | - | Next CFL |
| 291 | + | XPC = XC + (WDT / 2 - XXX / 2) |
| 292 | YPC = YC - (HGT / 2 - YYY / 2) | |
| 293 | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" | |
| 294 | - | VPRSS = 1 |
| 294 | + | G37 = "G37/I-" & PX & "/P" & NPX & "/J" & PY & "/K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 295 | - | For CFL = 1 To NM_DT |
| 295 | + | |
| 296 | End Select | |
| 297 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014688A" Then Call V_1014688A(CFL) |
| 297 | + | |
| 298 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016428C" Then Call V_1016428C(CFL) |
| 298 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G37)) |
| 299 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014512C" Then Call V_1014512C(CFL) |
| 299 | + | |
| 300 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10339490" Then Call V_10339490(CFL) |
| 300 | + | |
| 301 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016416E" Then Call V_1016416E(CFL) |
| 301 | + | |
| 302 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "10339850" Then Call V_1033985B(CFL) |
| 302 | + | Case "01" 'RODITURA IN Y |
| 303 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1033985B" Then Call V_1033985B(CFL) |
| 303 | + | |
| 304 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006951B" Then Call V_1006951(CFL) |
| 304 | + | |
| 305 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006951C" Then Call V_1006951C(CFL) |
| 305 | + | NPY = HGT / YYY |
| 306 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023836A" Then Call V_1023836A(CFL) |
| 306 | + | If NPY > 1 Then |
| 307 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007889B" Then Call V_1007889B(CFL) |
| 307 | + | NPY = Int(NPY) |
| 308 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007889E" Then Call V_1007889E(CFL) |
| 308 | + | PY = Round((HGT - YYY) / NPY, 2) |
| 309 | End If | |
| 310 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007233" Then Call V_1007233(CFL) |
| 310 | + | |
| 311 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007236" Then Call V_1007236(CFL) |
| 311 | + | If LNF = 1 Then '------DALL'BASSO ALL'ALTO |
| 312 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007253" Then Call V_1007253(CFL) |
| 312 | + | XPC = Round(XC, 2) |
| 313 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007303" Then Call V_1007303(CFL) |
| 313 | + | YPC = Round(YC - (HGT / 2 - YYY / 2), 2) |
| 314 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007305" Then Call V_1007305(CFL) |
| 314 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 315 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007896B" Then Call V_1007896B(CFL) |
| 315 | + | G28 = "G28/I" & PY & "/J90./K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 316 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007896C" Then Call V_1007896C(CFL) |
| 316 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 317 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1011763" Then Call V_1011763(CFL) |
| 317 | + | |
| 318 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007909H" Then Call V_1007909H(CFL) |
| 318 | + | Else '-------DALL'ALTO AL BASSO |
| 319 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1006927A" Then Call V_1006927A(CFL) |
| 319 | + | XPC = Round(XC, 2) |
| 320 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007093D" Then Call V_1007093D(CFL) |
| 320 | + | YPC = Round(YC + HGT / 2 - YYY / 2, 2) |
| 321 | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" | |
| 322 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016416F" Then Call V_1016416F(CFL) |
| 322 | + | G28 = "G28/I" & PY & "/J-90./K" & NPY & "/" & TLBL & "/*SQ*/>" |
| 323 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1016428D" Then Call V_1016428D(CFL) |
| 323 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 324 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007909J" Then Call V_1007909J(CFL) |
| 324 | + | End If |
| 325 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007909M" Then Call V_1007909M(CFL) |
| 325 | + | |
| 326 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007909M-MOD" Then Call V_1007909J(CFL) |
| 326 | + | |
| 327 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007909N" Then Call V_1007909M(CFL) |
| 327 | + | Case "10" |
| 328 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007889F" Then Call V_1007889F(CFL) |
| 328 | + | |
| 329 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007889G" Then Call V_1007889H(CFL) |
| 329 | + | NPX = WDT / XXX |
| 330 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1007889H" Then Call V_1007889H(CFL) |
| 330 | + | If NPX > 1 Then |
| 331 | NPX = Int(NPX) | |
| 332 | PX = Round((WDT - XXX) / NPX, 2) | |
| 333 | End If | |
| 334 | - | 'If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014700" Then Call V_1014700(CFL) |
| 334 | + | |
| 335 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014700C" Then MsgBox ("chiedere dxf a Galloni cod. " & INFO_DAT(CFL, 0, 6))
|
| 335 | + | If LSX = 1 Then '-------DA DX A SX <<<<<< |
| 336 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023837A" Then MsgBox ("chiedere dxf a Galloni cod. " & INFO_DAT(CFL, 0, 6)) 'Call S_1023837A(CFL)
|
| 336 | + | XPC = Round(XC - (WDT / 2 - XXX / 2), 2) |
| 337 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1014660A" Then MsgBox ("chiedere dxf a Galloni cod. " & INFO_DAT(CFL, 0, 6))
|
| 337 | + | YPC = Round(YC, 2) |
| 338 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023240B" Then MsgBox ("chiedere dxf a Galloni cod. " & INFO_DAT(CFL, 0, 6))
|
| 338 | + | REP_X = XPC - 2000 |
| 339 | - | If INFO_DAT(CFL, 0, 6) & INFO_DAT(CFL, 0, 9) = "1023240C" Then MsgBox ("chiedere dxf a Galloni cod. " & INFO_DAT(CFL, 0, 6))
|
| 339 | + | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" |
| 340 | G28 = "G28/I" & PX & "/J0./K" & NPX & "/" & TLBL & "/*SQ*/>" | |
| 341 | - | Next CFL |
| 341 | + | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) |
| 342 | ||
| 343 | Else '-------DA SX A DX >>>>>>> | |
| 344 | - | End Sub |
| 344 | + | XPC = Round(XC + (WDT / 2 - XXX / 2), 2) |
| 345 | YPC = Round(YC, 2) | |
| 346 | REP_X = XPC - 2000 | |
| 347 | G90 = "G90/X" & XPC & "/Y" & YPC & "/" & TLBL & "/*SQI*/>" | |
| 348 | G28 = "G28/I" & PX & "/J180./K" & NPX & "/" & TLBL & "/*SQ*/>" | |
| 349 | T_RECT2 = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) | |
| 350 | ||
| 351 | End If | |
| 352 | ||
| 353 | ||
| 354 | ||
| 355 | ||
| 356 | Case "11" | |
| 357 | MsgBox "ERROR RECT NIBBLING", vbCritical | |
| 358 | Case Else | |
| 359 | ||
| 360 | ||
| 361 | MsgBox "ERROR RECT NIBBLING", vbCritical | |
| 362 | End Select | |
| 363 | ||
| 364 | ||
| 365 | End If | |
| 366 | ||
| 367 | If T_RECT2 = "" Then MsgBox "T_RECT2 FAILED ON DRAWING " & ACT_MOD, vbCritical | |
| 368 | Exit Function | |
| 369 | UUUUUU: | |
| 370 | ||
| 371 | T_RECT2 = "" | |
| 372 | If T_RECT2 = "" Then MsgBox "T_RECT2 FAILED ON DRAWING " & ACT_MOD, vbCritical | |
| 373 | ||
| 374 | ||
| 375 | End Function | |
| 376 | ||
| 377 | ||
| 378 | ||
| 379 | Function T_RECT3(ByVal XC As Double, ByVal YC As Double, ByVal WDT As Double, ByVal HGT As Double) As String | |
| 380 | ||
| 381 | 'ESEGUE UNA LAVORAZIONE RETTANGOLARE A COLPO SINGOLO | |
| 382 | 'XC = X CENTRO RETTANGOLO YC= Y CENTRO RETTANGOLO | |
| 383 | 'WDT = LARGHEZZA RETTANGOLO HGT= ALTEZZA RETTANGOLO | |
| 384 | ||
| 385 | For i = 1 To 46 | |
| 386 | ||
| 387 | If UCase(TOOL_VAR(NHD, i, 6)) = "RETTANGOLO" Then | |
| 388 | If (TOOL_VAR(NHD, i, 3) = WDT And TOOL_VAR(NHD, i, 4) = HGT) Then | |
| 389 | TX = TOOL_VAR(NHD, i, 1) | |
| 390 | Exit For | |
| 391 | End If | |
| 392 | End If | |
| 393 | Next i | |
| 394 | ||
| 395 | T_RECT3 = ST64("G90/X" & XC & "/Y" & YC & "/" & TX & "/>")
| |
| 396 | ||
| 397 | If TX = "" Then | |
| 398 | MsgBox ("ERRORE SU SPACCO RETTANGOLARE A COLPO SINGOLO"), vbCritical
| |
| 399 | T_RECT3 = "" | |
| 400 | End If | |
| 401 | ||
| 402 | ||
| 403 | End Function | |
| 404 | ||
| 405 | ||
| 406 | ||
| 407 | Function T_CIRC(ByVal X As Double, ByVal Y As Double, ByVal DIAMETER As String) As String | |
| 408 | 'ESEGUE UNA LAVORAZIONE CIRCOLARE A COLPO SINGOLO | |
| 409 | ||
| 410 | If DIAMETER = "10" Then DIAMETER = "10.1" | |
| 411 | If DIAMETER = "20" Then DIAMETER = "20.2" | |
| 412 | If DIAMETER = "7" Then DIAMETER = "7.2" | |
| 413 | If DIAMETER = "4,5" Then DIAMETER = "4.2" | |
| 414 | If DIAMETER = "4" Then DIAMETER = "4.2" | |
| 415 | If DIAMETER = "6.1" Then DIAMETER = "6" | |
| 416 | ||
| 417 | LAB_TOOL = LAB_1(DIAMETER) | |
| 418 | ||
| 419 | ||
| 420 | If LAB_TOOL = "" Then | |
| 421 | ||
| 422 | ||
| 423 | 'If DIAMETER = "36,5" Then | |
| 424 | 'T_CIRC = T_SECTOR(X, Y, DIAMETER) | |
| 425 | 'GoTo END_TCIRC: | |
| 426 | 'End If | |
| 427 | ||
| 428 | ||
| 429 | MsgBox ("RODITURA CIRCOLARE DI DIAMETRO " & DIAMETER)
| |
| 430 | DIAM_RID = Round(Val(DIAMETER) * 0.75, 1) + 0.1 | |
| 431 | ||
| 432 | For kk = 1 To 10000 | |
| 433 | LAB_TOOL = LAB_1(DIAM_RID) | |
| 434 | If LAB_TOOL <> "" Then Exit For | |
| 435 | DIAM_RID = DIAM_RID - 0.05 | |
| 436 | DIAM_RID = Round(DIAM_RID, 2) | |
| 437 | ||
| 438 | If DIAM_RID < 0.55 * Val(DIAMETER) Then | |
| 439 | MsgBox "RODITURA CIRCOLARE FALLITA SU " & ACT_MOD | |
| 440 | T_CIRC = "" | |
| 441 | Exit Function | |
| 442 | End If | |
| 443 | ||
| 444 | Next kk | |
| 445 | ||
| 446 | If Val(DIAM_RID) < 8 Then QLR = 0.6 Else QLR = 2 'QUALITA' RODITURA | |
| 447 | ||
| 448 | G90 = "G90/G72/X" & X & "/Y" & Y & "/*SQI*/>" | |
| 449 | G68 = "G68/I" & Val(DIAMETER) / 2 & "/J180./K-360./P-" & DIAM_RID & "/Q" & QLR & "./" & LAB_TOOL & "/*SQ*/>" 'CONTROLLO VAL | |
| 450 | T_CIRC = ST64(Jcdf(G90)) & ST64(Jcdf(G68)) | |
| 451 | ||
| 452 | ||
| 453 | Else | |
| 454 | ||
| 455 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 456 | T_CIRC = ST64(Jcdf(G90)) | |
| 457 | ||
| 458 | End If | |
| 459 | ||
| 460 | ||
| 461 | End Function | |
| 462 | ||
| 463 | ||
| 464 | ||
| 465 | Function T_SECTOR(ByVal X As Double, ByVal Y As Double, ByVal DIAM As Double) ' LAVORAZIONE CIRCOLARE DI 48, DI 36.5 O DI 30 | |
| 466 | ||
| 467 | 'PER AUMENTARE I COLPI ANDARE AD AGIRE SULL'ARCO | |
| 468 | ||
| 469 | ||
| 470 | Select Case DIAM | |
| 471 | ||
| 472 | ||
| 473 | Case 36.5 | |
| 474 | ANGL = 270 | |
| 475 | DST = 12 | |
| 476 | ARCO = 73 'GRADI | |
| 477 | MsgBox "CONTROLLARE DIAMETRO " & DIAM, vbCritical | |
| 478 | ||
| 479 | Case 48 | |
| 480 | ANGL = 90 | |
| 481 | DST = 12 | |
| 482 | ARCO = 55 'GRADI | |
| 483 | 'MsgBox "CONTROLLARE DIAMETRO " & DIAM, vbCritical | |
| 484 | ||
| 485 | Case 50 | |
| 486 | ANGL = 90 | |
| 487 | DST = 12 | |
| 488 | ARCO = 55 'GRADI | |
| 489 | MsgBox "CONTROLLARE DIAMETRO " & DIAM, vbCritical | |
| 490 | ||
| 491 | ||
| 492 | Case Else | |
| 493 | MsgBox ("ERROR OF ANGLE IN THE FUNCTION T_SECTOR")
| |
| 494 | End Select | |
| 495 | ||
| 496 | N_RP = (360 / ARCO) | |
| 497 | If Int(N_RP) <> N_RP Then N_RP = Int(N_RP) + 1 Else N_RP = Int(N_RP) | |
| 498 | ||
| 499 | PIG = 3.14159265358 'PIGRECO | |
| 500 | UTLS = "BI_RAD" | |
| 501 | ||
| 502 | For RP = 1 To N_RP | |
| 503 | RADN = (ARCO * (RP - 1) * 2 * PIG) / 360 | |
| 504 | If ANGL > 360 Then ANGL = ANGL - 360 | |
| 505 | SCT1 = SCT1 & T_SPECIAL(X + (DIAM / 2 - DST) * Cos(RADN), Y + (DIAM / 2 - DST) * Sin(RADN), UTLS, "C" & ANGL & ".") | |
| 506 | ANGL = ANGL + ARCO | |
| 507 | Next RP | |
| 508 | ||
| 509 | ||
| 510 | ||
| 511 | T_SECTOR = SCT1 | |
| 512 | ||
| 513 | ||
| 514 | End Function | |
| 515 | ||
| 516 | ||
| 517 | Function T_HEX(ByVal X As Double, ByVal Y As Double, ByVal LARG As Double) As String | |
| 518 | 'ESEGUE UNA LAVORAZIONE ESAGONALE A COLPO SINGOLO | |
| 519 | LARG = Int(LARG) | |
| 520 | ||
| 521 | BG_LAB: | |
| 522 | ||
| 523 | Key = "SPECIALE" | |
| 524 | LAB_TOOL = "" | |
| 525 | For i = 1 To 46 | |
| 526 | If UCase(TOOL_VAR(NHD, i, 6)) = Key Then | |
| 527 | If Replace(TOOL_VAR(NHD, i, 3), ",", ".") = Replace(LARG, ",", ".") & "EX" Then | |
| 528 | LAB_TOOL = TOOL_VAR(NHD, i, 1) | |
| 529 | Exit For | |
| 530 | End If | |
| 531 | End If | |
| 532 | Next i | |
| 533 | ||
| 534 | If LAB_TOOL = "" Then | |
| 535 | MsgBox ("NON TROVATO UTENSILE ESAGONALE") & " !!!!!!!!!", vbCritical
| |
| 536 | Else | |
| 537 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 538 | T_HEX = ST64(Jcdf(G90)) | |
| 539 | End If | |
| 540 | ||
| 541 | End Function | |
| 542 | ||
| 543 | ||
| 544 | Function T_SLOT(ByVal X As Double, ByVal Y As Double, ByVal LENG As String, ByVal HGT As String, ByVal ROT As Single) As String | |
| 545 | 'ESEGUE UNA LAVORAZIONE AD ASOLA IN COLPO SINGOLO O RODITURA | |
| 546 | 'If HGT = "7,2" Then HGT = "7" 'da eliminare | |
| 547 | If HGT = "5,5" And LENG = "8" And ROT = 0 Then | |
| 548 | '5 COLPI CON IL TONDO DI 5.5 | |
| 549 | T_SLOT = T_CIRC(X, Y, 5.5) & T_CIRC(X + 1.25, Y, 5.5) & T_CIRC(X - 1.25, Y, 5.5) & T_CIRC(X + 0.625, Y, 5.5) & T_CIRC(X - 0.625, Y, 5.5) | |
| 550 | Exit Function | |
| 551 | End If | |
| 552 | ||
| 553 | ||
| 554 | LENG = Jcdf(LENG) | |
| 555 | HGT = Jcdf(HGT) | |
| 556 | RODITURA = 0 | |
| 557 | BG_LAB: | |
| 558 | Key = "Asola" | |
| 559 | ||
| 560 | '******************************* CERCA UN'ASOLA FISSA | |
| 561 | LAB_TOOL = "" | |
| 562 | For i = 1 To 46 | |
| 563 | If TOOL_VAR(NHD, i, 6) = Key Then | |
| 564 | ||
| 565 | If TOOL_VAR(NHD, i, 3) = LENG And TOOL_VAR(NHD, i, 4) = HGT & "A" Then | |
| 566 | If TOOL_VAR(NHD, i, 5) = Trim(STR(ROT)) Then | |
| 567 | LAB_TOOL = TOOL_VAR(NHD, i, 1) | |
| 568 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 569 | T_SLOT = ST64(Jcdf(G90)) | |
| 570 | Exit For | |
| 571 | End If | |
| 572 | End If | |
| 573 | ||
| 574 | If RODITURA = 0 And (Val(Jcdf(TOOL_VAR(NHD, i, 3))) < Val(LENG) And TOOL_VAR(NHD, i, 4) = HGT & "A") Then | |
| 575 | If TOOL_VAR(NHD, i, 5) = Trim(STR(ROT)) Then | |
| 576 | LAB_TOOL = TOOL_VAR(NHD, i, 1) | |
| 577 | ||
| 578 | PMAX = Val(TOOL_VAR(NHD, i, 3)) - Val(TOOL_VAR(NHD, i, 4)) | |
| 579 | XX = ((Vbdf(LENG)) - Val(Vbdf(TOOL_VAR(NHD, i, 3)))) / PMAX | |
| 580 | If XX > Int(XX) Then XX = Int(XX) + 1 | |
| 581 | PP = (Vbdf(LENG) - TOOL_VAR(NHD, i, 3)) / XX | |
| 582 | DST = XX / 2 * PP | |
| 583 | PPJ = Jcdf(PP) | |
| 584 | ||
| 585 | Select Case ROT | |
| 586 | Case 0 | |
| 587 | G90 = "G90/X" & X - DST & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 588 | G28 = ST64("G28/I" & PPJ & "/J0./K" & XX & "/" & LAB_TOOL & "/>")
| |
| 589 | Case 90 | |
| 590 | G90 = "G90/X" & X & "/Y" & Y - DST & "/" & LAB_TOOL & "/>" | |
| 591 | G28 = ST64("G28/I" & PPJ & "/J90./K" & XX & "/" & LAB_TOOL & "/>")
| |
| 592 | ||
| 593 | Case Else | |
| 594 | GoTo NLAB | |
| 595 | End Select | |
| 596 | ||
| 597 | T_SLOT = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) | |
| 598 | ||
| 599 | ||
| 600 | End If | |
| 601 | End If | |
| 602 | ||
| 603 | End If | |
| 604 | Next i | |
| 605 | ||
| 606 | '******************************* CERCA UN'ASOLA ROTANTE | |
| 607 | If LAB_TOOL = "" Then | |
| 608 | For i = 1 To 46 | |
| 609 | If TOOL_VAR(NHD, i, 6) = Key Then | |
| 610 | If TOOL_VAR(NHD, i, 3) = LENG And TOOL_VAR(NHD, i, 4) = HGT & "A" Then | |
| 611 | If TOOL_VAR(NHD, i, 5) = "0I" Then | |
| 612 | LAB_TOOL = TOOL_VAR(NHD, i, 1) | |
| 613 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "C" & ROT & "./>" | |
| 614 | T_SLOT = ST64(Jcdf(G90)) | |
| 615 | Exit For | |
| 616 | End If | |
| 617 | End If | |
| 618 | ||
| 619 | If RODITURA = 0 And (Val(Jcdf(TOOL_VAR(NHD, i, 3))) < Val(LENG) And TOOL_VAR(NHD, i, 4) = HGT & "A") Then 'AGGIUNTA RODITURA CON ASOLA ROTANTE | |
| 620 | If TOOL_VAR(NHD, i, 5) = "0I" Then | |
| 621 | LAB_TOOL = TOOL_VAR(NHD, i, 1) | |
| 622 | ||
| 623 | PMAX = Val(TOOL_VAR(NHD, i, 3)) - Val(TOOL_VAR(NHD, i, 4)) | |
| 624 | XX = ((Vbdf(LENG)) - Val(Vbdf(TOOL_VAR(NHD, i, 3)))) / PMAX | |
| 625 | If XX > Int(XX) Then XX = Int(XX) + 1 | |
| 626 | PP = (Vbdf(LENG) - TOOL_VAR(NHD, i, 3)) / XX | |
| 627 | DST = XX / 2 * PP | |
| 628 | PPJ = Jcdf(PP) | |
| 629 | ||
| 630 | Select Case ROT | |
| 631 | Case 0 | |
| 632 | G90 = "G90/X" & X - DST & "/Y" & Y & "/" & LAB_TOOL & "C" & ROT & "/>" | |
| 633 | G28 = ST64("G28/I" & PPJ & "/J" & ROT & "./K" & XX & "/" & LAB_TOOL & "/>")
| |
| 634 | Case 90 | |
| 635 | G90 = "G90/X" & X & "/Y" & Y - DST & "/" & LAB_TOOL & "C" & ROT & "/>" | |
| 636 | G28 = ST64("G28/I" & PPJ & "/J" & ROT & "./K" & XX & "/" & LAB_TOOL & "/>")
| |
| 637 | End Select | |
| 638 | ||
| 639 | ||
| 640 | ||
| 641 | T_SLOT = ST64(Jcdf(G90)) & ST64(Jcdf(G28)) | |
| 642 | End If | |
| 643 | End If 'FINE AGGIUNTA RODITURA CON ASOLA ROTANTE | |
| 644 | ||
| 645 | End If | |
| 646 | ||
| 647 | Next i | |
| 648 | ||
| 649 | End If | |
| 650 | ||
| 651 | ||
| 652 | If RODITURA = 1 Then GoTo NLAB | |
| 653 | If LAB_TOOL = "" Then | |
| 654 | RODITURA = 1 | |
| 655 | GoTo BG_LAB | |
| 656 | End If | |
| 657 | ||
| 658 | NLAB: | |
| 659 | ||
| 660 | ||
| 661 | ||
| 662 | ||
| 663 | If LAB_TOOL = "" Then | |
| 664 | MsgBox ("NON TROVATO UTENSILE ASOLA") & " " & LENG & " x " & HGT & " - " & ROT & " " & ("INSERIRE ALTRO VALORE")
| |
| 665 | LENG = InputBox("LENG")
| |
| 666 | HGT = InputBox("HGT")
| |
| 667 | GoTo BG_LAB | |
| 668 | End If | |
| 669 | ||
| 670 | ||
| 671 | ||
| 672 | End Function | |
| 673 | ||
| 674 | ||
| 675 | ||
| 676 | Function T_SPECIAL(ByVal X As Double, ByVal Y As Double, ByVal TL_LAB As String, ByVal STR_IND As String) As String | |
| 677 | 'ESEGUE UNA LAVORAZIONE SPECIALE A COLPO SINGOLO | |
| 678 | ||
| 679 | BG_LAB: | |
| 680 | LAB_TOOL = LAB_3(TL_LAB, STR_IND) | |
| 681 | If LAB_TOOL = "" Then | |
| 682 | MsgBox ("NON TROVATO UTENSILE SPECIALE"), vbCritical
| |
| 683 | Exit Function | |
| 684 | End If | |
| 685 | ||
| 686 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & STR_IND & "/>" | |
| 687 | T_SPECIAL = ST64(Jcdf(G90)) | |
| 688 | ||
| 689 | End Function | |
| 690 | ||
| 691 | Function LAB_1(ByVal DIAM As String) As String | |
| 692 | 'DEFINISCE UTENSILE X LAVORAZIONE TONDA A COLPO SINGOLO | |
| 693 | ||
| 694 | Key = "Tondo" | |
| 695 | LAB_1 = "" | |
| 696 | For i = 1 To 46 | |
| 697 | If TOOL_VAR(NHD, i, 6) = Key Then | |
| 698 | If Replace(TOOL_VAR(NHD, i, 3), ",", ".") = Replace(DIAM, ",", ".") Then | |
| 699 | LAB_1 = TOOL_VAR(NHD, i, 1) | |
| 700 | Exit For | |
| 701 | End If | |
| 702 | End If | |
| 703 | Next i | |
| 704 | ||
| 705 | End Function | |
| 706 | ||
| 707 | ||
| 708 | Function LAB_2(ByVal X As Double, ByVal Y As Double) As String | |
| 709 | 'DEFINISCE L'UTENSILE QUADRO X LAVORAZIONE RETTANGOLARE LAB_2= <ETICHETTA LATOUTENSILE> | |
| 710 | ||
| 711 | Key = "Quadro" | |
| 712 | SQRV = -(X * (X <= Y) + Y * (X > Y)) | |
| 713 | If X < 13 Or Y < 13 Then SVP = 10 Else SVP = 20 'PERCENTUALE SOVRAPPOSIZIONE MINIMA COLPI RODITURA | |
| 714 | ||
| 715 | Dim NDX(100) As String | |
| 716 | Dim LTR(100) As Double | |
| 717 | ||
| 718 | ||
| 719 | RRT = 0 | |
| 720 | For i = 1 To 46 | |
| 721 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) <> "45" Then | |
| 722 | If TOOL_VAR(NHD, i, 5) = "0I" Then AGG = "C0." Else AGG = "" | |
| 723 | RRT = RRT + 1 | |
| 724 | NDX(RRT) = TOOL_VAR(NHD, i, 1) & AGG | |
| 725 | LTR(RRT) = Val(TOOL_VAR(NHD, i, 3)) | |
| 726 | ||
| 727 | End If | |
| 728 | Next i | |
| 729 | ||
| 730 | COUNT_T = RRT | |
| 731 | ||
| 732 | SRCL2: 'BLOCCO CHE ORDINA IN MODO DECRESCENTE DI DIMENSIONE GLI UTENSILI QUADRI | |
| 733 | For i = 1 To COUNT_T - 1 | |
| 734 | If LTR(i) < LTR(i + 1) Then | |
| 735 | LTR(0) = LTR(i) | |
| 736 | LTR(i) = LTR(i + 1) | |
| 737 | LTR(i + 1) = LTR(0) | |
| 738 | NDX(0) = NDX(i) | |
| 739 | NDX(i) = NDX(i + 1) | |
| 740 | NDX(i + 1) = NDX(0) | |
| 741 | GoTo SRCL2 | |
| 742 | End If | |
| 743 | Next i | |
| 744 | ||
| 745 | For i = 1 To COUNT_T | |
| 746 | DFR = LTR(i) - SQRV | |
| 747 | Select Case DFR | |
| 748 | Case Is > 0 | |
| 749 | If i = COUNT_T Then | |
| 750 | 'MsgBox "ERRORE UTENSILE SPACCO RETTANGOLARE " & ACT_MOD, vbCritical | |
| 751 | ||
| 752 | Exit For | |
| 753 | End If | |
| 754 | Case Is = 0 | |
| 755 | LAB_2 = NDX(i) & " " & LTR(i) | |
| 756 | Exit For | |
| 757 | Case Is < 0 | |
| 758 | If SQRV / LTR(i) >= 1 + SVP / 100 Then | |
| 759 | LAB_2 = NDX(i) & " " & LTR(i) | |
| 760 | Exit For | |
| 761 | End If | |
| 762 | End Select | |
| 763 | Next i | |
| 764 | ||
| 765 | Erase NDX, LTR | |
| 766 | End Function | |
| 767 | ||
| 768 | Function LAB_3(ByVal TL_LAB As String, ByVal STR_IND As String) As String | |
| 769 | 'DEFINISCE UTENSILE X LAVORAZIONE SPECIALE A COLPO SINGOLO | |
| 770 | ||
| 771 | LAB_3 = "" | |
| 772 | For i = 1 To 46 | |
| 773 | If TOOL_VAR(NHD, i, 3) = TL_LAB Then | |
| 774 | If InStr(1, TOOL_VAR(NHD, i, 3), "RD", vbBinaryCompare) = 0 Then GoTo LLL | |
| 775 | If TOOL_VAR(NHD, i, 5) = Mid(STR_IND, 2, InStr(1, STR_IND, ".") - 2) Then | |
| 776 | LLL: | |
| 777 | LAB_3 = TOOL_VAR(NHD, i, 1) | |
| 778 | Exit For | |
| 779 | End If | |
| 780 | End If | |
| 781 | Next i | |
| 782 | ||
| 783 | End Function | |
| 784 | ||
| 785 | ||
| 786 | Function LAB_4(ByVal WDT As Double, ByVal LGT As Double, ByVal DRZ As String) As String | |
| 787 | 'DEFINISCE UTENSILE RETTANGOLARE | |
| 788 | ||
| 789 | Dim LAB_LAB(10) As String | |
| 790 | NN = 0 | |
| 791 | Key = "RETTANGOLO" | |
| 792 | LAB_4 = "" | |
| 793 | L4 = "" | |
| 794 | ||
| 795 | For i = 1 To 46 | |
| 796 | L4 = "" | |
| 797 | If UCase(TOOL_VAR(NHD, i, 6)) = Key Then | |
| 798 | ||
| 799 | If (TOOL_VAR(NHD, i, 3) = WDT And TOOL_VAR(NHD, i, 4) <= LGT) Or (TOOL_VAR(NHD, i, 4) = WDT And TOOL_VAR(NHD, i, 3) <= LGT) Then | |
| 800 | If TOOL_VAR(NHD, i, 3) = WDT Then LL = TOOL_VAR(NHD, i, 4) | |
| 801 | If TOOL_VAR(NHD, i, 4) = WDT Then LL = TOOL_VAR(NHD, i, 3) | |
| 802 | LB_ANG = TOOL_VAR(NHD, i, 5) | |
| 803 | LB_IND = TOOL_VAR(NHD, i, 2) | |
| 804 | ||
| 805 | Select Case DRZ | |
| 806 | Case "X+", "X-" | |
| 807 | If LB_ANG = "0I" Then L4 = TOOL_VAR(NHD, i, 1) & "C0." & "*" & LL | |
| 808 | If LB_ANG = "0" Then L4 = TOOL_VAR(NHD, i, 1) & "*" & LL | |
| 809 | ||
| 810 | Case "Y+", "Y-" | |
| 811 | If LB_ANG = "0I" Then L4 = TOOL_VAR(NHD, i, 1) & "C90." & "*" & LL | |
| 812 | If LB_ANG = "90" Then L4 = TOOL_VAR(NHD, i, 1) & "*" & LL | |
| 813 | Case Else | |
| 814 | MsgBox ("ERRORE SU RODITURA RETTANGOLARE")
| |
| 815 | End Select | |
| 816 | ||
| 817 | If L4 <> "" Then | |
| 818 | NN = NN + 1 | |
| 819 | LAB_LAB(NN) = L4 | |
| 820 | End If | |
| 821 | End If | |
| 822 | End If | |
| 823 | ||
| 824 | Next i | |
| 825 | ||
| 826 | ||
| 827 | ||
| 828 | If NN = 1 Then LAB_4 = LAB_LAB(1) | |
| 829 | If NN > 1 Then | |
| 830 | ||
| 831 | LAB_4 = "" | |
| 832 | AAAAAA: | |
| 833 | For SSRY = 1 To NN - 1 'METTO IN FILA DAL PIù CORTO AL PIù LUNGO | |
| 834 | If Val(Right(LAB_LAB(SSRY), InStr(1, StrReverse(LAB_LAB(SSRY)), "*", vbBinaryCompare) - 1)) > Val(Right(LAB_LAB(SSRY + 1), InStr(1, StrReverse(LAB_LAB(SSRY + 1)), "*", vbBinaryCompare) - 1)) Then | |
| 835 | ZFRTY = LAB_LAB(SSRY) | |
| 836 | LAB_LAB(SSRY) = LAB_LAB(SSRY + 1) | |
| 837 | LAB_LAB(SSRY + 1) = ZFRTY | |
| 838 | GoTo AAAAAA | |
| 839 | End If | |
| 840 | Next SSRY | |
| 841 | ||
| 842 | NN = 2 | |
| 843 | For SSRX = 1 To NN | |
| 844 | If LGT > Val(Right(LAB_LAB(SSRY), InStr(1, StrReverse(LAB_LAB(SSRY)), "*", vbBinaryCompare) - 1)) Then LAB_4 = LAB_LAB(SSRX) | |
| 845 | Next SSRX | |
| 846 | ||
| 847 | End If | |
| 848 | ||
| 849 | ||
| 850 | End Function | |
| 851 | ||
| 852 | ||
| 853 | Function LAB_5(ByVal X As Double, ByVal Y As Double) As String | |
| 854 | 'DEFINISCE L'UTENSILE X LAVORAZIONE RETTANGOLARE LAB_2= <ETICHETTA LATOUTENSILE> | |
| 855 | ||
| 856 | Key = "Rettangolo" | |
| 857 | ||
| 858 | Dim NDX(100) As String | |
| 859 | Dim LTR(100) As Double | |
| 860 | ||
| 861 | RRT = 0 | |
| 862 | For i = 1 To 46 | |
| 863 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "0" Then | |
| 864 | If TOOL_VAR(NHD, i, 3) = X And TOOL_VAR(NHD, i, 4) = Y Then | |
| 865 | RRT = RRT + 1 | |
| 866 | LAB_5 = TOOL_VAR(NHD, i, 1) | |
| 867 | End If | |
| 868 | End If | |
| 869 | Next i | |
| 870 | ||
| 871 | If LAB_5 = "" Then | |
| 872 | RRT = 0 | |
| 873 | For i = 1 To 46 | |
| 874 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "90" Then | |
| 875 | If TOOL_VAR(NHD, i, 3) = Y And TOOL_VAR(NHD, i, 4) = X Then | |
| 876 | RRT = RRT + 1 | |
| 877 | LAB_5 = TOOL_VAR(NHD, i, 1) | |
| 878 | End If | |
| 879 | End If | |
| 880 | Next i | |
| 881 | End If | |
| 882 | ||
| 883 | If LAB_5 = "" Then | |
| 884 | RRT = 0 | |
| 885 | For i = 1 To 46 | |
| 886 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "0I" Then | |
| 887 | If TOOL_VAR(NHD, i, 3) = Y And TOOL_VAR(NHD, i, 4) = X Then | |
| 888 | RRT = RRT + 1 | |
| 889 | LAB_5 = TOOL_VAR(NHD, i, 1) | |
| 890 | End If | |
| 891 | End If | |
| 892 | Next i | |
| 893 | End If | |
| 894 | ||
| 895 | ||
| 896 | Erase NDX, LTR | |
| 897 | End Function | |
| 898 | ||
| 899 | ||
| 900 | Function LAB_6(ByVal LATO As String) As String | |
| 901 | 'DEFINISCE UTENSILE QUADRO A 45 | |
| 902 | ||
| 903 | Key = "Quadro" | |
| 904 | LAB_6 = "" | |
| 905 | For i = 1 To 46 | |
| 906 | If TOOL_VAR(NHD, i, 6) = Key Then | |
| 907 | If Replace(TOOL_VAR(NHD, i, 3), ",", ".") = Replace(LATO, ",", ".") Then | |
| 908 | If TOOL_VAR(NHD, i, 5) = "0I" Then | |
| 909 | LAB_6 = TOOL_VAR(NHD, i, 1) | |
| 910 | Exit For | |
| 911 | End If | |
| 912 | End If | |
| 913 | End If | |
| 914 | Next i | |
| 915 | ||
| 916 | End Function | |
| 917 | ||
| 918 | ||
| 919 | Function LAB_7(ByVal X As Double, ByVal Y As Double) As String | |
| 920 | 'DEFINISCE L'UTENSILE X LAVORAZIONE RETTANGOLARE LAB_2= <ETICHETTA LATOUTENSILE> | |
| 921 | ||
| 922 | Key = "Rettangolo" | |
| 923 | ||
| 924 | Dim NDX(100, 6) As String | |
| 925 | ||
| 926 | ||
| 927 | RRT = 0 | |
| 928 | ||
| 929 | For i = 1 To 46 | |
| 930 | ||
| 931 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "0" Then | |
| 932 | If NUM(TOOL_VAR(NHD, i, 3)) <= X And NUM(TOOL_VAR(NHD, i, 4)) <= Y Then | |
| 933 | RRT = RRT + 1 | |
| 934 | NDX(RRT, 1) = i | |
| 935 | NDX(RRT, 2) = TOOL_VAR(NHD, i, 5) | |
| 936 | NDX(RRT, 3) = TOOL_VAR(NHD, i, 3) | |
| 937 | NDX(RRT, 4) = TOOL_VAR(NHD, i, 4) | |
| 938 | End If | |
| 939 | End If | |
| 940 | Next i | |
| 941 | ||
| 942 | ||
| 943 | For i = 1 To 46 | |
| 944 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "90" Then | |
| 945 | If NUM(TOOL_VAR(NHD, i, 3)) <= Y And NUM(TOOL_VAR(NHD, i, 4)) <= X Then | |
| 946 | RRT = RRT + 1 | |
| 947 | NDX(RRT, 1) = i | |
| 948 | NDX(RRT, 2) = TOOL_VAR(NHD, i, 5) | |
| 949 | NDX(RRT, 3) = TOOL_VAR(NHD, i, 4) | |
| 950 | NDX(RRT, 4) = TOOL_VAR(NHD, i, 3) | |
| 951 | End If | |
| 952 | End If | |
| 953 | Next i | |
| 954 | ||
| 955 | ||
| 956 | ||
| 957 | ||
| 958 | For i = 1 To 46 | |
| 959 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "0I" Then 'INDEXRR A 0 GRADI | |
| 960 | If NUM(TOOL_VAR(NHD, i, 3)) <= X And NUM(TOOL_VAR(NHD, i, 4)) <= Y Then | |
| 961 | RRT = RRT + 1 | |
| 962 | NDX(RRT, 1) = i | |
| 963 | NDX(RRT, 2) = TOOL_VAR(NHD, i, 5) | |
| 964 | NDX(RRT, 3) = TOOL_VAR(NHD, i, 3) | |
| 965 | NDX(RRT, 4) = TOOL_VAR(NHD, i, 4) | |
| 966 | End If | |
| 967 | End If | |
| 968 | Next i | |
| 969 | ||
| 970 | ||
| 971 | ||
| 972 | For i = 1 To 46 | |
| 973 | If TOOL_VAR(NHD, i, 6) = Key And TOOL_VAR(NHD, i, 5) = "0I" Then 'INDEXRR | |
| 974 | If NUM(TOOL_VAR(NHD, i, 3)) <= Y And NUM(TOOL_VAR(NHD, i, 4)) <= X Then | |
| 975 | RRT = RRT + 1 | |
| 976 | NDX(RRT, 1) = i | |
| 977 | NDX(RRT, 2) = "90I" | |
| 978 | NDX(RRT, 3) = TOOL_VAR(NHD, i, 3) | |
| 979 | NDX(RRT, 4) = TOOL_VAR(NHD, i, 4) | |
| 980 | End If | |
| 981 | End If | |
| 982 | Next i | |
| 983 | ||
| 984 | ||
| 985 | ||
| 986 | ||
| 987 | NDX(0, 1) = 0 ' VARIABILE IN CUI REGISTRO IL VALORE DI COPERTURA PIU'ALTO | |
| 988 | NDX(0, 2) = 0 ' VARIABILE IN CUI REGISTRO L'INDICE CHE GENERA IL VALORE DI COPERTURA PIU'ALTO | |
| 989 | ||
| 990 | If RRT > 0 Then | |
| 991 | ||
| 992 | ||
| 993 | For RGQ = 1 To RRT | |
| 994 | ||
| 995 | ||
| 996 | Select Case NDX(RGQ, 2) | |
| 997 | ||
| 998 | Case "0", "90", "0I" | |
| 999 | XXX = NUM(NDX(RGQ, 3)) 'INGOMBRO X DELL UTENSILE | |
| 1000 | YYY = NUM(NDX(RGQ, 4)) 'INGOMBRO Y DELL UTENSILE | |
| 1001 | Case "90I" | |
| 1002 | YYY = NUM(NDX(RGQ, 3)) 'INGOMBRO X DELL UTENSILE | |
| 1003 | XXX = NUM(NDX(RGQ, 4)) 'INGOMBRO Y DELL UTENSILE | |
| 1004 | Case Else | |
| 1005 | ||
| 1006 | MsgBox "FUNCTION LAB_7: ANGLE ERROR", vbCritical | |
| 1007 | End Select | |
| 1008 | ||
| 1009 | svpq = 1.27 'percentuale di sovrapposizione | |
| 1010 | FX = (X / XXX) | |
| 1011 | FY = (Y / YYY) | |
| 1012 | If FX = 1 Or FY = 1 Then GoTo FAI_LAVR | |
| 1013 | If FX > svpq And FY > svpq Then | |
| 1014 | FAI_LAVR: | |
| 1015 | ||
| 1016 | NDX(RGQ, 5) = (XXX * YYY) / (X * Y) | |
| 1017 | ||
| 1018 | If InStr(1, STIPITI, ACT_MOD) > 0 Or InStr(1, STIPITI_PORTALI, ACT_MOD) > 0 Then 'aggiunta | |
| 1019 | If XXX = 50 And YYY = 5 Then NDX(RGQ, 5) = 0 | |
| 1020 | End If | |
| 1021 | ||
| 1022 | If (X = 112 And Y = 6.7) Or (X = 7.3 And Y = 112) Or (X = 6.7 And Y = 112) Then GoTo no_bislunghi | |
| 1023 | If Val(XXX) / Val(YYY) > 7 Or Val(YYY) / Val(XXX) > 7 Then If XXX <> X And YYY <> Y Then NDX(RGQ, 5) = 0 ' UTENSILI BISLUNGHI VIETATI NELLE RODITURE | |
| 1024 | no_bislunghi: | |
| 1025 | ||
| 1026 | If 1 * NDX(RGQ, 5) > 1 * NDX(0, 1) Then | |
| 1027 | NDX(0, 1) = NDX(RGQ, 5) | |
| 1028 | NDX(0, 2) = NDX(RGQ, 1) | |
| 1029 | NDX(0, 3) = NDX(RGQ, 3) | |
| 1030 | NDX(0, 4) = NDX(RGQ, 4) | |
| 1031 | NDX(0, 5) = NDX(RGQ, 2) | |
| 1032 | Else | |
| 1033 | If 1 * NDX(RGQ, 5) = 1 * NDX(0, 1) Then | |
| 1034 | If XXX = X Or YYY = Y Then | |
| 1035 | NDX(0, 1) = NDX(RGQ, 5) | |
| 1036 | NDX(0, 2) = NDX(RGQ, 1) | |
| 1037 | NDX(0, 3) = NDX(RGQ, 3) | |
| 1038 | NDX(0, 4) = NDX(RGQ, 4) | |
| 1039 | NDX(0, 5) = NDX(RGQ, 2) | |
| 1040 | Else | |
| 1041 | ||
| 1042 | '************* VA A VEDERE L'ANGOLAZIONE CON LA MIGLIORE SOVRAPPOSIZIONE ***************** | |
| 1043 | If NDX(RGQ, 5) > 0 Then | |
| 1044 | If NDX(0, 3) <> "" And NDX(0, 4) <> "" Then | |
| 1045 | If NDX(0, 3) <> X And NDX(0, 4) <> Y And NDX(0, 4) <> X And NDX(0, 3) <> Y Then | |
| 1046 | SVRPP = 0 | |
| 1047 | If NDX(0, 5) = "0I" Then SVRPP = ((X / Val(NDX(0, 3))) + (Y / Val(NDX(0, 4)))) | |
| 1048 | If NDX(0, 5) = "90I" Then SVRPP = ((X / Val(NDX(0, 4))) + (Y / Val(NDX(0, 3)))) | |
| 1049 | If (FX + FY) > SVRPP Then | |
| 1050 | NDX(0, 1) = NDX(RGQ, 5) | |
| 1051 | NDX(0, 2) = NDX(RGQ, 1) | |
| 1052 | NDX(0, 3) = NDX(RGQ, 3) | |
| 1053 | NDX(0, 4) = NDX(RGQ, 4) | |
| 1054 | NDX(0, 5) = NDX(RGQ, 2) | |
| 1055 | End If | |
| 1056 | End If | |
| 1057 | End If | |
| 1058 | End If | |
| 1059 | '********************************************************************** | |
| 1060 | ||
| 1061 | End If | |
| 1062 | End If | |
| 1063 | End If | |
| 1064 | End If | |
| 1065 | ||
| 1066 | Next RGQ | |
| 1067 | ||
| 1068 | ||
| 1069 | If NDX(0, 1) > 0 Then LAB_7 = TOOL_VAR(NHD, NDX(0, 2), 1) & "_" & NDX(0, 5) & " " & TOOL_VAR(NHD, NDX(0, 2), 3) & " " & TOOL_VAR(NHD, NDX(0, 2), 4) | |
| 1070 | ||
| 1071 | End If | |
| 1072 | ||
| 1073 | ||
| 1074 | ||
| 1075 | Erase NDX | |
| 1076 | End Function | |
| 1077 | ||
| 1078 | ||
| 1079 | Function MR_Y(ByVal VALORE As Double, ByVal DY As Double, ByVal ACT As Byte) As Double | |
| 1080 | ||
| 1081 | Select Case ACT | |
| 1082 | Case 1 | |
| 1083 | MR_Y = VALORE | |
| 1084 | Case 2 | |
| 1085 | MR_Y = DY - VALORE | |
| 1086 | Case Else | |
| 1087 | MsgBox ("ERRORE"), vbCritical, ("MR_Y")
| |
| 1088 | End Select | |
| 1089 | ||
| 1090 | End Function | |
| 1091 | ||
| 1092 | ||
| 1093 | Function MR_X(ByVal VALORE As Double, ByVal DX As Double, ByVal ACT As Byte) As Double | |
| 1094 | ||
| 1095 | Select Case ACT | |
| 1096 | Case 1 | |
| 1097 | MR_X = VALORE | |
| 1098 | Case 2 | |
| 1099 | MR_X = DX - VALORE | |
| 1100 | Case Else | |
| 1101 | MsgBox ("ERRORE"), vbCritical, ("MR_X")
| |
| 1102 | End Select | |
| 1103 | ||
| 1104 | End Function | |
| 1105 | ||
| 1106 | Function T_BLQ(ByVal XI As Double, ByVal YI As Double, ByVal Xf As Double, ByVal YF As Double, ByVal SVPI As Double, ByVal SVPF As Double) As String | |
| 1107 | 'FUNZIONE PER IL TAGLIO OBLIQUO DA FARE E VERIFICARE | |
| 1108 | ||
| 1109 | ||
| 1110 | T_BLQ = TG_R(7.5, XI, YI, Xf, YF, SVPI, SVPF) | |
| 1111 | ||
| 1112 | 'If ind = 0 Then | |
| 1113 | 'G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 1114 | 'Else | |
| 1115 | 'G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "C" & ind & "./>" | |
| 1116 | 'End If | |
| 1117 | ||
| 1118 | ||
| 1119 | End Function | |
| 1120 | ||
| 1121 | ||
| 1122 | Function TG_R(ByVal DU As Double, ByVal XI As Double, ByVal YI As Double, ByVal Xf As Double, ByVal YF As Double, ByVal SVPI As Double, ByVal SVPF As Double) As String | |
| 1123 | 'DU = LATO DELL'UTENSILE QUADRO UTILIZZATO PER IL TAGLIO OBLIQUO ; SI GIRA INTORNO AL PUNZONE IN SENSO ANTIORARIO | |
| 1124 | ||
| 1125 | ||
| 1126 | Select Case DU | |
| 1127 | Case 7.5 | |
| 1128 | LAB = LAB_3("7SQ", 0) '45
| |
| 1129 | Case 20 | |
| 1130 | LAB = LAB_2(20, 20) | |
| 1131 | Case Else | |
| 1132 | MsgBox ("ERRORE UTENSILE QUADRO X TAGLIO OBLIQUO"), vbCritical
| |
| 1133 | End Select | |
| 1134 | ||
| 1135 | ANG = 9999 | |
| 1136 | If Xf > XI And YI = YF Then ANG = 0 | |
| 1137 | If Xf = XI And YI < YF Then ANG = 90 | |
| 1138 | If Xf < XI And YI = YF Then ANG = 180 | |
| 1139 | If Xf = XI And YI > YF Then ANG = 270 | |
| 1140 | If Not ANG = 9999 Then GoTo NNG | |
| 1141 | ||
| 1142 | EEA = (YF - YI) / (Xf - XI) | |
| 1143 | ANG = (Atn(EEA) * 180) / 3.14159265358979 | |
| 1144 | ANG = Round(ANG, 5) | |
| 1145 | ||
| 1146 | If Xf > XI And YF > YI Then ANG = ANG | |
| 1147 | If Xf < XI And YF > YI Then ANG = 180 + ANG | |
| 1148 | If Xf < XI And YF < YI Then ANG = ANG + 180 | |
| 1149 | If Xf > XI And YF < YI Then ANG = 360 + ANG | |
| 1150 | If ANG = 360 Then ANG = 0 | |
| 1151 | NNG: | |
| 1152 | ||
| 1153 | ANG = 360 - ANG | |
| 1154 | DR = DU / 2 | |
| 1155 | ANG_R = (ANG * 3.14159265358979) / 180 | |
| 1156 | ||
| 1157 | DXI = SVPI * Cos(ANG_R) | |
| 1158 | DYI = SVPI * Sin(ANG_R) | |
| 1159 | DXF = SVPF * Cos(ANG_R) | |
| 1160 | DYFF = SVPF * Sin(ANG_R) | |
| 1161 | ||
| 1162 | LTA = Round(((YF - YI) ^ 2 + (Xf - XI) ^ 2) ^ (0.5), 2) | |
| 1163 | XXX = (Xf + XI) / 2 | |
| 1164 | YYY = (YF + YI) / 2 | |
| 1165 | ||
| 1166 | XI = XI - DXI | |
| 1167 | YI = YI + DYI | |
| 1168 | Xf = Xf + DXF | |
| 1169 | YF = YF - DYFF | |
| 1170 | ||
| 1171 | LT = Round(((YF - YI) ^ 2 + (Xf - XI) ^ 2) ^ (0.5), 2) | |
| 1172 | ''If DU > LT Then DU = LT | |
| 1173 | NN = Int(LT / DU) | |
| 1174 | ||
| 1175 | PP = Round((LT - DU) / NN, 3) 'PASSO RODITURA | |
| 1176 | AU = 90 - ANG 'ANGOLOUTENSILE | |
| 1177 | AR = ANG 'ANGOLORODITURA | |
| 1178 | ||
| 1179 | XC = XI + DR * (Cos(ANG_R) + Sin(ANG_R)) | |
| 1180 | YC = YI + DR * (-Sin(ANG_R) + Cos(ANG_R)) | |
| 1181 | ||
| 1182 | XC = Jcdf(Round(XC, 2)) | |
| 1183 | YC = Jcdf(Round(YC, 2)) | |
| 1184 | AR = Jcdf(Round(AR, 2)) | |
| 1185 | AU = Jcdf(Round(AU, 0)) | |
| 1186 | ||
| 1187 | If LTA > DU Then | |
| 1188 | ST1 = ST64("G90/X" & XC & "/Y" & YC & "/" & LAB & AU & "./>")
| |
| 1189 | ST2 = ST64("G28/I" & PP & "/J-" & AR & "./K" & NN & "/" & LAB & AU & "./>")
| |
| 1190 | Else | |
| 1191 | ||
| 1192 | XKK = Jcdf(Round(XXX + DR * Sin(ANG_R), 2)) | |
| 1193 | YKK = Jcdf(Round(YYY + DR * Cos(ANG_R), 2)) | |
| 1194 | ST1 = ST64("G90/X" & XKK & "/Y" & YKK & "/" & LAB & AU & "./>")
| |
| 1195 | ST2 = "" | |
| 1196 | End If | |
| 1197 | TG_R = ST1 & ST2 | |
| 1198 | ||
| 1199 | End Function | |
| 1200 | ||
| 1201 | ||
| 1202 | ||
| 1203 | Function T_PUNCH(ByVal X As Double, ByVal Y As Double, ByVal LAB As String, ByVal ind As Double) As String | |
| 1204 | 'ESEGUE UNA LAVORAZIONE A COLPO SINGOLO SECONDO ETICHETTA STABILITA | |
| 1205 | ||
| 1206 | ||
| 1207 | LAB_TOOL = LAB | |
| 1208 | ||
| 1209 | ||
| 1210 | If ind = 0 Then | |
| 1211 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "/>" | |
| 1212 | Else | |
| 1213 | G90 = "G90/X" & X & "/Y" & Y & "/" & LAB_TOOL & "C" & ind & "./>" | |
| 1214 | End If | |
| 1215 | ||
| 1216 | T_PUNCH = ST64(Jcdf(G90)) | |
| 1217 | ||
| 1218 | End Function | |
| 1219 | ||
| 1220 | ||
| 1221 | ||
| 1222 | Function T_DATAMATRIX(ByVal VALORE As String, ByVal X0 As Double, ByVal Y0 As Double, ByVal VERSO As String) | |
| 1223 | ||
| 1224 | PS = 2.5 'PASSO | |
| 1225 | ||
| 1226 | ||
| 1227 | Dim R(18) As String | |
| 1228 | Dim RC(18, 18) As Byte | |
| 1229 | Dim RC2(18, 18) As Byte | |
| 1230 | ||
| 1231 | '------------------------------------------------------- | |
| 1232 | ' Dichiarazione dell'oggetto array di stringhe | |
| 1233 | Dim DATA_MAT() As String | |
| 1234 | Dim fn As Object | |
| 1235 | ||
| 1236 | ||
| 1237 | ' Creazione dell'oggetto esterno per la logica | |
| 1238 | Set fn = CreateObject("Wittur.Amada.Utils.Datamatix")
| |
| 1239 | ' Viene richiamata la funzione di conversione | |
| 1240 | ' 1° Parametro = codice a 8 cifre da decodificare | |
| 1241 | ' 2° Parametro = valore booleano che indica se è necessario escludere il perimetro esterno fisso | |
| 1242 | ||
| 1243 | ||
| 1244 | DATA_MAT = fn.GetBinaryMatrix(VALORE, False, True) 'CONSIDERO ANCHE IL CONTORNO - (CODICE A 8 CIFRE, CONTORNO, QUADRATO O RETTANGOLARE) | |
| 1245 | '------------------------------------------------------- | |
| 1246 | ||
| 1247 | ||
| 1248 | Select Case VERSO | |
| 1249 | Case "V" | |
| 1250 | ||
| 1251 | For TY = 0 To 7 | |
| 1252 | R(TY + 1) = DATA_MAT(TY) 'RIGA MATRICE DATAMATRIX | |
| 1253 | Next TY | |
| 1254 | ||
| 1255 | ||
| 1256 | Q_INT = "" | |
| 1257 | NORIPET = "" | |
| 1258 | ||
| 1259 | For TC = 1 To 8 'RIGA | |
| 1260 | For TC1 = 1 To Len(R(TC)) 'COLONNA | |
| 1261 | RC2(TC, TC1) = Mid(R(TC), TC1, 1) 'MATRICE PUNTO PER PUNTO | |
| 1262 | Next TC1 | |
| 1263 | Next TC | |
| 1264 | ||
| 1265 | ||
| 1266 | For TR = 1 To 18 'FACCIO LA TRASPOSTA DELLA MATRICE | |
| 1267 | For TR2 = 1 To 8 | |
| 1268 | RC(TR, TR2) = RC2(TR2, TR) | |
| 1269 | Next TR2 | |
| 1270 | Next TR | |
| 1271 | ||
| 1272 | ||
| 1273 | For kk = 1 To 18 'CONTATORE DI RIGA | |
| 1274 | For NN = 1 To 8 'CONTATORE DI COLONNA | |
| 1275 | ||
| 1276 | 'GoTo NOASOLE | |
| 1277 | '***************************************************************************************ASOLA VERTICALE | |
| 1278 | ||
| 1279 | If Not kk > 16 Then | |
| 1280 | ||
| 1281 | If Not (InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk + 1 & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk + 2 & NN & "_") > 0) Then | |
| 1282 | If RC(kk, NN) = 1 And RC(kk + 1, NN) = 1 And RC(kk + 2, NN) = 1 Then | |
| 1283 | Q_INT = Q_INT & T_SLOT(X0 + (NN - 1) * PS, Y0 + (kk + 1) * PS, 7, 2, 90) | |
| 1284 | NORIPET = NORIPET & "_" & kk & NN & "_" & kk + 1 & NN & "_" & kk + 2 & NN & "_" | |
| 1285 | End If | |
| 1286 | End If | |
| 1287 | End If | |
| 1288 | ||
| 1289 | ||
| 1290 | '***************************************************************************************ASOLA ORIZZONTALE | |
| 1291 | ||
| 1292 | If Not NN > 6 Then | |
| 1293 | ||
| 1294 | ||
| 1295 | If Not (InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk & NN + 1 & "_") > 0 Or InStr(1, NORIPET, "_" & kk & NN + 2 & "_") > 0) Then | |
| 1296 | If RC(kk, NN) = 1 And RC(kk, NN + 1) = 1 And RC(kk, NN + 2) = 1 Then | |
| 1297 | Q_INT = Q_INT & T_SLOT(X0 + (NN) * PS, Y0 + (kk) * PS, 7, 2, 0) | |
| 1298 | NORIPET = NORIPET & "_" & kk & NN & "_" & kk & NN + 1 & "_" & kk & NN + 2 & "_" | |
| 1299 | End If | |
| 1300 | End If | |
| 1301 | End If | |
| 1302 | ||
| 1303 | NOASOLE: | |
| 1304 | '*****************************************************************************************TONDO | |
| 1305 | ||
| 1306 | If Not InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Then | |
| 1307 | If RC(kk, NN) = 1 Then Q_INT = Q_INT & T_CIRC(X0 + (NN - 1) * PS, Y0 + (kk) * PS, 2) | |
| 1308 | End If | |
| 1309 | ||
| 1310 | ||
| 1311 | Next NN | |
| 1312 | Next kk | |
| 1313 | ||
| 1314 | T_DATAMATRIX = QORIGINE & QASSEY & QASSEX & Q_INT & QTM_Y & QTM_X | |
| 1315 | ||
| 1316 | ||
| 1317 | ||
| 1318 | Case "O" | |
| 1319 | ||
| 1320 | For TY = 0 To 7 | |
| 1321 | R(TY + 1) = DATA_MAT(TY) 'RIGA MATRICE DATAMATRIX | |
| 1322 | Next TY | |
| 1323 | ||
| 1324 | ||
| 1325 | Q_INT = "" | |
| 1326 | NORIPET = "" | |
| 1327 | ||
| 1328 | ||
| 1329 | For TC = 1 To 8 'RIGA | |
| 1330 | For TC1 = 1 To Len(R(TC)) 'COLONNA | |
| 1331 | RC(TC, TC1) = Mid(R(TC), TC1, 1) 'MATRICE PUNTO PER PUNTO | |
| 1332 | Next TC1 | |
| 1333 | Next TC | |
| 1334 | ||
| 1335 | ||
| 1336 | ||
| 1337 | For kk = 1 To 8 'CONTATORE DI RIGA | |
| 1338 | For NN = 1 To 18 'CONTATORE DI COLONNA | |
| 1339 | ||
| 1340 | 'GoTo NOASOLE2 | |
| 1341 | '***************************************************************************************ASOLA VERTICALE | |
| 1342 | ||
| 1343 | If Not kk > 6 Then | |
| 1344 | ||
| 1345 | If Not (InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk + 1 & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk + 2 & NN & "_") > 0) Then | |
| 1346 | If RC(kk, NN) = 1 And RC(kk + 1, NN) = 1 And RC(kk + 2, NN) = 1 Then | |
| 1347 | Q_INT = Q_INT & T_SLOT(X0 + (NN - 1) * PS, Y0 + (8 - kk - 1) * PS, 7, 2, 90) | |
| 1348 | NORIPET = NORIPET & "_" & kk & NN & "_" & kk + 1 & NN & "_" & kk + 2 & NN & "_" | |
| 1349 | End If | |
| 1350 | End If | |
| 1351 | End If | |
| 1352 | ||
| 1353 | ||
| 1354 | '***************************************************************************************ASOLA ORIZZONTALE | |
| 1355 | ||
| 1356 | If Not NN > 16 Then | |
| 1357 | ||
| 1358 | If Not (InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Or InStr(1, NORIPET, "_" & kk & NN + 1 & "_") > 0 Or InStr(1, NORIPET, "_" & kk & NN + 2 & "_") > 0) Then | |
| 1359 | If RC(kk, NN) = 1 And RC(kk, NN + 1) = 1 And RC(kk, NN + 2) = 1 Then | |
| 1360 | Q_INT = Q_INT & T_SLOT(X0 + (NN) * PS, Y0 + (8 - kk) * PS, 7, 2, 0) | |
| 1361 | NORIPET = NORIPET & "_" & kk & NN & "_" & kk & NN + 1 & "_" & kk & NN + 2 & "_" | |
| 1362 | End If | |
| 1363 | End If | |
| 1364 | End If | |
| 1365 | ||
| 1366 | NOASOLE2: | |
| 1367 | '*****************************************************************************************TONDO | |
| 1368 | ||
| 1369 | If Not InStr(1, NORIPET, "_" & kk & NN & "_") > 0 Then | |
| 1370 | If RC(kk, NN) = 1 Then Q_INT = Q_INT & T_CIRC(X0 + (NN - 1) * PS, Y0 + (8 - kk) * PS, 2) | |
| 1371 | End If | |
| 1372 | ||
| 1373 | ||
| 1374 | ||
| 1375 | Next NN | |
| 1376 | Next kk | |
| 1377 | ||
| 1378 | T_DATAMATRIX = QORIGINE & QASSEY & QASSEX & Q_INT & QTM_Y & QTM_X | |
| 1379 | ||
| 1380 | Case Else | |
| 1381 | MsgBox ("ERRORE VERSO DATAMATRIX")
| |
| 1382 | End Select | |
| 1383 | ||
| 1384 | ||
| 1385 | End Function | |
| 1386 | ||
| 1387 | ||
| 1388 | ||
| 1389 | ||
| 1390 | ||
| 1391 | ||
| 1392 | Function T_RAD(ByVal XC As Double, ByVal YC As Double, ANGOLO As String) | |
| 1393 | 'RAGGIATURA | |
| 1394 | ||
| 1395 | Select Case ANGOLO | |
| 1396 | Case "1" | |
| 1397 | ANGOLO = "-90" | |
| 1398 | Case "2" | |
| 1399 | ANGOLO = "0" | |
| 1400 | Case "3" | |
| 1401 | ANGOLO = "90" | |
| 1402 | Case "4" | |
| 1403 | ANGOLO = "180" | |
| 1404 | Case Else | |
| 1405 | MsgBox ("errore")
| |
| 1406 | End Select | |
| 1407 | ||
| 1408 | ||
| 1409 | Offset = 0.65 | |
| 1410 | Select Case ANGOLO | |
| 1411 | Case "0" | |
| 1412 | T_RAD = T_SPECIAL(XC - Offset, YC + Offset, "RAG-3", "C0.") | |
| 1413 | Case "180" | |
| 1414 | T_RAD = T_SPECIAL(XC + Offset, YC - Offset, "RAG-3", "C0.") | |
| 1415 | Case "90" | |
| 1416 | T_RAD = T_SPECIAL(XC - Offset, YC - Offset, "RAG-3", "C0.") | |
| 1417 | Case "-90" | |
| 1418 | T_RAD = T_SPECIAL(XC + Offset, YC + Offset, "RAG-3", "C0.") | |
| 1419 | Case Else | |
| 1420 | MsgBox (("ERROR ANGLE 5RD"))
| |
| 1421 | End Select | |
| 1422 | ||
| 1423 | ||
| 1424 | End Function | |
| 1425 | ||
| 1426 | Function T_RAG(ByVal X As Double, ByVal Y As Double, ByVal LATO As Integer) | |
| 1427 | ||
| 1428 | DSP = 2.9 '2.6 | |
| 1429 | Select Case LATO | |
| 1430 | Case 1 'BASSO SINISTRO | |
| 1431 | Y = Y - DSP | |
| 1432 | X = X - DSP | |
| 1433 | Case 2 'ALTO SINISTRO | |
| 1434 | Y = Y + DSP | |
| 1435 | X = X - DSP | |
| 1436 | Case 3 'ALTO DESTRO | |
| 1437 | Y = Y + DSP | |
| 1438 | X = X + DSP | |
| 1439 | Case 4 'BASSO DESTRO | |
| 1440 | Y = Y - DSP | |
| 1441 | X = X + DSP | |
| 1442 | Case Else | |
| 1443 | MsgBox ("ERRORE NELL'ANGOLO DEL RAGGIATORE")
| |
| 1444 | End Select | |
| 1445 | ||
| 1446 | T_RAG = T_SPECIAL(X, Y, "3S", "C0.") | |
| 1447 | ||
| 1448 | End Function | |
| 1449 | ||
| 1450 |