Skip to content
kondia-b500.cps 69.9 KiB
Newer Older
ellyan's avatar
ellyan committed
/**
ellyan's avatar
ellyan committed
  Copyright (C) 2012-2023 by Autodesk, Inc.
ellyan's avatar
ellyan committed
  All rights reserved.

  NUM post processor configuration.

ellyan's avatar
ellyan committed
  $Revision: 44080 7098e6d148aa6ea195b42597d82fe2f00d0115bb $
ellyan's avatar
ellyan committed
  $Date: 2023-07-17 12:38:58 $
ellyan's avatar
ellyan committed

  FORKID {8B1FC740-38BD-4cb2-9CD5-94A55CBE87A5}
*/

description = "NUM";
vendor = "NUM";
vendorUrl = "http://www.num.com";
ellyan's avatar
ellyan committed
legal = "Copyright (C) 2012-2023 by Autodesk, Inc.";
ellyan's avatar
ellyan committed
certificationLevel = 2;
ellyan's avatar
ellyan committed
minimumRevision = 45917;
ellyan's avatar
ellyan committed

longDescription = "Generic milling post for NUM.";

extension = "nc";
programNameIsInteger = true;
setCodePage("ascii");

ellyan's avatar
ellyan committed
capabilities = CAPABILITY_MILLING | CAPABILITY_MACHINE_SIMULATION;
ellyan's avatar
ellyan committed
tolerance = spatial(0.002, MM);

minimumChordLength = spatial(0.25, MM);
minimumCircularRadius = spatial(0.01, MM);
maximumCircularRadius = spatial(1000, MM);
minimumCircularSweep = toRad(0.01);
maximumCircularSweep = toRad(5400);
allowHelicalMoves = true;
allowedCircularPlanes = undefined; // allow any circular motion

// user-defined properties
properties = {
  writeMachine: {
    title      : "Write machine",
    description: "Output the machine settings in the header of the code.",
    group      : "formats",
    type       : "boolean",
    value      : true,
    scope      : "post"
  },
  writeTools: {
    title      : "Write tool list",
    description: "Output a tool list in the header of the code.",
    group      : "formats",
    type       : "boolean",
    value      : true,
    scope      : "post"
  },
  preloadTool: {
    title      : "Preload tool",
    description: "Preloads the next tool at a tool change (if any).",
    group      : "preferences",
    type       : "boolean",
    value      : true,
    scope      : "post"
  },
  showSequenceNumbers: {
    title      : "Use sequence numbers",
    description: "'Yes' outputs sequence numbers on each block, 'Only on tool change' outputs sequence numbers on tool change blocks only, and 'No' disables the output of sequence numbers.",
    group      : "formats",
    type       : "enum",
    values     : [
      {title:"Yes", id:"true"},
      {title:"No", id:"false"},
      {title:"Only on tool change", id:"toolChange"}
    ],
    value: "true",
    scope: "post"
  },
  sequenceNumberStart: {
    title      : "Start sequence number",
    description: "The number at which to start the sequence numbers.",
    group      : "formats",
    type       : "integer",
    value      : 10,
    scope      : "post"
  },
  sequenceNumberIncrement: {
    title      : "Sequence number increment",
    description: "The amount by which the sequence number is incremented by in each block.",
    group      : "formats",
    type       : "integer",
    value      : 5,
    scope      : "post"
  },
  optionalStop: {
    title      : "Optional stop",
    description: "Outputs optional stop code during when necessary in the code.",
    group      : "preferences",
    type       : "boolean",
    value      : true,
    scope      : "post"
  },
  separateWordsWithSpace: {
    title      : "Separate words with space",
    description: "Adds spaces between words if 'yes' is selected.",
    group      : "formats",
    type       : "boolean",
    value      : true,
    scope      : "post"
  },
  useRadius: {
    title      : "Radius arcs",
    description: "If yes is selected, arcs are outputted using radius values rather than IJK.",
    group      : "preferences",
    type       : "boolean",
ellyan's avatar
ellyan committed
    value      : false,
ellyan's avatar
ellyan committed
    scope      : "post"
  },
  showNotes: {
    title      : "Show notes",
    description: "Writes operation notes as comments in the outputted code.",
    group      : "formats",
    type       : "boolean",
    value      : false,
    scope      : "post"
  },
  safePositionMethod: {
    title      : "Safe Retracts",
    description: "Select your desired retract option. 'Clearance Height' retracts to the operation clearance height.",
    group      : "homePositions",
    type       : "enum",
    values     : [
      {title:"Clearance Height", id:"clearanceHeight"},
      {title:"G52", id:"G52"}
    ],
    value: "G52",
    scope: "post"
  },
  controllerType: {
    title      : "Controller version",
    description: "Select the family of controller.",
    group      : "configuration",
    type       : "enum",
    values     : [
      {title:"NUM 7xx", id:"NUM7x0"},
      {title:"NUM 10xx", id:"NUM10x0"}
    ],
    value: "NUM7x0",
    scope: "post"
ellyan's avatar
ellyan committed
  },
  tcMoveType: {
    title      : "Safe tool change move",
    description: "Specifies if we need to move to a safe location to change tool and in which order.",
    group      : "toolChange",
    type       : "enum",
    values     : [
      {title:"Disabled", id:"disable"},
      {title:"Simultaneous", id:"all"},
      {title:"Z then XY", id:"ZX"},
      {title:"XY only", id:"XY"}
    ],
    value: "disable",
    scope: "post"
  },
  tcPositionX: {
    title      : "G52 Tool Change position X",
    description: "G52 X-axis Tool Change position.",
    group      : "toolChange",
    type       : "number",
    value      : 0,
    scope      : "post"
  },
  tcPositionY: {
    title      : "G52 Tool Change position Y",
    description: "G52 Y-axis Tool Change position.",
    group      : "toolChange",
    type       : "number",
    value      : 0,
    scope      : "post"
  },
  tcPositionZ: {
    title      : "G52 Tool Change position Z",
    description: "G52 Z-axis Tool Change position.",
    group      : "toolChange",
    type       : "number",
    value      : 0,
    scope      : "post"
ellyan's avatar
ellyan committed
  }
};

// wcs definiton
wcsDefinitions = {
  useZeroOffset: false,
  wcs          : [
    {name:"Standard", format:"#", range:[1, 1]}
  ]
};

var gFormat = createFormat({prefix:"G", width:2, zeropad:true, decimals:0});
var mFormat = createFormat({prefix:"M", width:2, zeropad:true, decimals:0});
var hFormat = createFormat({prefix:"H", width:2, zeropad:true, decimals:0});
ellyan's avatar
ellyan committed
var diameterOffsetFormat = createFormat({prefix:"D", width:2, zeropad:true, decimals:0});
ellyan's avatar
ellyan committed

Loading full blame...