Advertisement
Dece111

Funzioni

Feb 28th, 2024
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Funzioni
  2.  
  3. Function def_posintab(ByVal NNN As Integer)
  4.  
  5. GRUP_PEZ = INFO_DAT(NNN, 0, 31)
  6. Select Case GRUP_PEZ
  7. Case "1"
  8. def_posintab = 0
  9. def_posintab = INFO_DAT(NNN, 0, 35)
  10. If def_posintab = 0 Then MsgBox ("ERRORE POSIZIONAMENTO SCARICO SU COD. " & INFO_DAT(NNN, 0, 5))
  11.  
  12. Case "2"
  13. def_posintab = 0
  14. def_posintab = INFO_DAT(NNN, 0, 35)
  15. If def_posintab = 0 Then MsgBox ("ERRORE POSIZIONAMENTO SCARICO SU COD. " & INFO_DAT(NNN, 0, 5))
  16.  
  17.  
  18. Case "3"
  19. def_posintab = 5
  20.  
  21. Case "4"
  22. def_posintab = 1
  23. Case "5"
  24. def_posintab = 1
  25.  
  26. Case "6" 'ante
  27.  
  28. pstb = ""
  29. pstb = pos_ante(INFO_DAT(NNN, 0, 6), INFO_DAT(NNN, 0, 7))
  30. If pstb = "" Then MsgBox ("errore posizionamento anta")
  31. def_posintab = "1" & pstb
  32. If InStr(1, ANTE_2, INFO_DAT(NNN, 0, 6)) > 0 Then def_posintab = "2" & pstb Else def_posintab = "1" & pstb
  33.  
  34. Case "7" 'RIV ANTA
  35. 'def_posintab = "1" & INFO_DAT(NNN, 0, 35)
  36. If InStr(1, RIV_2, ACT_MOD) > 0 Then
  37. def_posintab = INFO_DAT(NNN, 0, 35)
  38. Else
  39. Select Case INFO_DAT(NNN, 0, 35)
  40. Case "1"
  41. def_posintab = "1"
  42. Case "2"
  43. def_posintab = "2"
  44. Case "3"
  45. def_posintab = "2"
  46. Case "4"
  47. def_posintab = "1"
  48. End Select
  49. End If
  50.  
  51.  
  52. Case "8"
  53. def_posintab = 1
  54. Case "9"
  55. def_posintab = 2
  56.  
  57. If Val(INFO_DAT(NNN, 0, 13)) < 500 Then
  58. def_posintab = 15
  59. End If
  60.  
  61. Case "10"
  62. def_posintab = 3
  63. Case "11"
  64. def_posintab = 3
  65.  
  66. Case "12"
  67. def_posintab = 2
  68. Case "13"
  69. def_posintab = 2
  70. Case "14"
  71. def_posintab = 2
  72.  
  73. Case "15"
  74. def_posintab = 3
  75.  
  76. Case "16"
  77. def_posintab = 2
  78. Case "17"
  79. def_posintab = 2
  80. Case "18"
  81. def_posintab = 2
  82. Case "19"
  83. def_posintab = 2
  84. Case "20"
  85. def_posintab = 4
  86. If Val(INFO_DAT(NNN, 0, 13)) < 500 Then
  87. def_posintab = 15
  88. End If
  89.  
  90. Case "21" 'PIAST CABINA
  91. def_posintab = 31 '1
  92. Case "22" 'PIAST PIANO
  93. def_posintab = 32 '2
  94. If INFO_DAT(NNN, 0, 6) = "0902935" Then def_posintab = 33 'PIASTRONE PIANO 4 ANTE
  95.  
  96. Case "23"
  97. def_posintab = 1
  98.  
  99. Case Else
  100. MsgBox ("ERRORE POSIZIONAMETO TAVOLA DI SCARICO")
  101. def_posintab = 1
  102. End Select
  103.  
  104.  
  105. End Function
  106.  
  107.  
  108.  
  109. Function TablePosition(ByVal H As Double, ByVal L As Double, ByVal Xf As Double, ByVal YF As Double, ByVal PartType As Byte) As String
  110.     Dim Xb As Double
  111.     Dim Yb As Double
  112.     Dim XM As Double
  113.     Dim YM As Double
  114.     Dim limite As Double
  115.    
  116.     limite = 590
  117.     Select Case PartType
  118.         Case 1: 'LAP - DX
  119.            Xb = 3400 - 30
  120.             Yb = 1400 / 4
  121.             If L > limite Then
  122.                 Yb = Yb + (L - limite) / 2
  123.             End If
  124.         Case 2: 'LC - SX
  125.            Xb = 3400 - 30
  126.             Yb = 1400 * 3 / 4
  127.             If L > limite Then
  128.                 Yb = Yb - (L - limite) / 2
  129.             End If
  130.         Case 3: 'TOP
  131.            Xb = 585
  132.             Yb = 1400 / 2
  133.         Case 4: 'componentistica
  134.            Xb = 3400 / 2
  135.             Yb = 1400 * 3 / 4
  136.         Case 5: 'LATO BATTUTA
  137.            Xb = 3400 - 50
  138.             Yb = 1400 * 2 / 4
  139.            
  140.            
  141.         Case 11: 'anta
  142.            Xb = 3400 - 80
  143.             Yb = 1000 '1400 / 4 ''40 '1400 / 4 - CPM
  144.            If L > limite Then
  145.                 Yb = Yb + (L - limite) / 2
  146.             End If
  147.         Case 12: 'anta
  148.            Xb = 3400 - 80
  149.             Yb = 500 '1400 / 2 - 30 '390 - 20 '1400 * 2 / 4 - CPM
  150.            If L > limite Then
  151.                 Yb = Yb - (L - limite) / 2
  152.             End If
  153.         Case 13: 'anta
  154.            Xb = 3400 - 80
  155.             Yb = 500 '1400 * 3 / 4 - 60 '740 - 50 '1400 * 3 / 4 - CPM
  156.            If L > limite Then
  157.                 Yb = Yb - (L - limite) / 2
  158.             End If
  159.         Case 14: 'anta
  160.            Xb = 3400 - 80
  161.             Yb = 1000 '1400 - 90 '1090 - 70 '1400 * 4 / 4 - CPM
  162.            If L < 215 Then Yb = Yb - 25
  163.             If L > limite Then
  164.                 Yb = Yb - (L - limite) / 2
  165.             End If
  166.            
  167.          Case 21: 'anta 2
  168.            Xb = 3400 - 80
  169.             Yb = 1000
  170.             If L > limite Then
  171.                 Yb = Yb + (L - limite) / 2
  172.             End If
  173.         Case 22: 'anta 2
  174.            Xb = 3400 - 80
  175.             Yb = 500
  176.             If L > limite Then
  177.                 Yb = Yb - (L - limite) / 2
  178.             End If
  179.         Case 23: 'anta 2
  180.            Xb = 3400 - 80
  181.             Yb = 500
  182.             If L > limite Then
  183.                 Yb = Yb - (L - limite) / 2
  184.             End If
  185.         Case 24: 'anta 2
  186.            Xb = 3400 - 80
  187.             Yb = 1000
  188.             If L < 215 Then Yb = Yb - 25
  189.             If L > limite Then
  190.                 Yb = Yb - (L - limite) / 2
  191.             End If
  192.                  
  193.         Case 15: 'rinforzi piccoli
  194.            Xb = 1500
  195.             Yb = (1400 * 3 / 4) - 100
  196.             If L < 215 Then Yb = Yb - 25
  197.             If L > limite Then
  198.                 Yb = Yb - (L - limite) / 2
  199.             End If
  200.            
  201.            
  202.         Case 31: 'PIASTRONI
  203.            Xb = 200
  204.             Yb = 900
  205.         Case 32: 'PIASTRONI
  206.            Xb = 200
  207.             Yb = 530
  208.         Case 33: 'PIASTRONI
  209.            Xb = 200
  210.             Yb = 100
  211.            
  212.            
  213.         Case Else:
  214.             MsgBox "Error of part type in table position"
  215.     End Select
  216.    
  217.     Select Case PartType
  218.         Case 1, 2, 4, 5, 6:
  219.             XM = Xb + Xf - H
  220.             YM = Yb + YF - L / 2
  221.         Case 3:
  222.             XM = Xb + Xf - H / 2
  223.             YM = Yb + YF - L / 2
  224.          Case 11, 12, 13, 14, 21, 22, 23, 24, 15:
  225.             XM = Xb + Xf - H
  226.             YM = Yb + YF - L / 2
  227.             If YM > 1025 Then YM = 1025 'SOLO PER RIV ANTA
  228.        Case 31, 32, 33:
  229.             XM = Xb '+ Xf - H
  230.            YM = Yb '+ YF - L / 2
  231.            
  232.     End Select
  233.     TablePosition = ",1," & Jcdf(XM) & "," & Jcdf(YM) & ",1,1,0,1,0,0)"
  234. End Function
  235.  
  236.  
  237.  
  238. Function UNLOADER(ByVal ACTY As Byte, ByVal DIM_X As Single, ByVal DIM_Y As Single, ByVal OFFSET_Y As Double, ByVal OFFSET_X As Double) As String
  239.  
  240.  
  241.     If ACT_MOD = "1036865" Then
  242.     OFFSET_Y = 17 'OFFSET PER CODICE DISEGNO
  243.    OFFSET_X = -5
  244.     End If
  245.     If ACT_MOD = "1036714" Then
  246.     OFFSET_Y = 0 'OFFSET PER CODICE DISEGNO
  247.    OFFSET_X = 40
  248.     End If
  249.  
  250.    
  251.     UNLOADER = ""
  252.     DIM_Y = Int(DIM_Y)
  253.    
  254.     dst_x = 0
  255.     If DIM_Y < 75 And DIM_X > 1800 Then 'trascinamento
  256.    dst_x = DIM_X - 748
  257.     UNLOADER = "(1," & Jcdf(dst_x) & ",16,4,1,3,5,7,200,2,0,0,0,0,1,1,0,0,TPAR0)))"
  258.     Exit Function
  259.     End If
  260.    
  261.     If InStr(1, RIVESTIMENTI_ANTA, ACT_MOD) > 0 And DIM_X > 2000 And DIM_Y < 200 Then
  262.         OFFSET_X = 280
  263.     End If
  264.    
  265.    
  266.  
  267.     DIVARICO = DIM_Y - 220
  268.     If DIM_Y >= 700 Then DIVARICO = DIM_Y - 400
  269.  
  270.     If DIVARICO <= 200 Then DIVARICO = 200
  271.         If (DIM_Y > 400) Then UNLOADER = Jcdf(53 + 25 + OFFSET_Y) & ",32,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,"
  272.         If (DIM_Y > 375 And DIM_Y <= 400) Then UNLOADER = Jcdf(27.6 + OFFSET_Y) & ",32,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,"
  273.         If (DIM_Y > 350 And DIM_Y <= 375) Then UNLOADER = Jcdf(27.6 + OFFSET_Y) & ",32,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,"
  274.         If (DIM_Y > 325 And DIM_Y <= 350) Then UNLOADER = Jcdf(25 + OFFSET_Y) & ",32,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,"
  275.         If (DIM_Y > 300 And DIM_Y <= 325) Then UNLOADER = Jcdf(27 + OFFSET_Y) & ",32,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,"
  276.         If (DIM_Y > 275 And DIM_Y <= 300) Then UNLOADER = Jcdf(28.2 + OFFSET_Y) & ",32,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,"
  277.         If (DIM_Y > 250 And DIM_Y <= 275) Then UNLOADER = Jcdf(24.3 + OFFSET_Y) & ",32,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,"
  278.         If (DIM_Y > 200 And DIM_Y <= 250) Then UNLOADER = Jcdf(27 + OFFSET_Y) & ",15,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15," '",32,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,"
  279.        If (DIM_Y > 115 And DIM_Y <= 200) Then UNLOADER = Jcdf(23 + OFFSET_Y) & ",11,1,2,3,4,5,6,7,8,9,11,14," '",32,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,"
  280.        If (DIM_Y > 80 And DIM_Y <= 115) Then UNLOADER = Jcdf(16 + OFFSET_Y) & ",7,1,3,5,7,9,11,14," '",32,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,"
  281.        
  282.         If (DIM_Y > 65 And DIM_Y <= 80) Then
  283.         If DIM_X < 500 Then
  284.             UNLOADER = Jcdf(16 + OFFSET_Y) & ",2,1,3,"
  285.         Else
  286.             UNLOADER = Jcdf(16 + OFFSET_Y) & ",32,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,"
  287.         End If
  288.         End If
  289.        
  290.         If (DIM_Y > 38 And DIM_Y <= 65) Then
  291.         If DIM_X < 300 Then
  292.         UNLOADER = Jcdf(16 + OFFSET_Y) & ",1,1,"
  293.         Else
  294. '        UNLOADER = Jcdf(16 + OFFSET_Y) & ",2,1,3,"
  295.        UNLOADER = Jcdf(16 + OFFSET_Y) & ",4,1,3,5,7,"
  296.         End If
  297.         End If
  298.        
  299.    
  300.     If UNLOADER = "" Then Exit Function
  301.    
  302.     If InStr(1, TRAVERSA, ACT_MOD) > 0 Or InStr(1, TRAVERSA_PORTALE, ACT_MOD) > 0 Then
  303.     XX = 80 + OFFSET_X
  304.     Else
  305.     XX = 90 + OFFSET_X
  306.     End If
  307.    
  308.     Select Case ACTY
  309.         Case 1     '*********************** PEZZO NON IN PINZA
  310.            UNLOADER = "(1," & XX & "," & UNLOADER & DIVARICO & ",2,0,0,0,0,1,1,0,0,TPAR0)" & "))"
  311.         Case 2     '*********************** PEZZO IN PINZA
  312.            UNLOADER = "(7," & XX & "," & UNLOADER & DIVARICO & ",2,1,1,1,0,1,-1,0,0,TPAR0)"
  313.     End Select
  314.    
  315. End Function
  316.  
  317.  
  318.  
  319. Function UnloadOutline(ByVal FCX As Double, ByVal FCY As Double, ByVal X1 As Double, ByVal Y1 As Double, ByVal Xmax As Double, ByVal Ymax As Double) As String
  320.     Dim FcOuX As Double
  321.     Dim FcOuy As Double
  322.     'FCX and FCY are the dimensions of the final cut tool
  323.    'X1 and Y1 are the position of the left and down corner of the final cut
  324.    'Hmax and Ymax are the dimensions of the piece
  325.    
  326.     FcOuX = -FCX / 2 - X1 + 6
  327.     FcOuy = -FCY / 2 - Y1
  328.     UnloadOutline = "'INIZIO GEOMSCARICO=" & Jcdf(FcOuX) & "," & Jcdf(FcOuy) & ",1,0" & vbCrLf & "RET(0,0," & Jcdf(Xmax) & "," & Jcdf(Ymax) & ",SN,0)" & vbCrLf & "'FINE GEOMSCARICO"
  329. End Function
  330.  
  331.  
  332. Function INPUT_VAL(ByVal ACTIV_MODE As Byte, ByVal PROMT As String, ByVal DEFAULT As String, ByVal TITLE As String) As Double  'FUNZIONE X GLI INPUT NUMERICI
  333. Select Case ACTIV_MODE
  334. Case 1
  335. BEGIN_LAB:
  336. RHC = InputBox(PROMT, TITLE, DEFAULT)
  337. '*******************************************
  338. RP2 = RP2 + 1
  339. RPT_SPC(RP, RP2, 1) = RHC
  340. RPT_SPC(RP, RP2, 2) = PROMT
  341. '*******************************************
  342. If RHC = "" Then GoTo BEGIN_LAB
  343.  
  344. INPUT_VAL = Vbdf(RHC)
  345.  
  346. Case 2
  347. For i = 1 To 100
  348. If INFO_VAR(1, i) = PROMT Then
  349. RTD = Vbdf(INFO_VAR(2, i))
  350. If RTD = "" Then
  351. Stop
  352. MsgBox "ERRORE: MANCA VALORE DATO " & PROMT & "  " & INFO_VAR(0, 2) & "   SARA' ASSEGNATO VALORE 0 ALLA VARIABILE"
  353. RTD = 0
  354. End If
  355. INPUT_VAL = RTD
  356. End If
  357. Next i
  358. End Select
  359.  
  360. End Function
  361.  
  362.  
  363. Function T_SMUS(ByVal XC As Double, ByVal YC As Double)
  364.  
  365. T_SMUS = T_SPECIAL(XC, YC, "7SQ", "0")
  366. 'FARE FUNZIONE PER LO SMUSSO CON QUADRO A 45°
  367.  
  368. End Function
  369.  
  370. Function T_SMUS_ST(ByVal XC As Double, ByVal YC As Double)
  371.  
  372. T_SMUS_ST = T_PUNCH(XC, YC, "T335", "0")
  373. 'FARE FUNZIONE PER LO SMUSSO CON QUADRO A 45°
  374.  
  375. End Function
  376.  
  377. Sub CUT_END_S(ByVal H As Double, ByVal L As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  378.  
  379. Erase STR_OUT
  380.  
  381. If InStr(1, PIASTRONI_LAND, ACT_MOD) > 0 Or InStr(1, PIASTRONI_CAR, ACT_MOD) > 0 Then PPSS = 1 Else PPSS = 0
  382.  
  383. If InStr(1, STIPITI, ACT_MOD) > 0 Then
  384. OFFSET_XX = 25
  385. Else
  386. OFFSET_XX = 0
  387. End If
  388.  
  389.  
  390. Select Case VAR_BP
  391. Case "0"
  392.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  393.     STR_OUT(1) = TL_CUT_O
  394.     STR_OUT(2) = "TOOLANGLE(0)"
  395.     STR_OUT(3) = "MIDCUT(N)"
  396.     If H > 1250 Or PPSS = 1 Then
  397.     STR_OUT(4) = UnloadOutline(110, 6, 230, -6, H, L)
  398.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & 230 & "," & -LUTH & ",0," & -LUTH & ",-6,-6,0,M0))"
  399.     STR_OUT(6) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & -LUTH & ",230," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  400.     Else
  401.     If InStr(1, TRAVERSA, ACT_MOD) > 0 Or InStr(1, TRAVERSA_PORTALE, ACT_MOD) > 0 Then
  402.     STR_OUT(4) = UnloadOutline(110, 6, -4, -6, H, L)
  403.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & -LUTH & ",0," & -LUTH & ",-6,-10,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  404.     Else
  405.     STR_OUT(4) = UnloadOutline(110, 6, 0, -6, H, L)
  406.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & -LUTH & ",0," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  407.     End If
  408.     End If
  409. Case "B"
  410.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  411.     STR_OUT(1) = UnloadOutline(0, 0, 0, 0, H, L)
  412.    
  413. Case "C"
  414.     Call CUT_END_T(H, L, 0, 0, "0", POSINTAB)
  415.  
  416. Case Else
  417.     MsgBox ("ERRORE VAR_BP")
  418. End Select
  419.  
  420. End Sub
  421.  
  422.  
  423. Sub CUT_END_S_RV(ByVal H As Double, ByVal L As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  424.  
  425. Erase STR_OUT
  426.  
  427.  
  428. Select Case VAR_BP
  429. Case "0"
  430.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  431.     STR_OUT(1) = TL_CUT_O
  432.     STR_OUT(2) = "TOOLANGLE(0)"
  433.     STR_OUT(3) = "MIDCUT(N)"
  434.     STR_OUT(4) = UnloadOutline(110, 6, 0, -6, H, L)
  435.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & -LUTH & ",0," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  436.  
  437. Case "B"
  438.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  439.     STR_OUT(1) = UnloadOutline(0, 0, 0, 0, H, L)
  440.    
  441. Case "C"
  442.     Call CUT_END_T(H, L, 0, 0, "0", POSINTAB)
  443.  
  444. Case Else
  445.     MsgBox ("ERRORE VAR_BP")
  446. End Select
  447.  
  448. End Sub
  449.  
  450.  
  451. Sub CUT_END_S_PORT(ByVal H As Double, ByVal L As Double, ByVal INTGL As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  452.  
  453. Erase STR_OUT
  454.  
  455.  
  456.  
  457. Select Case VAR_BP
  458. Case "0"
  459.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  460.     STR_OUT(1) = TL_CUT_O
  461.     STR_OUT(2) = "TOOLANGLE(0)"
  462.     STR_OUT(3) = "MIDCUT(N)"
  463.     STR_OUT(4) = UnloadOutline(110, 6, INTGL, -6, H, L)
  464.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(INTGL) & "," & -LUTH & ",0," & -LUTH & ",-6,-6,0,M0))"
  465.     STR_OUT(6) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & -LUTH & "," & Jcdf(INTGL) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  466.    
  467. Case "B"
  468.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  469.     STR_OUT(1) = UnloadOutline(0, 0, 0, 0, H, L)
  470.    
  471.  
  472. Case Else
  473.     MsgBox ("ERRORE VAR_BP")
  474. End Select
  475.  
  476. End Sub
  477.  
  478.  
  479. Sub CUT_END_T(ByVal H As Double, ByVal L As Double, ByVal SCN_X As Double, ByVal SCN_Y As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  480.  
  481. Erase STR_OUT
  482.  
  483.  
  484. If InStr(1, STIPITI, ACT_MOD) > 0 Then
  485. OFFSET_XX = 25
  486. Else
  487. OFFSET_XX = 0
  488. End If
  489.  
  490.  
  491. Select Case VAR_BP
  492. Case "0"
  493.  
  494. If L < 110 Then
  495.  
  496. If L < 38 Then MsgBox ("ATTENZIONE PEZZO " & ACT_MOD & " INFERIORE A 38mm, NON FATTIBILE"), vbCritical
  497.  
  498.    
  499.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  500.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  501.     STR_OUT(2) = TL_CUT_V2
  502.     STR_OUT(3) = "TOOLANGLE(90)"
  503.     STR_OUT(4) = "MIDCUT(N)"
  504.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0))"
  505.     STR_OUT(6) = TL_CUT_O
  506.     STR_OUT(7) = "TOOLANGLE(0)"
  507.     STR_OUT(8) = "MIDCUT(N)"
  508.     STR_OUT(9) = UnloadOutline(110, 6, SCN_X, -6, H, L)
  509.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & "," & -LUTH & "," & Jcdf(SCN_X) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  510.     STR_OUT(11) = "'FINE BLOCCO"
  511.        
  512. Else
  513.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  514.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  515.     STR_OUT(2) = TL_CUT_O
  516.     STR_OUT(3) = "TOOLANGLE(0)"
  517.     STR_OUT(4) = "MIDCUT(N)"
  518.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & ",-6," & Jcdf(SCN_X) & ",-6,-6,-6,0,M0))"
  519.     STR_OUT(6) = TL_CUT_V
  520.     STR_OUT(7) = "TOOLANGLE(90)"
  521.     STR_OUT(8) = "MIDCUT(N)"
  522.     STR_OUT(9) = UnloadOutline(10, 110, 0, SCN_Y, H, L)
  523.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  524.     STR_OUT(11) = "'FINE BLOCCO"
  525. End If
  526.        
  527. Case "C"
  528.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  529.     STR_OUT(1) = TL_CUT_O
  530.     STR_OUT(2) = "TOOLANGLE(0)"
  531.     STR_OUT(3) = "MIDCUT(N)"
  532.     STR_OUT(4) = UnloadOutline(110, 6, SCN_X, -6, H, L)
  533.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & "," & -LUTH & "," & Jcdf(SCN_X) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, OFFSET_XX)
  534.        
  535. Case Else
  536.     MsgBox ("ERRORE VAR_BP")
  537. End Select
  538.  
  539. End Sub
  540.  
  541.  
  542.  
  543. Sub CUT_END_T_special(ByVal H As Double, ByVal L As Double, ByVal SCN_X As Double, ByVal SCN_Y As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  544.  
  545. 'If InStr(1, STR_STAF, ACT_MOD) = 0 Then
  546. 'If H < L Then
  547. 'H1 = H
  548. 'L1 = L
  549. 'H = L1
  550. 'L = H1
  551. 'End If
  552. 'End If
  553.  
  554.  
  555. Erase STR_OUT
  556.    
  557.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  558.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  559.     STR_OUT(2) = TL_CUT_V
  560.     STR_OUT(3) = "TOOLANGLE(90)"
  561.     STR_OUT(4) = "MIDCUT(N)"
  562.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0))"
  563.     STR_OUT(6) = TL_CUT_O
  564.     STR_OUT(7) = "TOOLANGLE(0)"
  565.     STR_OUT(8) = "MIDCUT(N)"
  566.     STR_OUT(9) = UnloadOutline(110, 6, SCN_X, -6, H, L)
  567.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & "," & -LUTH & "," & Jcdf(SCN_X) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  568.     STR_OUT(11) = "'FINE BLOCCO"
  569.        
  570.  
  571.  
  572. End Sub
  573.  
  574.  
  575.  
  576. Sub CUT_END_TSVU(ByVal H As Double, ByVal L As Double, ByVal SVU_X1 As Double, ByVal SVU_X2 As Double, ByVal SVU_Y1 As Double, ByVal SVU_Y2 As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  577.  
  578. SVU_Y = SVU_Y1
  579. If SVU_X1 > SVU_X2 Then
  580.  
  581. Else
  582. SVU_P1 = SVU_X1
  583. SVU_P2 = SVU_X2
  584. SVU_X1 = SVU_P2
  585. SVU_X2 = SVU_P1
  586. End If
  587.  
  588. 'If InStr(1, STR_STAF, ACT_MOD) = 0 Then
  589. 'If H < L Then
  590. 'H1 = H
  591. 'L1 = L
  592. 'H = L1
  593. 'L = H1
  594. 'End If
  595. 'End If
  596.  
  597. Erase STR_OUT
  598. SCN_X = 0
  599. SCN_Y = 0
  600.  
  601. Select Case VAR_BP
  602. Case "C"
  603.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  604.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  605.     STR_OUT(2) = TL_CLN
  606.     STR_OUT(3) = "TOOLANGLE(0)"
  607.     STR_OUT(4) = "MIDCUT(N)"
  608.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(SVU_X1) & "," & Jcdf(SVU_Y) & "," & Jcdf(SVU_X2) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  609.     STR_OUT(6) = TL_CUT_O
  610.     STR_OUT(7) = "TOOLANGLE(0)"
  611.     STR_OUT(8) = "MIDCUT(N)"
  612.     STR_OUT(9) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & ",-6," & Jcdf(SCN_X) & ",-6,-6,-6,0,M0))"
  613.     If L < 110 Then
  614.     STR_OUT(10) = TL_CUT_V2
  615.     STR_OUT(11) = "TOOLANGLE(90)"
  616.     STR_OUT(12) = "MIDCUT(N)"
  617.     STR_OUT(13) = UnloadOutline(5, 50, 0, SCN_Y, H, L)
  618.     STR_OUT(14) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  619.     STR_OUT(15) = "'FINE BLOCCO"
  620.    
  621.     Else
  622.     STR_OUT(10) = TL_CUT_V
  623.     STR_OUT(11) = "TOOLANGLE(90)"
  624.     STR_OUT(12) = "MIDCUT(N)"
  625.     STR_OUT(13) = UnloadOutline(10, 110, 0, SCN_Y, H, L)
  626.     STR_OUT(14) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  627.     STR_OUT(15) = "'FINE BLOCCO"
  628.     End If
  629.    
  630. Case "0"
  631.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  632.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  633.     STR_OUT(2) = TL_CLN
  634.     STR_OUT(3) = "TOOLANGLE(0)"
  635.     STR_OUT(4) = "MIDCUT(N)"
  636.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(SVU_X1) & "," & Jcdf(SVU_Y) & "," & Jcdf(SVU_X2) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  637.     STR_OUT(6) = TL_CUT_O
  638.     STR_OUT(7) = "TOOLANGLE(0)"
  639.     STR_OUT(8) = "MIDCUT(N)"
  640.     STR_OUT(9) = UnloadOutline(110, 6, SCN_X, -6, H, L)
  641.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & "," & -LUTH & "," & Jcdf(SCN_X) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  642.     STR_OUT(11) = "'FINE BLOCCO"
  643.        
  644. Case Else
  645.     MsgBox ("ERRORE VAR_BP")
  646. End Select
  647.  
  648. End Sub
  649.  
  650.  
  651. Sub CUT_END_TSVU_PST(ByVal H As Double, ByVal L As Double, ByVal SVU_X1 As Double, ByVal SVU_X2 As Double, ByVal SVU_Y1 As Double, ByVal SVU_Y2 As Double, ByVal VAR_BP As String, ByVal POSINTAB As Double)
  652.  
  653. SVU_Y = SVU_Y1
  654. If SVU_X1 > SVU_X2 Then
  655.  
  656. Else
  657. SVU_P1 = SVU_X1
  658. SVU_P2 = SVU_X2
  659. SVU_X1 = SVU_P2
  660. SVU_X2 = SVU_P1
  661. End If
  662.  
  663.  
  664. Erase STR_OUT
  665. SCN_X = 0
  666. SCN_Y = 0
  667.  
  668. Select Case VAR_BP
  669. Case "C"
  670.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  671.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  672.     STR_OUT(2) = TL_CLN
  673.     STR_OUT(3) = "TOOLANGLE(0)"
  674.     STR_OUT(4) = "MIDCUT(N)"
  675.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(0) & "," & Jcdf(SVU_Y) & "," & Jcdf(250) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  676.     STR_OUT(6) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - 250) & "," & Jcdf(SVU_Y) & "," & Jcdf(0) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  677.     STR_OUT(7) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(SVU_X1) & "," & Jcdf(SVU_Y) & "," & Jcdf(SVU_X2) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  678.     STR_OUT(8) = TL_CUT_O
  679.     STR_OUT(9) = "TOOLANGLE(0)"
  680.     STR_OUT(10) = "MIDCUT(N)"
  681.     STR_OUT(11) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & ",-6," & Jcdf(SCN_X) & ",-6,-6,-6,0,M0))"
  682.     STR_OUT(12) = TL_CUT_V
  683.     STR_OUT(13) = "TOOLANGLE(90)"
  684.     STR_OUT(14) = "MIDCUT(N)"
  685.     STR_OUT(15) = UnloadOutline(10, 110, 0, SCN_Y, H, L)
  686.     STR_OUT(16) = "PUN(LIN" & CNLV_GEO & "(P," & "0" & "," & Jcdf(L - SCN_Y) & "," & "0" & "," & SCN_Y & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  687.     STR_OUT(17) = "'FINE BLOCCO"
  688.    
  689. Case "0"
  690.     STR_OUT(0) = TablePosition(H, L, 0, 0, POSINTAB)
  691.     STR_OUT(1) = "'INIZIO BLOCCO=ABABAB"
  692.     STR_OUT(2) = TL_CLN
  693.     STR_OUT(3) = "TOOLANGLE(0)"
  694.     STR_OUT(4) = "MIDCUT(N)"
  695.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(0) & "," & Jcdf(SVU_Y) & "," & Jcdf(250) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  696.     STR_OUT(6) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - 250) & "," & Jcdf(SVU_Y) & "," & Jcdf(0) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  697.     STR_OUT(7) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(SVU_X1) & "," & Jcdf(SVU_Y) & "," & Jcdf(SVU_X2) & "," & Jcdf(SVU_Y) & ",0,0,0,M0))"
  698.     STR_OUT(8) = TL_CUT_O
  699.     STR_OUT(9) = "TOOLANGLE(0)"
  700.     STR_OUT(10) = "MIDCUT(N)"
  701.     STR_OUT(11) = UnloadOutline(110, 6, SCN_X, -6, H, L)
  702.     STR_OUT(12) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H - SCN_X) & "," & -LUTH & "," & Jcdf(SCN_X) & "," & -LUTH & ",-6,-6,0,M0,UNLDR" & UNLOADER(1, H, L, 0, 0)
  703.     STR_OUT(13) = "'FINE BLOCCO"
  704.        
  705. Case Else
  706.     MsgBox ("ERRORE VAR_BP")
  707. End Select
  708.  
  709. End Sub
  710.  
  711. Sub CUT_mcrj(ByVal H As Double, ByVal L As Double, ByVal SCN As Double, ByVal VAR_BP As String)
  712.  
  713. ''If InStr(1, STR_STAF, ACT_MOD) = 0 Then
  714. 'If H < L Then
  715. 'H1 = H
  716. 'L1 = L
  717. 'H = L1
  718. 'L = H1
  719. ''End If
  720. 'End If
  721.  
  722. Erase STR_OUT
  723.  
  724. If L < 38 Then MsgBox ("ATTENZIONE PEZZO " & ACT_MOD & " INFERIORE A 38mm, NON FATTIBILE"), vbCritical
  725.  
  726. MICROUN = 0.25
  727. Select Case VAR_BP
  728. Case "0"
  729.     STR_OUT(1) = TL_CUT_O
  730.     STR_OUT(2) = "TOOLANGLE(0)"
  731.     STR_OUT(3) = "MIDCUT(N)"
  732.     STR_OUT(4) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(0) & "," & Jcdf(0) & "," & Jcdf(H - MICROUN) & "," & Jcdf(0) & ",-6,0,0,M0))"
  733.     STR_OUT(5) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H) & "," & Jcdf(L) & "," & Jcdf(MICROUN) & "," & Jcdf(L) & ",-6,0,0,M0))"
  734.     If L < 110 Then STR_OUT(6) = TL_CUT_V2 Else STR_OUT(6) = TL_CUT_V
  735.     STR_OUT(7) = "TOOLANGLE(90)"
  736.     STR_OUT(8) = "MIDCUT(N)"
  737.     If L < 110 Then
  738.     STR_OUT(9) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(-5) & "," & Jcdf(0) & "," & Jcdf(-5) & "," & Jcdf(L - MICROUN - SCN) & ",-6,0,0,M0))"
  739.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H + 5) & "," & Jcdf(L) & "," & Jcdf(H + 5) & "," & Jcdf(MICROUN) & ",-6,0,0,M0))"
  740.     Else
  741.     STR_OUT(9) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(-10) & "," & Jcdf(0) & "," & Jcdf(-10) & "," & Jcdf(L - MICROUN - SCN) & ",-6,0,0,M0))"
  742.     STR_OUT(10) = "PUN(LIN" & CNLV_GEO & "(P," & Jcdf(H + 10) & "," & Jcdf(L) & "," & Jcdf(H + 10) & "," & Jcdf(MICROUN) & ",-6,0,0,M0))"
  743.     End If
  744.  
  745.        
  746. Case Else
  747.     MsgBox ("ERRORE VAR_BP")
  748. End Select
  749.  
  750. End Sub
  751.  
  752.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement