///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // DRO's case( 1 ): return MainPlanner->JogSlideIncr; break; case( 2 ): return Engine.PulseCount; //pulse frequency break; case( 3 ): return _setup.JogPercent; //pulse frequency break; case( 4 ): return (double)MainPlanner->Mins[0]; break; case( 5 ): return MainPlanner->Mins[1]; //extrema break; case( 6 ): return MainPlanner->Mins[2]; break; case( 7 ): return MainPlanner->Mins[3]; break; case( 8 ): return MainPlanner->Mins[4]; break; case( 9 ): return MainPlanner->Mins[5]; break; case( 10 ): return MainPlanner->Maxs[0]; break; case( 11 ): return MainPlanner->Maxs[1]; break; case( 12 ): return MainPlanner->Maxs[2]; break; case( 13 ): return MainPlanner->Maxs[3]; break; case( 14 ): return MainPlanner->Maxs[4]; break; case( 15 ): return MainPlanner->Maxs[5]; break; case( 16 ): return _setup.axis_offset_x; break; case( 17 ): return _setup.axis_offset_y; break; case( 18 ): return _setup.axis_offset_z; break; case( 19 ): return _setup.AA_axis_offset; break; case( 20 ): return _setup.BB_axis_offset; break; case( 21 ): return _setup.CC_axis_offset; break; case( 22 ): return MainPlanner->trajectory.tpQueueDepth(); break; case( 23 ): return MainPlanner->trajectory.GetTimeScale(); break; case( 24 ): return PulsePoint / Engine.PWMBaseFrequency; break; case( 25 ): return MainPlanner->THCSpeed; break; case( 26 ): return MainPlanner->THCCurrent; break; case( 27 ): return MainPlanner->THCMax; break; case( 28 ): return MainPlanner->m_CPULoad; break; case( 29 ): return MainPlanner->MPG.Positions[0]; break; case( 30 ): return MainPlanner->MPG.Positions[1]; break; case( 31 ): return MainPlanner->MPG.Positions[2]; break; case( 32 ): return _setup.tool_length_offset; break; case( 33 ): return MainPlanner->RefPoints[ 0]; // Limit switch offsets break; case( 34 ): return MainPlanner->RefPoints[ 1]; break; case( 35 ): return MainPlanner->RefPoints[ 2]; break; case( 36 ): return MainPlanner->RefPoints[ 3]; break; case( 37 ): return MainPlanner->RefPoints[ 4]; break; case( 38 ): return MainPlanner->RefPoints[ 5]; break; case( 39 ): return MainPlanner->Spindle.TrueSpindleRPM; break; case( 40 ): return ((double)Engine.WorstCase)/((double)Engine.TargetTime); break; case( 41 ): return MainPlanner->Tools.GetXOffset(_setup.current_slot);//Tool Length break; case( 42 ): return MainPlanner->Tools.GetZOffset(_setup.current_slot);//Tool width break; case( 43 ): return MainPlanner->Tools.GetDiam(_setup.current_slot); break; case( 44 ): return MainPlanner->Tools.GetToolRadius(_setup.current_slot); break; case( 45 ): return MainPlanner->LatheCorrection; break; case( 46 ): return _setup.origin_index; break; case( 47 ): return MainPlanner->GetFixtureAxis( 0 ); break; case( 48 ): return MainPlanner->GetFixtureAxis( 1 ); break; case( 49 ): return MainPlanner->GetFixtureAxis( 2 ); break; case( 50 ): return MainPlanner->GetFixtureAxis( 3 ); break; case( 51 ): return MainPlanner->GetFixtureAxis( 4 ); break; case( 52 ): return MainPlanner->GetFixtureAxis( 5 ); break; case( 53 ): return MainPlanner->cpuSpeed; break; case( 54 ): return MainPlanner->m_SafeZ; break; case( 55 ): return MainPlanner->FeedRate * 60 *(MainPlanner->FeedOverRide/100); break; case( 56 ): return MainPlanner->Spindle.CurrentPulley + 1; break; case( 57 ): return MainPlanner->Spindle.MaxSpeeds[MainPlanner->Spindle.CurrentPulley]; break; case( 58 ): if( !MainPlanner->SpinActual) temp = MainPlanner->BlendVel / (MainPlanner->Spindle.SpindleSpeed +.00001); else temp = MainPlanner->BlendVel / (MainPlanner->Spindle.TrueSpindleRPM +.00001); if( temp > 10000 ) temp = 0; return temp; break; case( 59 ): return _setup.xscale; break; case( 60 ): return _setup.yscale; break; case( 61 ): return _setup.zscale; break; case( 62 ): return _setup.ascale; break; case( 63 ): return _setup.bscale; break; case( 64 ): return _setup.cscale; break; case( 65 ): return MainPlanner->THCMin; break; case (66) : return MainPlanner->EntranceAngle; break; case (67) : return Engine.NormSpinCounts; break; case (68 ): return MainPlanner->RotError; break; case (69 ): return Engine.nTrigger; break; case (70 ): return Engine.SpinCorrection; break; case (71 ): return Engine.IntsPerRotation; break; case (72 ): return Engine.MaxSpinCounts; break; case (73 ): return Engine.SpinAdder; break; case( 74 ): return MainPlanner->SpinInc; break; case( 75 ): return _setup.Cylinder; break; case( 76 ): return MainPlanner->LaserXGrid; break; case( 77 ): return MainPlanner->LaserYGrid; break; case( 78 ): return MainPlanner->Repeats - 1; break; case( 79 ): return MainPlanner->ZInhibInc; break; case( 80 ): return MainPlanner->g_ZInhDepth; break; case( 81 ): return Engine.BitTest; break; case( 82 ): return MainPlanner->PlungePercent; break; case( 83 ): return MainPlanner->MXPosition; break; case( 84 ): return MainPlanner->MYPosition; break; case( 85 ): return MainPlanner->MZPosition; break; case( 86 ): return MainPlanner->MAPosition; break; case( 87 ): return MainPlanner->MBPosition; break; case( 88 ): return MainPlanner->MCPosition; break; case( 89 ): return BlendFactor; break; case( 90 ): return Engine.nSlots; break; case( 91 ): return _setup.G73PullOff; break; case( 92 ): return MainPlanner->LiftAngle; break; case( 93 ): return MainPlanner->LiftLevel; break; case( 94 ): return _setup.parameters[ 5201 + (253*20)]; break; case( 95 ): return _setup.parameters[ 5202 + (253*20)]; break; case( 96 ): return _setup.parameters[ 5203 + (253*20)]; break; case( 97 ): return CVFeedRate; break; case( 98 ): return MainPlanner->FeedInc; break; case( 99 ): return MainPlanner->Spindle.ratio; break; case( 100 ): return MainPlanner->MPG.Positions[3]; break; case( 101 ): return MainPlanner->MPG.Count[4]; break; case( 102 ): return MainPlanner->MPG.Count[5]; break; case( 103 ): return MainPlanner->MPG.Count[6]; break; case( 104 ): return MainPlanner->RapidFeedrate; break; case( 105) : return MainPlanner->Tools.GetDiam(_setup.current_slot); break; case( 106) : return MainPlanner->Tools.Tools[_setup.current_slot].direction; break; case( 107) : return MainPlanner->Tools.GetToolRadius(_setup.current_slot); break; case( 108) : if( _setup.Diameter) return MainPlanner->Tools.GetXOffset(_setup.current_slot) * 2; else return MainPlanner->Tools.GetXOffset(_setup.current_slot); break; case( 109) : return MainPlanner->Tools.GetZOffset(_setup.current_slot); break; case( 110) : if( _setup.Diameter) return MainPlanner->Tools.GetXWear(_setup.current_slot) * 2; else return MainPlanner->Tools.GetXWear(_setup.current_slot); break; case( 111) : return MainPlanner->Tools.GetZWear(_setup.current_slot); break; case( 112) : return MainPlanner->Tools.Tools[_setup.current_slot].turretang; break; case( 113) : return MainPlanner->MPG.Velocity[4]; break; case( 114) : return MainPlanner->MPG.Velocity[5]; break; case( 115) : return MainPlanner->MPG.Velocity[6]; break; case( 116) : return MainPlanner->RatioTaper; break; case( 117) : return MainPlanner->Spindle.CSSmin; break; case( 118) : return _setup.Rotation; break; case( 119 ): return MainPlanner->LaserAGrid; break; case( 120 ): return MainPlanner->m_IncJogBuffer; break; case( 121 ): return MainPlanner->Spindle.MinSpeeds[MainPlanner->Spindle.CurrentPulley]; break; case( 122 ): return MainPlanner->m_ByPassFeed; break; case( 123 ): return MainPlanner->ToolPostOffset; break; case( 124 ): return MainPlanner->VelPer1; break; case( 125 ): return MainPlanner->VelPer2; break; case( 126 ): return MainPlanner->MPGFeed; break; case( 127 ): return MainPlanner->MPG.Positions[0] - MainPlanner->MXPosition; break; case( 128 ): return MainPlanner->MPG.Positions[1] - MainPlanner->MYPosition;; break; case( 129 ): return MainPlanner->MPG.Positions[2] - MainPlanner->MZPosition; break; case( 130 ): return ((double)Engine.EndClocks) * (1 / (MainPlanner->cpuSpeed)); break; case( 131 ): return MainPlanner->SLSDist; break; case( 132 ): return Engine.Axis[6].TripCount; break; case( 133 ): return Engine.LookAhead; break; case( 134 ): return Engine.Axis[0].Index; break; case( 135 ): return Engine.Axis[1].Index; break; case( 136 ): return Engine.Axis[2].Index; break; case( 137 ): return Engine.Axis[3].Index; break; case( 138 ): return Engine.Axis[4].Index; break; case( 139 ): return Engine.Axis[5].Index; break; case( 140 ): return Engine.Encoders[0].Count[0]; break; case( 141 ): return Engine.Encoders[1].Count[0]; break; case( 142 ): return Engine.Encoders[2].Count[0]; break; case( 143 ): return Engine.Encoders[3].Count[0]; break; case( 144 ): return Engine.Encoders[4].Count[0]; break; case( 145 ): return Engine.Encoders[5].Count[0]; break; case( 146 ): return Inputs[64]; break; case( 147 ): return Inputs[65]; break; case( 148 ): return Inputs[66]; break; case( 149 ): return Inputs[67]; break; case( 150 ): return MainPlanner->m_SoftMaxsO[0]; break; case( 151 ): return MainPlanner->m_SoftMaxsO[1]; break; case( 152 ): return MainPlanner->m_SoftMaxsO[2]; break; case( 153 ): return MainPlanner->m_SoftMaxsO[3]; break; case( 154 ): return MainPlanner->m_SoftMaxsO[4]; break; case( 155 ): return MainPlanner->m_SoftMaxsO[5]; break; case( 156 ): return MainPlanner->m_SoftMinsO[0]; break; case( 157 ): return MainPlanner->m_SoftMinsO[1]; break; case( 158 ): return MainPlanner->m_SoftMinsO[2]; break; case( 159 ): return MainPlanner->m_SoftMinsO[3]; break; case( 160 ): return MainPlanner->m_SoftMinsO[4]; break; case( 161 ): return MainPlanner->m_SoftMinsO[5]; break; #ifdef G100 case( 500 ): return Monitor->GRex.m_LastState.curr; break; case( 501 ): return Monitor->GRex.m_LastState.iters; break; case( 502 ): return Monitor->GRex.m_LastState.grr_curr; break; case( 503 ): return Monitor->GRex.m_LastState.grr_tgt; break; case( 504 ): return Monitor->GRex.m_LastState.m_isr; break; case( 505 ): return Monitor->GRex.m_LastState.i_isr; break; case( 506 ): return Monitor->GRex.m_LastState.curr_mavg; break; //positions case( 507 ): return Monitor->GRex.m_LastAbs.p[0]; break; case( 508 ): return Monitor->GRex.m_LastAbs.p[1]; break; case( 509 ): return Monitor->GRex.m_LastAbs.p[2]; break; case( 510 ): return Monitor->GRex.m_LastAbs.p[3]; break; case( 511 ): return Monitor->GRex.m_LastAbs.p[4]; break; case( 512 ): return Monitor->GRex.m_LastAbs.p[5]; break; case( 513 ): return Monitor->GRex.NextQueueSeq; break; case( 514 ): return Monitor->m_NextMessage; break; case( 515 ): return Monitor->m_LastRX; break; case( 516 ): return Monitor->GRex.InWord; break; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // LED's case( 10 ): cond = !Engine.DROMaster && !MainPlanner->m_DistanceToGo; break; case( 11 ): cond = GetSpindleCond(); break; case( 12 ): cond = GetMistCond(); break; case( 13 ): cond = GetFloodCond(); break; //continous Jog... case( 14 ): cond = (MainPlanner->JogMode == JOGCONT) || (MainPlanner->JogMode == JOGINC && nShift); if( !MainPlanner->JogActive )cond = false; break; //Incremental Jog... case( 15 ): cond = (MainPlanner->JogMode == JOGINC) || (MainPlanner->JogMode == JOGCONT && nControl); if( !MainPlanner->JogActive )cond = false; break; case( 16 ): cond = MainPlanner->m_DistanceToGo; break; case( 17 ): cond = _setup.feed_override && MainPlanner->FeedOverRide != 100; break; case( 18 ): cond = Engine.Simulate; break; case( 19 ): cond = Engine.InSigs[EMERGENCY ].Activated; break; case( 20 ): cond = ! (MainPlanner->RadiusA == 0); break; case( 21 ): cond = ! (MainPlanner->RadiusB == 0); break; case( 22 ): cond = ! (MainPlanner->RadiusC == 0); break; case( 23 ): cond = Engine.SoftLimitEnable; break; case( 24 ): cond = Engine.THCOn; break; case( 25 ): cond = Engine.SpinAcc; break; case( 26 ): cond = Engine.SpinDec; break; case( 27 ): cond = MainPlanner->ToolPathOn; break; case( 28 ): cond = (_setup.tool_length_offset != 0 || _setup.tool_xoffset != 0); break; case( 29 ): cond = _setup.origin_index != 0; break; case( 30 ): cond = MainPlanner->ThrottleFunc == 0; break; case( 31 ): cond = MainPlanner->ThrottleFunc == 1; break; case( 32 ): cond = MainPlanner->CorrectionOn; break; case( 33 ): cond = MainPlanner->AutoLimitOverRide; break; case( 34 ): cond = Engine.LimitsOff; break; case( 35 ): cond = MainPlanner->SingleActive4On; break; case( 36 ): cond = Engine.InSigs[THCON].Activated; break; case( 37 ): cond = Engine.InSigs[THCUP].Activated; break; case( 38 ): cond = Engine.InSigs[THCDOWN].Activated; break; case( 39 ): cond = _setup.feed_mode == UNITS_PER_REV; break; case( 40 ): cond = _setup.feed_mode == UNITS_PER_MINUTE; break; case( 41 ): cond = _setup.xscale != 1; break; case( 42 ): cond = _setup.yscale != 1; break; case( 43 ): cond = _setup.zscale != 1; break; case( 44 ): cond = _setup.ascale != 1; break; case( 45 ): cond = _setup.bscale != 1; break; case( 46 ): cond = _setup.cscale != 1; break; case( 47 ): cond = _setup.drawtocenter == 1; break; case( 48 ): cond = _setup.distance_mode == MODE_ABSOLUTE; break; case( 49 ): cond = _setup.distance_mode != MODE_ABSOLUTE; break; case( 50 ): cond = Engine.Threading; break; case( 51 ): cond = Engine.LaserTrigger; break; case( 52 ): cond = MainPlanner->g_ZInhibit; break; case( 53 ): cond = MainPlanner->m_ToolIgnore; break; case( 54 ): cond = _setup.control_mode == CANON_CONTINUOUS; break; case( 55 ): cond = MainPlanner->Repeats > 1; break; case( 56 ): cond = ! (_setup.control_mode == CANON_CONTINUOUS); break; case( 57 ): cond = MainPlanner->JogMode == JOGMPG; if( !MainPlanner->JogActive )cond = false; break; case( 58 ): cond = nShift && MainPlanner->JogMode == JOGCONT; if( !MainPlanner->JogActive )cond = false; break; case( 59 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 0 && MainPlanner->JogActive; break; case( 60 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 1 && MainPlanner->JogActive; break; case( 61 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 2 && MainPlanner->JogActive; break; case( 62 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 3 && MainPlanner->JogActive; break; case( 63 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 4 && MainPlanner->JogActive; break; case( 64 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis == 5 && MainPlanner->JogActive; break; case( 65 ): cond = _setup.OptionalStop == true; break; case( 66 ): cond = MainPlanner->BlockDelete == true; break; case( 67 ): cond = Engine.OffLine == true; break; case( 68 ): cond = MainPlanner->SpinActual == true; break; case( 69 ): cond = Engine.WaitForTrigger; break; case( 70 ): cond = Engine.NoPlunge; break; case( 71 ): cond = Engine.SpindleStable; break; case( 72 ): cond = _setup.IJMode == 0; break; case( 73 ): cond = _setup.IJMode != 0; break; case( 74 ): cond = MainPlanner->TeachFileOpen; break; case( 75 ): cond = _setup.axis_offset_x + _setup.axis_offset_y + _setup.axis_offset_z + _setup.AA_axis_offset + _setup.BB_axis_offset + _setup.CC_axis_offset != 0; break; case( 76 ): break; case( 77 ): cond = Engine.OutSigs[ EXTACT4 ].Activated; break; case( 78 ): cond = Engine.OutSigs[ EXTACT5 ].Activated; break; case( 79 ): cond = Engine.OutSigs[ EXTACT6 ].Activated; break; case( 80 ): cond = Engine.State == PAUSE; break; case( 81 ): cond = MainPlanner->TangentalControl; break; case( 82 ): cond = MainPlanner->SingleStepMode; break; case( 83 ): cond = MainPlanner->JogActive; break; case( 84 ): cond = CVFeed; break; case( 85 ): cond = Engine.SlowMode; break; case( 86 ): cond = !Engine.Axis[ 0].Enable; break; case( 87 ): cond = !Engine.Axis[ 1].Enable; break; case( 88 ): cond = !Engine.Axis[ 2].Enable; break; case( 89 ): cond = !Engine.Axis[ 3].Enable; break; case( 90 ): cond = !Engine.Axis[ 4].Enable; break; case( 91 ): cond = !Engine.Axis[ 5].Enable; break; case( 92 ): cond = _setup.Diameter; break; case( 93 ): cond = Engine.InSigs[TIMING].Activated; break; case( 94 ): cond = HotKeysOn; break; case( 95 ): cond = _setup.feed_mode == UNITS_PER_MINUTE; break; break; case( 96 ): cond = _setup.feed_mode == UNITS_PER_REV; break; case( 97 ): cond = MainPlanner->RunInReverse; break; case( 98 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 0 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 99 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 1 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 100 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 2 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 101 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 3 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 102 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 4 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 103 ): cond = MainPlanner->JogMode == JOGMPG && MainPlanner->EncJogAxis2 == 5 && MainPlanner->JogActive && Engine.Encoders[5].Active; break; case( 104 ): cond = MainPlanner->TaperMode && MainPlanner->JogMode == JOGMPG && MainPlanner->JogActive && MainPlanner->DualMPG; break; case( 105 ): cond = MainPlanner->DualMPG && MainPlanner->JogMode == JOGMPG && MainPlanner->JogActive; break; case( 106) : cond = MainPlanner->JogVelocity; break; case( 107) : cond = _setup.spindle_mode == G_96; break; case( 108) : cond = _setup.Rotation != 0; break; case( 109) : cond = MainPlanner->RapidOverRide; break; case( 110) : cond = FormulaOn; break; case( 111) : cond = partial; break; case( 112) : cond = MainPlanner->RunInReverse; break; case( 113) : cond = MainPlanner->ByPassFeedOn; break; case( 114) : cond = MainPlanner->FrontPost; break; case( 115) : cond = !MainPlanner->FrontPost; break; case( 116) : cond = ( Engine.OutSigs[Engine.SpindleCCW].Activated && MainPlanner->Spindle.IsSpindleOn()); break; case( 117) : cond = MainPlanner->VelMode == 0; break; case( 118) : cond = MainPlanner->VelMode == 1; break; case( 119) : cond = MainPlanner->VelMode == 2; break; case( 120) : cond = MainPlanner->VelMode == 3; break; case( 121) : cond = Engine.InSigs[JOGXP].Active && Engine.InSigs[JOGXP].Activated; break; case( 122) : cond = Engine.InSigs[JOGXM].Active && Engine.InSigs[JOGXM].Activated; break; case( 123) : cond = Engine.InSigs[JOGYP].Active && Engine.InSigs[JOGYP].Activated; break; case( 124) : cond = Engine.InSigs[JOGYM].Active && Engine.InSigs[JOGYM].Activated; break; case( 125) : cond = Engine.InSigs[JOGZP].Active && Engine.InSigs[JOGZP].Activated; break; case( 126) : cond = Engine.InSigs[JOGZM].Active && Engine.InSigs[JOGZM].Activated; break; case( 127) : cond = Engine.InSigs[JOGAP].Active && Engine.InSigs[JOGAP].Activated; break; case( 128) : cond = Engine.InSigs[JOGAM].Active && Engine.InSigs[JOGAM].Activated; break; case( 129) : cond = ZoomState; break; case( 130) : cond = PanState; break; #ifdef G100 case( 500) : cond = Monitor->GRex.m_LastState.sflags & 0x01; //heartbeat break; case( 501) : cond = Monitor->GRex.m_LastState.sflags & 0x02; //Still break; case( 502) : cond = Monitor->GRex.m_LastState.sflags & 0x04; //End break; case( 503) : cond = Monitor->GRex.m_LastState.sflags & 0x08; //Mavg Drained break; case( 504) : cond = Monitor->GRex.m_LastState.sflags & 0x10; //Pause break; case( 505) : cond = Monitor->GRex.m_LastState.sflags & 0x20; //Purging break; case( 506) : cond = Monitor->GRex.m_LastState.sflags & 0x40; //halt break; case( 507) : cond = Monitor->GRex.m_LastState.sflags & 0x80; //GRR OK break; case( 508) : cond = Monitor->GRex.m_LastState.sflags & 0x100; //homed axis0 break; case( 509) : cond = Monitor->GRex.m_LastState.sflags & 0x200; //homed axis1 break; case( 510) : cond = Monitor->GRex.m_LastState.sflags & 0x400; //homed axis2 break; case( 511) : cond = Monitor->GRex.m_LastState.sflags & 0x800; //homed axis3 break; case( 512) : cond = Monitor->GRex.m_LastState.sflags & 0x1000; //homed axis4 break; case( 513) : cond = Monitor->GRex.m_LastState.sflags & 0x2000; //homed axis5 break; case( 514) : cond = Monitor->GRex.m_LastState.halt_bits & 0x01; //halt bits break; case( 515) : cond = Monitor->GRex.m_LastState.halt_bits & 0x02; break; case( 516) : cond = Monitor->GRex.m_LastState.halt_bits & 0x04; break; case( 517) : cond = Monitor->GRex.m_LastState.halt_bits & 0x08; break; case( 518) : cond = Monitor->GRex.m_LastState.halt_bits & 0x10; break; case( 519) : cond = Monitor->GRex.m_LastState.halt_bits & 0x20; break; case( 520) : cond = Monitor->GRex.m_LastState.halt_bits & 0x40; break; case( 521) : cond = Monitor->GRex.m_LastState.halt_bits & 0x80; break; case( 522) : cond = Monitor->GRex.m_LastState.halt_bits & 0x100; break; case( 523) : cond = Monitor->GRex.m_LastState.halt_bits & 0x200; break; case( 524) : cond = Monitor->GRex.m_LastState.halt_bits & 0x400; break; case( 525) : cond = Monitor->GRex.m_LastState.halt_bits & 0x800; break; case( 526) : cond = Monitor->GRex.m_LastState.halt_bits & 0x1000; break; case( 527) : cond = Monitor->GRex.m_LastState.halt_bits & 0x2000; break; case( 528) : cond = Monitor->GRex.m_LastState.halt_bits & 0x4000; break; case( 529) : cond = Monitor->GRex.m_LastState.halt_bits & 0x8000; break; //queue flags case( 530) : cond = Monitor->GRex.QueueFlags & 0x4000; //queue full - ignored command break; case( 531) : cond = Monitor->GRex.QueueFlags & 0x8000; //queue out of sequence ..ignored command break; case( 532) : cond = Monitor->GRex.DropMode; //queue out of sequence ..ignored command break; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Buttons case( 100 ): MainPlanner->m_Increment += MainPlanner->JogSlideIncr; if( MainPlanner->m_Increment < 0) MainPlanner->m_Increment = 0; break; case( 101 ): MainPlanner->m_Increment -= MainPlanner->JogSlideIncr; if( MainPlanner->m_Increment < 0) MainPlanner->m_Increment = 0; break; case( 102 ): rs274ngc_init(); break; case( 103 ): MainPlanner->JogActive = !MainPlanner->JogActive; break; case( 104 ): MainPlanner->GotoSafe_z(); break; case( 105 ):if( Engine.State != STOP ) break; MainPlanner->RefZ(); MainPlanner->RefX(); MainPlanner->RefY(); MainPlanner->RefA(); MainPlanner->RefB(); MainPlanner->RefC(); break; case( 106 ): if( _setup.length_units != INCHES ) Block = "G20" ; else Block = "G21"; MainPlanner->Execute( &Block, 0); break; case( 107 ): MainPlanner->m_DistanceToGo = !MainPlanner->m_DistanceToGo; break; case( 108 ): if( MainPlanner->FeedOverRide < MainPlanner->MaxFeedOverRide && MainPlanner->FeedOverRide > 9 ) MainPlanner->FeedOverRide+= 10; else if( MainPlanner->FeedOverRide < MainPlanner->MaxFeedOverRide && MainPlanner->FeedOverRide >= 1 ) MainPlanner->FeedOverRide+= 1; if( !MainPlanner->OverRideMode2) if(!MainPlanner->LastMoveRapid || MainPlanner->FeedOverRide <= 100) MainPlanner->trajectory.tpSetVscale( MainPlanner->FeedOverRide / 100 ); break; case( 109 ): if( MainPlanner->FeedOverRide > 10) MainPlanner->FeedOverRide -= 10; else if( MainPlanner->FeedOverRide > 1) MainPlanner->FeedOverRide -= 1; if( !MainPlanner->OverRideMode2) if(!MainPlanner->LastMoveRapid || MainPlanner->FeedOverRide <= 100 ) MainPlanner->trajectory.tpSetVscale( MainPlanner->FeedOverRide / 100 ); break; case( 110): if( MainPlanner->TorchVoltageControl ) break; if( !MainPlanner->Spindle.IsSpindleOn()) MainPlanner->Spindle.SpindleONCW(); else { MainPlanner->Spindle.TurnSpindleOff(); if( Engine.THCOn ) { Engine.THCCorrection = 0; Engine.LastCommandPos[2] = MainPlanner->ZPosition; _setup.current_z = MainPlanner->ZPosition; } } break; case( 111): if( _setup.JogPercent < 100 && _setup.JogPercent > 4.9) _setup.JogPercent += 5; else if( _setup.JogPercent < 5 ) _setup.JogPercent += .1; break; case( 112): if( _setup.JogPercent > 5 ) _setup.JogPercent -= 5; else _setup.JogPercent -= .1; if( _setup.JogPercent < .1 ) _setup.JogPercent = .1; break; case( 113): MainPlanner->FloodToggle(); break; case( 114): MainPlanner->MistToggle(); break; case( 115): MainPlanner->EditFile(); break; case( 116): MainPlanner->RadiusA = 0; break; case( 117): MainPlanner->RadiusB = 0; break; case( 118): MainPlanner->RadiusC = 0; break; case( 119): MainPlanner->ToggleSoftLimits(); break; case( 120): MainPlanner->TouchTool(); break; case( 121): MainPlanner->ToolTable(); break; case( 122): MainPlanner->Fixtures(); break; case( 123): if( Engine.Pro ) if( Engine.THCOn ) Engine.THCOn = false; else Engine.THCOn = true; break; case( 124): MainPlanner->CalTHC(); break; case( 125): MainPlanner->DROToEncoder( 0, 0 ); break; case( 126): MainPlanner->EncoderToDRO( 0, 0 ); break; case( 127): MainPlanner->DROToEncoder( 1, 1 ); break; case( 128): MainPlanner->EncoderToDRO( 1, 1 ); break; case( 129): MainPlanner->DROToEncoder( 2, 2 ); break; case( 130): MainPlanner->EncoderToDRO( 2, 2 ); break; case( 131): MainPlanner->MillMode = !MainPlanner->MillMode; break; case( 132): MainPlanner->ToolPathOn = !MainPlanner->ToolPathOn; break; case( 133): MainPlanner->MPG.SetPosition( 0, 0); break; case( 134): MainPlanner->MPG.SetPosition( 1, 0); break; case( 135): MainPlanner->MPG.SetPosition( 2, 0); break; case( 136): if( _setup.tool_length_offset == 0 && _setup.tool_xoffset == 0) { Block.Format( "G43H%d", _setup.current_slot ); MainPlanner->Execute( &Block, 0 ); } else { Block = "G49"; MainPlanner->Execute( &Block, 0 ); } break; case( 137): //used to turn off fixture altogether. break; case( 138): MainPlanner->GoHome(); break; case( 139): temp = MainPlanner->MachPositions[0]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 0, temp - _setup.axis_offset_x); break; case( 140): temp = MainPlanner->MachPositions[1]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 1, temp - _setup.axis_offset_y ); break; case( 141): temp = MainPlanner->MachPositions[2]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 2, temp - _setup.axis_offset_z); break; case( 142): temp = MainPlanner->MachPositions[3]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 3, temp - _setup.AA_axis_offset); break; case( 143): temp = MainPlanner->MachPositions[4]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 4, temp - _setup.BB_axis_offset); break; case( 144): temp = MainPlanner->MachPositions[5]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 5, temp - _setup.CC_axis_offset); break; case( 145): if( _setup.MillMode ) break; temp = MainPlanner->XPosition; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; temp += _setup.tool_xoffset; _setup.tool_xoffset = temp; MainPlanner->Tools.SetXOffset(_setup.current_slot,temp); _setup.current_x = 0 - _setup.tool_xoffset; Engine.LastCommandPos[0] = _setup.tool_xoffset; break; case( 146): temp = MainPlanner->ZPosition; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; temp += _setup.tool_length_offset; _setup.tool_length_offset = temp; MainPlanner->Tools.SetZOffset(_setup.current_slot, temp - MainPlanner->Tools.GetZWear(_setup.current_slot)); _setup.current_z = (0 - _setup.tool_length_offset); Engine.LastCommandPos[2] = _setup.tool_length_offset; break; case( 147): if( MainPlanner->ThrottleFunc == 0) MainPlanner->ThrottleFunc = 1; else if( MainPlanner->ThrottleFunc == 1) MainPlanner->ThrottleFunc = 2; else if( MainPlanner->ThrottleFunc == 2) MainPlanner->ThrottleFunc = 0; break; case( 148): MainPlanner->CorrectionOn = !MainPlanner->CorrectionOn; break; case( 149): if( MainPlanner->AutoLimitOverRide ) MainPlanner->SetLimitOV(false); else MainPlanner->SetLimitOV(true); break; case( 150): Engine.LimitsOff = true; break; case( 151): MainPlanner->SingleActive4On = !MainPlanner->SingleActive4On; break; case( 152): MainPlanner->MPG.SetPosition( 0, 0 ); break; case( 153): MainPlanner->MPG.SetPosition( 1, 0 ); break; case( 154): MainPlanner->MPG.SetPosition( 2, 0 ); break; case( 155): if( _setup.feed_mode == UNITS_PER_MINUTE ) _setup.feed_mode = UNITS_PER_REV; else _setup.feed_mode = UNITS_PER_MINUTE; break; case( 156): Engine.CurrentLineExec = Engine.DisplayLine; break; case( 157): _setup.drawtocenter = !_setup.drawtocenter; break; case( 158 ): Engine.JoyOn = false; break; case( 159 ): Engine.JoyOn = true; break; case( 160 ): MainPlanner->Regen(); break; case( 161 ): temp = MainPlanner->MachPositions[0]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 0, temp); temp = MainPlanner->MachPositions[2]; if( MainPlanner->CorrectionOn ) temp -= MainPlanner->LatheCorrection; MainPlanner->SetFixtureAxis( 2, temp ); break; case( 162 ): if( _setup.distance_mode == MODE_ABSOLUTE) Block = "G91"; else Block = "G90"; MainPlanner->Execute( &Block,0); break; case( 163 ): MainPlanner->SpinUp(); break; case( 164 ): MainPlanner->SpinDown(); break; case( 165 ): Engine.LaserTrigger = !Engine.LaserTrigger; break; case( 166 ): Engine.LaserXOff = Engine.Axis[ XAXIS].Index; Engine.LaserYOff = Engine.Axis[ YAXIS].Index; Engine.LaserZOff = Engine.Axis[ AAXIS].Index; break; case( 167 ): MainPlanner->g_ZInhibit = ! MainPlanner->g_ZInhibit; break; case( 168 ): MainPlanner->m_ToolIgnore = !MainPlanner->m_ToolIgnore; break; case( 169 ): MainPlanner->CloseFile(); break; case( 170 ): if( !MainPlanner->LastFile.IsEmpty()) MainPlanner->LoadFromPath( MainPlanner->LastFile ); break; case( 171 ): if( MainPlanner->JogActive) MainPlanner->CycleIncr(); break; case( 172 ): MainPlanner->ErrorClear = true; break; case( 173): if( !MainPlanner->Spindle.IsSpindleOn() ) MainPlanner->Spindle.SpindleONCCW(); else MainPlanner->Spindle.TurnSpindleOff(); break; case( 174): if( !MainPlanner->JogActive ) break; if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->MPG.Encoders[4]->Active) break; if( MainPlanner->JogMode != JOGMPG ) MainPlanner->JogMode = 2; else MainPlanner->JogMode = JOGCONT; break; case( 175): if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } MainPlanner->JogOff( MainPlanner->EncJogAxis ); x = MainPlanner->EncJogAxis + 1; if( x > 5) x = 0; while( !Engine.Axis[ x].Enable ) { x++; if( x > 5 ) x = 0; } //cycle through the axis MainPlanner->EncJogAxis = x; break; case( 176): if( Engine.State != STOP || Engine.CurrentLineExec != 0) { MainPlanner->SetLastError(" File must be rewound and Stopped for BlockDelete toggle"); return; } if( MainPlanner->BlockDelete ) MainPlanner->BlockDelete = false; else MainPlanner->BlockDelete = true; MainPlanner->Regen(); break; case( 177): if( _setup.OptionalStop ) _setup.OptionalStop = false; else _setup.OptionalStop = true; break; case( 178): if( Engine.OffLine ) Engine.OffLine = false; else Engine.OffLine = true; break; case( 179): MainPlanner->m_DistanceToGo = true; break; case( 180): MainPlanner->m_DistanceToGo = false; Engine.DROMaster = false; break; case( 181): MainPlanner->m_DistanceToGo = false; Engine.DROMaster = true; break; case( 182): MainPlanner->SpinActual = !MainPlanner->SpinActual; break; case( 183): if( MainPlanner->OrigSpindleSpeed <= 0) { if( !MainPlanner->TorchVoltageControl) MainPlanner->DoSpinStop(); } else { if( !MainPlanner->TorchVoltageControl) { MainPlanner->rpm = MainPlanner->OrigSpindleSpeed; MainPlanner->DoSpinSpeed( ); } else MainPlanner->TorchSpeed = MainPlanner->OrigSpindleSpeed; } break; case( 184): if( Engine.State != STOP ) break; MainPlanner->RefX(); MainPlanner->RefZ(); break; case( 185): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 0; break; case( 186): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 1; break; case( 187): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 2; break; case( 188): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 3; break; case( 189): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 4; break; case( 190): if( MainPlanner->JogActive ) MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 5; break; case( 191): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[0]; break; case( 192): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[1]; break; case( 193): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[2]; break; case( 194): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[3]; break; case( 195): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[4]; break; case( 196): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[5]; break; case( 197): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[6]; break; case( 198): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[7]; break; case( 199): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[8]; break; case( 200): if( MainPlanner->JogActive ) MainPlanner->m_Increment = MainPlanner->CycleInts[9]; break; case( 201 ): MainPlanner->ThrottleFunc = 0; break; case( 202 ): MainPlanner->ThrottleFunc = 1; break; case( 203 ): MainPlanner->ThrottleFunc = 2; break; case( 204 ): if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( MainPlanner->JogActive ) MainPlanner->JogMode = 0; break; case( 205 ): if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( MainPlanner->JogActive ) MainPlanner->JogMode = 1; break; case( 206 ): Engine.JoyOn = true; break; case( 207 ): Engine.JoyOn = false; break; case( 208 ): _setup.tool_length_offset = 0; break; case( 209 ): _setup.tool_xoffset = 0; break; case( 210 ): MainPlanner->LatheCorrection = 0; break; case( 211 ): MainPlanner->GoHome(); break; case( 212 ): MainPlanner->LatheHome(0); break; case( 213 ): MainPlanner->LatheHome(2); break; case( 214 ): MainPlanner->DoMRU(); break; case( 215 ): MainPlanner->DisplayHistory(); break; case( 216 ): MainPlanner->LoadGCode(); break; case( 217) : MainPlanner->ToolFlip = !MainPlanner->ToolFlip; break; case( 218) : MainPlanner->g_ZInhibit = true; break; case( 219) : MainPlanner->g_ZInhibit = false; break; case( 220) : Engine.BitTest = (char)0xff; break; case( 221) : Engine.NoPlunge = !Engine.NoPlunge; break; case( 222) : Engine.NoPlunge = false; break; case( 223) : Engine.NoPlunge = true; break; case( 224) : FloodOn(); break; case( 225) : FloodOff(); break; case( 226) : MistOn(); break; case( 227) : MistOff(); break; case( 228) : MainPlanner->TeachLoad(); break; case( 229) : MainPlanner->ConfigToolPath(); break; case( 230) : MainPlanner->SelectAddon(); break; case( 231) : MainPlanner->LoadDefaultScreens(); break; case( 232 ): MainPlanner->ScreenToggle(); break; case( 233 ): Engine.OutSigs[EXTACT4].Activated = true; break; case( 234 ): Engine.OutSigs[EXTACT4].Activated = false; break; case( 235 ): Engine.OutSigs[EXTACT5].Activated = true; break; case( 236 ): Engine.OutSigs[EXTACT5].Activated = false; break; case( 237 ): Engine.OutSigs[EXTACT6].Activated = true; break; case( 238 ): Engine.OutSigs[EXTACT6].Activated = false; break; case( 239 ): MainPlanner->SetHelpContext(); break; case( 240 ): for( x = 0; x < 6; x++) Engine.Referenced[x] = false; break; case( 241 ): MainPlanner->TangentalControl = !MainPlanner->TangentalControl; break; case( 242 ): _setup.parameters[ 5201 + (253*20)] = MainPlanner->MXPosition; _setup.parameters[ 5202 + (253*20)] = MainPlanner->MYPosition; _setup.parameters[ 5203 + (253*20)] = MainPlanner->MZPosition; break; case( 243 ): if( Engine.State != STOP ) return; X = _setup.parameters[ 5201 + (253*20)]; Y = _setup.parameters[ 5202 + (253*20)]; Z = _setup.parameters[ 5203 + (253*20)]; Block.Format( "G0G53X%.4fY%.4fZ%.4f", X,Y,Z ); MainPlanner->Execute( &Block, Engine.DisplayLine ); break; case( 244 ): if( Engine.State != STOP ) return; Engine.Tuning = true;; dlg = new GetCoords(); dlg->m_Question = "Enter Midpoint Coords"; dlg->m_XCoor = _setup.parameters[ 5201 + (252*20)]; dlg->m_YCoor = _setup.parameters[ 5202 + (252*20)]; dlg->m_ZCoor = _setup.parameters[ 5203 + (252*20)]; dlg->m_ACoor = _setup.parameters[ 5204 + (252*20)]; ret = dlg->DoModal(); if( ret == 2 ) { delete dlg; Engine.Tuning = false; break; } _setup.parameters[ 5201 + (252*20)] = dlg->m_XCoor; _setup.parameters[ 5202 + (252*20)] = dlg->m_YCoor; _setup.parameters[ 5203 + (252*20)] = dlg->m_ZCoor; _setup.parameters[ 5204 + (252*20)] = dlg->m_ACoor; delete dlg; Engine.Tuning = false; X = _setup.parameters[ 5201 + (252*20)]; Y = _setup.parameters[ 5202 + (252*20)]; Z = _setup.parameters[ 5203 + (252*20)]; A = _setup.parameters[ 5204 + (252*20)]; Block.Format( "G1G53X%.4fY%.4fZ%.4fA%.4f", X,Y,Z,A ); MainPlanner->Execute( &Block, Engine.DisplayLine ); X = _setup.parameters[ 5201 + (253*20)]; Y = _setup.parameters[ 5202 + (253*20)]; Z = _setup.parameters[ 5203 + (253*20)]; A = _setup.parameters[ 5204 + (253*20)]; Block.Format( "G1G53X%.4fY%.4fZ%.4fA%.4f", X,Y,Z,A ); MainPlanner->Execute( &Block, Engine.DisplayLine ); break; case( 245 ): if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive ) break; MainPlanner->JogMode++; if( MainPlanner->JogMode > JOGMPG) MainPlanner->JogMode = JOGCONT; if( !MainPlanner->MPG.Encoders[4]->Active && MainPlanner->JogMode == JOGMPG) MainPlanner->JogMode = JOGCONT; break; case( 246) : for( x = 0; x < 6; x++) Engine.Referenced[x] = true; break; case( 247) : CVFeed = !CVFeed; break; case( 248) : CVFeed = false; break; case( 249) : CVFeed = true; break; case( 250) : Engine.Axis[ 0].Enable = !Engine.Axis[ 0].Enable; break; case( 251) : Engine.Axis[ 1].Enable = !Engine.Axis[ 1].Enable; break; case( 252) : Engine.Axis[ 2].Enable = !Engine.Axis[ 2].Enable; break; case( 253) : Engine.Axis[ 3].Enable = !Engine.Axis[ 3].Enable; break; case( 254) : Engine.Axis[ 4].Enable = !Engine.Axis[ 4].Enable; break; case( 255) : Engine.Axis[ 5].Enable = !Engine.Axis[ 5].Enable; break; case( 256) : MainPlanner->m_DistanceToGo = !MainPlanner->m_DistanceToGo; break; case( 257) : Engine.OffLine = false; break; case( 258) : Engine.OffLine = true; break; case( 259) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 0; break; case( 260) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 1; break; case( 261) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 2; break; case( 262) : if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 3; break; case( 263) : if( !MainPlanner->JogActive || MainPlanner->JogMode != JOGMPG) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 4; break; case( 264) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive || MainPlanner->JogMode != 2) break; MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 5; break; case( 265) : MainPlanner->SetIncr( 0 ); break; case( 266) : MainPlanner->SetIncr( 1 ); break; case( 267) : MainPlanner->SetIncr( 2 ); break; case( 268) : MainPlanner->SetIncr( 3 ); break; case( 269) : MainPlanner->SetIncr( 4 ); break; case( 270) : MainPlanner->SetIncr( 5 ); break; case( 271) : MainPlanner->SetIncr( 6 ); break; case( 272) : MainPlanner->SetIncr( 7 ); break; case( 273) : MainPlanner->SetIncr( 8 ); break; case( 274) : MainPlanner->SetIncr( 9 ); break; case( 275) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } MainPlanner->JogMode = JOGINC; break; case( 276) : if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } MainPlanner->JogMode = JOGCONT; break; case( 277) : //smart feedrate++ MainPlanner->FeedRate += MainPlanner->FeedInc / 60; break; case( 278) : //smart Feedrate--; MainPlanner->FeedRate -= MainPlanner->FeedInc / 60; if( MainPlanner->FeedRate < 0) MainPlanner->FeedRate = .01; break; case( 279) : MainPlanner->RunReverse(); break; case( 280) : myControl->AutoLoadAddon = true; break; case( 281): if( !Engine.Encoders[5].Active ) break; if( Engine.Shuttle ) { MainPlanner->SetLastError("End Shuttle First" ); break; } if( !MainPlanner->JogActive || MainPlanner->JogMode != 2) break; MainPlanner->JogOff( MainPlanner->EncJogAxis2); x = MainPlanner->EncJogAxis2 + 1; if( x > 5) x = 0; while( !Engine.Axis[ x].Enable ) { x++; if( x > 5 ) x = 0; } //cycle through the axis MainPlanner->EncJogAxis2 = x; break; case( 282) : MainPlanner->TaperMode = !MainPlanner->TaperMode; break; case( 283) : MainPlanner->DualMPG = !MainPlanner->DualMPG; break; case( 284) : for( x = 0; x< 6; x++) if (Engine.Axis[x].Jogging)return; MainPlanner->SetVelocityMode( !MainPlanner->JogVelocity ); break; case( 285) : MainPlanner->ReturnToPaused(); break; case( 286) : MainPlanner->RememberPaused(); break; case( 287) : MainPlanner->RapidOverRide = !MainPlanner->RapidOverRide; break; case( 288) : if( Engine.DwellTime > 0) MainPlanner->SetDwell( 0 ); break; case( 289) : MainPlanner->SetFormulas(); break; case( 290) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 0; break; case( 291) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 1; break; case( 292) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 2; break; case( 293) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 3; break; case( 294) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 4; break; case( 295) : MainPlanner->JogOff(MainPlanner->EncJogAxis); MainPlanner->EncJogAxis = 5; break; case( 296) : MainPlanner->ScrewCal(); break; case( 297) : MainPlanner->SetDwell(0); break; case( 298) : break; case( 299) : MainPlanner->ByPassFeedOn = !MainPlanner->ByPassFeedOn; break; case( 300) : MainPlanner->Tools.Tools[_setup.current_slot].front = !MainPlanner->Tools.Tools[_setup.current_slot].front; break; case( 301) : Block.Format( "M%d", Macro ); MainPlanner->Execute( &Block, 0 ); break; case( 302) : MainPlanner->VelMode++; if( MainPlanner->VelMode > 3 ) MainPlanner->VelMode = 0; break; case( 303) : MainPlanner->VelMode = 0; break; case( 304) : MainPlanner->VelMode = 1; break; case( 305) : MainPlanner->VelMode = 2; break; case( 306) : MainPlanner->VelMode = 3; break; case( 307) : MainPlanner->JogOn( 0, 0 ); break; case( 308) : MainPlanner->JogOn( 0, 1); break; case( 309) : MainPlanner->JogOn( 1, 0); break; case( 310) : MainPlanner->JogOn( 1, 1); break; case( 311) : MainPlanner->JogOn( 2, 0 ); break; case( 312) : MainPlanner->JogOn( 2, 1); break; case( 313) : MainPlanner->JogOn( 3, 0); break; case( 314) : MainPlanner->JogOn( 3, 1); break; case( 315) : myControl->OnOperatorCalibratempg(); break; case( 316) : MainPlanner->SaveToolTable(); break; case( 317) : MainPlanner->SaveFixtures(); break; case( 318) : ZoomState = !ZoomState; break; case( 319) : PanState = !PanState; break; case( 320) : MainPlanner->SelectAddon(); break; case( 321) : MainPlanner->SelectNewFangled(); break; case( 322) : Engine.Emergency = true; // signal to all controls to deselect or stop movement if( myControl->Selection )myControl->Selection->DeSelect(); myControl->Selection = NULL; Engine.LastState = STOP; myControl->m_Selection = false; if( MainPlanner->ScriptsRunning > 0) MainPlanner->KillScripts( hCtx ); break; case( 323) : myControl->TogglePanel(); break; case( 324) : if( !MainPlanner->MillMode) MainPlanner->TurnTouch(); break; case( 325) : MainPlanner->TorchVolts(); break; #ifdef G100 case( 500) : Monitor->GRex.m_InitReq = true; break; case( 501) : Monitor->GRex.DropOneIn( 5 ); break; case( 502) : Monitor->GRex.DropOneIn( 0 ); break; #endif case( 700) : SendMessage( OEM_MSG , 700, 0 ); break; case( 701) : SendMessage( OEM_MSG , 701, 0 ); break; case( 702) : SendMessage( OEM_MSG , 702, 0 ); break; case( 703) : SendMessage( OEM_MSG , 703, 0 ); break; case( 704) : SendMessage( OEM_MSG , 704, 0 ); break; case( 705) : ShutDown(); break; } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Macro Calls DISP_FUNCTION(MyScriptObject, "StraightFeed", StraightFeed, VT_EMPTY, VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8) DISP_FUNCTION(MyScriptObject, "HelpAbout", HelpAbout, VT_EMPTY, VTS_NONE) DISP_FUNCTION(MyScriptObject, "GetSafeZ", GetSafeZ, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "SetSafeZ", SetSafeZ, VT_EMPTY, VTS_R8) DISP_FUNCTION(MyScriptObject, "SetCurrentTool", SetCurrentTool, VT_EMPTY, VTS_I2) DISP_FUNCTION(MyScriptObject, "GetSelectedTool", GetSelectedTool, VT_I2, VTS_NONE) DISP_FUNCTION(MyScriptObject, "GetToolChangeStart", GetToolChangeStart, VT_R8, VTS_I2) DISP_FUNCTION(MyScriptObject, "StraightTraverse", StraightTraverse, VT_EMPTY, VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8) DISP_FUNCTION(MyScriptObject, "ToolLengthOffset", ToolLengthOffset, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "CommandedFeed", CommandedFeed, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "SetFeedRate", SetFeedRate, VT_EMPTY, VTS_R8) DISP_FUNCTION(MyScriptObject, "ActivateSignal", ActivateSignal, VT_EMPTY, VTS_I2) DISP_FUNCTION(MyScriptObject, "IsActive", IsActive, VT_BOOL, VTS_I2) DISP_FUNCTION(MyScriptObject, "DeActivateSignal", DeActivateSignal, VT_EMPTY, VTS_I2) DISP_FUNCTION(MyScriptObject, "SystemWaitFor", SystemWaitFor, VT_EMPTY, VTS_I2) DISP_FUNCTION(MyScriptObject, "Param1", Param1, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "Param2", Param2, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "Param3", Param3, VT_R8, VTS_NONE) DISP_FUNCTION(MyScriptObject, "VerifyAxis", VerifyAxis, VT_EMPTY, VTS_BOOL) DISP_FUNCTION(MyScriptObject, "GetVar", GetVar, VT_R8, VTS_I2) DISP_FUNCTION(MyScriptObject, "SetVar", SetVar, VT_EMPTY, VTS_I2 VTS_R8) DISP_FUNCTION(MyScriptObject, "Question", Question, VT_R8, VTS_BSTR) DISP_FUNCTION(MyScriptObject, "QueueDepth", QueueDepth, VT_I2, VTS_NONE) DISP_FUNCTION(MyScriptObject, "OpenDigFile", OpenDigFile, VT_EMPTY, VTS_NONE) DISP_FUNCTION(MyScriptObject, "CloseDigFile", CloseDigFile, VT_EMPTY, VTS_NONE) DISP_FUNCTION(MyScriptObject, "THCOn", THCOn, VT_EMPTY, VTS_NONE) DISP_FUNCTION(MyScriptObject, "THCOff", THCOff, VT_EMPTY, VTS_NONE) DISP_FUNCTION(MyScriptObject, "Code", Code, VT_EMPTY, VTS_BSTR) DISP_FUNCTION(MyScriptObject, "GetScale", GetScale, VT_R8, VTS_I2) DISP_FUNCTION(MyScriptObject, "SetScale", SetScale, VT_EMPTY, VTS_I2 VTS_R8) DISP_FUNCTION(MyScriptObject, "SendSerial", SendSerial, VT_EMPTY, VTS_BSTR) //}}AFX_DISPATCH_MAP DISP_FUNCTION_ID(MyScriptObject, "GetPortByte", dispidGetPortByte, GetPortByte, VT_UI1, VTS_UI2) DISP_FUNCTION_ID(MyScriptObject, "PutPortByte", dispidPutPortByte, PutPortByte, VT_I2, VTS_UI2 VTS_UI1) DISP_FUNCTION_ID(MyScriptObject, "IsMoving", dispidIsMoving, IsMoving, VT_UI2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "ResetTHC", dispidResetTHC, ResetTHC, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetParam", dispidGetParam, GetParam, VT_R8, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SetParam", dispidSetParam, SetParam, VT_EMPTY, VTS_BSTR VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "GetCurrentTool", dispidGetCurrentTool, GetCurrentTool, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "DoOEMButton", dispidDoOEMButton, DoOEMButton, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "LoadRun", dispidLoadRun, LoadRun, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "DoButton", dispidDoButton, DoButton, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetLED", dispidGetLED, GetLED, VT_BOOL, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetOEMLed", dispidGetOEMLed, GetOEMLed, VT_BOOL, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetOEMDRO", dispidGetOEMDRO, GetOEMDRO, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetDRO", dispidGetDRO, GetDRO, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SetDRO", dispidSetDRO, SetDRO, VT_EMPTY, VTS_I2 VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "SetOEMDRO", dispidSetOEMDRO, SetOEMDRO, VT_EMPTY, VTS_I2 VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "GetCoord", dispidGetCoord, GetCoord, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "GetXCoor", dispidGetXCoor, GetXCoor, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetYCoor", dispidGetYCoor, GetYCoor, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetZCoor", dispidGetZCoor, GetZCoor, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetACoor", dispidGetACoor, GetACoor, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "IsFirst", dispidIsFirst, IsFirst, VT_BOOL, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetMachZero", dispidSetMachZero, SetMachZero, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "RunFile", dispidRunFile, RunFile, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetUserDRO", dispidSetUserDRO, SetUserDRO, VT_EMPTY, VTS_I2 VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "SetUserLED", dispidSetUserLED, SetUserLED, VT_EMPTY, VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetUserDRO", dispidGetUserDRO, GetUserDRO, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetUserLED", dispidGetUserLED, GetUserLED, VT_I2, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "tXStart", dispidtXStart, tXStart, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tZStart", dispidtZStart, tZStart, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tEndX", dispidtEndX, tEndX, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tEndZ", dispidtEndZ, tEndZ, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tClearX", dispidtClearX, tClearX, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tLead", dispidtLead, tLead, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tSpring", dispidtSpring, tSpring, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tFirstPass", dispidtFirstPass, tFirstPass, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tChamfer", dispidtChamfer, tChamfer, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tTaper", dispidtTaper, tTaper, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tInFeed", dispidtInFeed, tInFeed, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tDepthLastPass", dispidtDepthLastPass, tDepthLastPass, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "IsLoading", dispidIsLoading, IsLoading, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetABSPosition", dispidGetABSPosition, GetABSPosition, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetRPM", dispidGetRPM, GetRPM, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "DoSpinCW", dispidDoSpinCW, DoSpinCW, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "DoSpinCCW", dispidDoSpinCCW, DoSpinCCW, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "DoSpinStop", dispidDoSpinStop, DoSpinStop, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetSpinSpeed", dispidSetSpinSpeed, SetSpinSpeed, VT_EMPTY, VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "InFeeds", dispidInFeeds, InFeeds, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "ThreadDepth", dispidThreadDepth, ThreadDepth, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "tTapers", dispidtTapers, tTapers, VT_R8, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SetTicker", dispidSetTicker, SetTicker, VT_EMPTY, VTS_I2 VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SetUserLabel", dispidSetUserLabel, SetUserLabel, VT_EMPTY, VTS_I2 VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "RefCombination", dispidRefCombination, RefCombination, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "IsSuchSignal", dispidIsSuchSignal, IsSuchSignal, VT_I2, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "OpenTeachFile", dispidOpenTeachFile, OpenTeachFile, VT_I2, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "CloseTeachFile", dispidCloseTeachFile, CloseTeachFile, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetButtonText", dispidSetButtonText, SetButtonText, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "LoadStandardLayout", dispidLoadStandardLayout, LoadStandardLayout, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "LoadTeachFile", dispidLoadTeachFile, LoadTeachFile, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "IsOutputActive", dispidIsOutputActive, IsOutputActive, VT_BOOL, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SingleVerify", dispidSingleVerify, SingleVerify, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetPage", dispidGetPage, GetPage, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetPage", dispidSetPage, SetPage, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "ToggleScreens", dispidToggleScreens, ToggleScreens, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "PlayWave", dispidPlayWave, PlayWave, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "Speak", dispidSpeak, Speak, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "Message", dispidMessage, Message, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "IsStopped", dispidIsStopped, IsStopped, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SaveWizard", dispidSaveWizard, SaveWizard, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SingleVerifyReport", dispidSingleVerifyReport, SingleVerifyReport, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SetIJMode", dispidSetIJMode, SetIJMode, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetIJMode", dispidGetIJMode, GetIJMode, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetMinPass", dispidGetMinPass, GetMinPass, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "AppendTeachFile", dispidAppendTeachFile, AppendTeachFile, VT_I2, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "Random", dispidRandom, Random, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "IsDiameter", dispidIsDiameter, IsDiameter, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "ModGetInputWord", dispidModGetInputWord, ModGetInputWord, VT_I2, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "FillFromCoil", dispidFillFromCoil, FillFromCoil, VT_I2, VTS_I2 VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "FillFromStatus", dispidFillFromStatus, FillFromStatus, VT_I2, VTS_I2 VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "FillFromHolding", dispidFillFromHolding, FillFromHolding, VT_I2, VTS_I2 VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "FillFromInput", dispidFillFromInput, FillFromInput, VT_I2, VTS_I2 VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetModWord", dispidGetModWord, GetModWord, VT_I2, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "tMinDepth", dispidtMinDepth, tMinDepth, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tGetCutType", dispidtGetCutType, tGetCutType, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tGetInfeedType", dispidtGetInfeedType, tGetInfeedType, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tSetCutType", dispidtSetCutType, tSetCutType, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "tSetInFeedType", dispidtSetInFeedType, tSetInFeedType, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "OpenSubroutineFile", dispidOpenSubroutineFile, OpenSubroutineFile, VT_I2, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "tZClear", dispidtZClear, tZClear, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "FeedRate", dispidFeedRate, FeedRate, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "tCutDepth", dispidtCutDepth, tCutDepth, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "FileName", dispidFileName, FileName, VT_BSTR, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "MinX", dispidMinX, MinX, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "MaxX", dispidMaxX, MaxX, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "MinY", dispidMinY, MinY, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "MaxY", dispidMaxY, MaxY, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "RetractMode", dispidRetractMode, RetractMode, VT_I2, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GotoSafeZ", dispidGotoSafeZ, GotoSafeZ, VT_EMPTY, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "SetPulley", dispidSetPulley, SetPulley, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "LoadWizard", dispidLoadWizard, LoadWizard, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SetOutput", dispidSetOutput, SetOutput, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "GetInput", dispidGetInput, GetInput, VT_I2, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SetModOutput", dispidSetModOutput, SetModOutput, VT_EMPTY, VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "LoadFile", dispidLoadFile, LoadFile, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SetTriggerMacro", dispidSetTriggerMacro, SetTriggerMacro, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "SetHomannString", dispidSetHomannString, SetHomannString, VT_EMPTY,VTS_I2 VTS_I2 VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "JogOn", dispidJogOn, JogOn, VT_EMPTY, VTS_I2 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "JogOff", dispidJogOff, JogOff, VT_EMPTY, VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "OpenSubFile", dispidOpenSubFile, OpenSubFile, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SetToolX", dispidSetToolX, SetToolX, VT_EMPTY, VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "SetToolZ", dispidSetToolZ, SetToolZ, VT_EMPTY, VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "GetTurretAng", dispidGetTurretAng, GetTurretAng, VT_R8, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "GetFiFoEntry", dispidGetFiFoEntry, GetFiFoEntry, VT_BSTR, VTS_NONE) DISP_FUNCTION_ID(MyScriptObject, "RunProgram", dispidRunProgram, RunProgram, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "SendFIFO", dispidSendFIFO, SendFIFO, VT_EMPTY, VTS_BSTR) DISP_FUNCTION_ID(MyScriptObject, "Round", dispidRound, Round, VT_R8, VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "roun", dispidroun, roun, VT_R8, VTS_R8) DISP_FUNCTION_ID(MyScriptObject, "nFmt", dispidnFmt, nFmt, VT_R8, VTS_R8 VTS_I2) DISP_FUNCTION_ID(MyScriptObject, "ZeroTHC", dispidZeroTHC, ZeroTHC, VT_EMPTY, VTS_NONE) END_DISPATCH_MAP()