确定
节省材料、时间和金钱
由人工智能提供技术支持

TonCut 旨在用于平面 (2D) 材料和长 (1D) 材的切割优化,例如:玻璃、木材、石材、金属、铝、树脂玻璃、纸板、管材和棒材等。

什么是自动化TonCut?其用途是什么?

自动化TonCut用于1D和2D材料的切割优化。 该程序还允许高级真实形状嵌套。 但是,它没有用户界面。用于优化的数据以JSON格式传送给Toncut。生成的结果也是这种格式。

该程序可以在批处理模式下使用,可作为Websocket服务器。 由于数据格式简单清晰,易于与其他系统集成。 在服务器模式下,一个非常简单的API扩展了集成的可能性。

对于服务器来说,

自动化TonCut可作为Windows服务运行。在这种情况下,可以通过Websocket (ws)Websocket Secure (wss)协议进行连接。

批处理模式

该程序也可以作为批处理工具从命令行启动。在这种情况下,通过文件或标准输入将输入数据提供给程序。 结果可以写成标准输出或文件。

简单易读的数据格式

输入数据

{
  "version": 3,
  "defaultUnits": {
    "time": "s",
    "percent": "%",
    "length": "mm",
    "field": "sqmm",
    "angle": "deg"
  },
  "devices": [
    {
      "id": 1,
      "title": "2D设备",
      "materialKind": "2d",
      "canCutAnyShapes": true,
      "minCutWidth": 30,
      "edgingCuts": "optimal",
      "originEdgingCuts": "default"
    }
  ],
  "materials": [
    {
      "id": 1,
      "deviceId": 1,
      "title": "2D 材料",
      "kind": "2d",
      "thickness": 18,
      "surplus": 0,
      "margin": 0,
      "defaultEdging": 0,
      "cuttingDimensions": "net",
      "canHaveStructure": true,
      "canBeVeneered": true,
      "canRotate": true,
      "canMirror": true,
      "kerf": 3,
      "allowEdgeCuts": true,
      "reuseWaste": {
        "enabled": true,
        "minLongerLength": 200,
        "minShorterLength": 200,
        "prefLongerLength": 600,
        "prefShorterLength": 600
      }
    }
  ],
  "pieces": [
    {
      "id": 1,
      "materialId": 1,
      "length": 300,
      "width": 500,
      "quantity": 5,
      "structure": ["byLength", "byWidth", "none"],
      "priority": "critical",
      "rotationStep": "30deg",
      "description": "",
      "surplus": 0,
      "margin": 0
    },
    {
      "id": 2,
      "materialId": 1,
      "length": 1220,
      "width": 740,
      "quantity": 1,
      "structure": ["byLength", "byWidth", "none"],
      "priority": "normal",
      "rotationStep": "30deg",
      "description": "",
      "surplus": 0,
      "margin": 0
    },
    {
      "id": 3,
      "materialId": 1,
      "quantity": 2,
      "structure": ["byLength", "byWidth", "none"],
      "priority": "critical",
      "rotationStep": "30deg",
      "surplus": 0,
      "shapeType": "any",
      "shape": {
        "format": "svg-path",
        "scale": 10,
        "path": "M 6593.5735,15977.848 4686.6782,9466.5001 17754.607,11543.287 Z"
      }
    },
    {
      "id": 4,
      "materialId": 1,
      "length": 900,
      "width": 700,
      "quantity": 1,
      "structure": ["byLength", "byWidth", "none"],
      "surplus": 0,
      "rotationStep": "30deg",
      "shapeType": "L",
      "shape": {
        "vertLength": 500,
        "horzLength": 300,
        "recessedCorner": "topLeft"
      }
    },
    {
      "id": 5,
      "materialId": 1,
      "length": 500,
      "width": 300,
      "quantity": 8,
      "structure": ["byLength", "byWidth", "none"],
      "surplus": 0,
      "rotationStep": "30deg",
      "shapeType": "trapezoid",
      "shape": {
        "leftSlopeLength": 200,
        "rightSlopeLength": 100
      }
    },
    {
      "id": 6,
      "materialId": 1,
      "length": 180,
      "width": 180,
      "quantity": 8,
      "structure": ["byLength", "byWidth", "none"],
      "surplus": 20,
      "rotationStep": "30deg",
      "shapeType": "circle",
      "shape": {
        "variant": "3/4"
      }
    },
    {
      "id": 7,
      "length": 900,
      "width": 900,
      "quantity": 2,
      "materialId": 1,
      "rotationStep": "0deg",
      "shapeType": "ring",
      "shape": {
        "innerRadius": 410
      }
    },
    {
      "id": 8,
      "materialId": 1,
      "length": 180,
      "width": 140,
      "quantity": 16,
      "structure": ["byLength", "byWidth", "none"],
      "rotationStep": "30deg"
    }
  ],
  "stock": [
    {
      "id": 1,
      "materialId": 1,
      "length": 2245,
      "width": 3210,
      "quantity": 1,
      "structure": "none",
      "priority": "normal",
      "description": "",
      "edging": {
        "left": 20,
        "right": 20,
        "top": 20,
        "bottom": 20
      },
      "defects": [
        {
        "x": 300,
        "y": 600,
        "length": 200,
        "width": 100
        }
      ]
    },
    {
      "id": 2,
      "materialId": 1,
      "length": 2245,
      "width": 3210,
      "quantity": 1,
      "structure": "none",
      "priority": "low",
      "description": "",
      "edging": {
        "left": 20,
        "right": 20,
        "top": 20,
        "bottom": 20
      }
    }
  ]
}
        

结果

{
  "version": 3,
  "defaultUnits": {
    "length": "mm",
    "field": "sqmm",
    "angle": "rad"
  },
  "statistics": {
    "2d": {
      "field": 7206450,
      "usedField": 4693641.6838,
      "wasteField": 2512808.3162,
      "unusedField": 0,
      "cutCount": 208,
      "cutsLength": 58002.780250133845
    },
    "1d": {
      "length": 0,
      "usedLength": 0,
      "wasteLength": 0,
      "unusedLength": 0,
      "cutCount": 0,
      "cutsLength": 0
    }
  },
  "cuttings": [
    {
      "stockItemId": 1,
      "quantity": 1,
      "cost": 0,
      "gain": 0,
      "statistics": {
        "2d": {
          "field": 7206450,
          "usedField": 4693641.6838,
          "wasteField": 2512808.3162,
          "unusedField": 0,
          "cutCount": 208,
          "cutsLength": 58002.780250133845
        }
      },
      "pieces": [
        {
          "pieceId": 2,
          "x": 500,
          "y": 20,
          "rotation": "0.000000rad",
          "shape": "M0,0 L122000,0 L122000,74000 L0,74000 Z ",
          "bbox": {
            "length": 1220,
            "width": 740
          }
        },
        {
          "pieceId": 5,
          "x": 164,
          "y": 526.97,
          "rotation": "4.712389rad",
          "shape": "M0.000238497610553168,-20000 L0.000476995221106336,-40000 L30000,-50000 L30000,0.000357746408553794 Z ",
          "bbox": {
            "length": 500,
            "width": 300
          }
        },
        {
          "pieceId": 5,
          "x": 2056,
          "y": 526.97,
          "rotation": "1.570796rad",
          "shape": "M-0.000874227785971016,-20000 L-0.00174845557194203,-40000 L-30000.001953125,-50000 L-30000,0.00131134164985269 Z ",
          "bbox": {
            "length": 500,
            "width": 300
          }
        },
        {
          "pieceId": 5,
          "x": 2372.87,
          "y": 559.36,
          "rotation": "2.617994rad",
          "shape": "M-17320.5078125,10000.0009765625 L-34641.015625,20000.001953125 L-58301.26953125,-980.758666992188 L-15000.001953125,-25980.76171875 Z ",
          "bbox": {
            "length": 500,
            "width": 300
          }
        }
              ],
      "rest": [],
      "cuts": [
        {
          "type": "line",
          "startX": 500,
          "startY": 20,
          "endX": 1720,
          "endY": 20,
          "needShift": false
        },
        {
          "type": "line",
          "startX": 1720,
          "startY": 20,
          "endX": 1720,
          "endY": 760,
          "needShift": false
        },
                {
          "type": "curve",
          "startX": 1462.42,
          "startY": 1656,
          "startXp": 1235.98,
          "startYp": 1656,
          "endXp": 1052.42,
          "endYp": 1472.44,
          "endX": 1052.42,
          "endY": 1246,
          "needShift": false
        },
        {
          "type": "curve",
          "startX": 1052.42,
          "startY": 1246,
          "startXp": 1052.42,
          "startYp": 1019.56,
          "endXp": 1235.98,
          "endYp": 836,
          "endX": 1462.42,
          "endY": 836,
          "needShift": false
        }
              ]
    }
  ]
}
        

切割

请注意

此处展示的输入数据和优化结果由于体积原因是不完整的。它们仅用于演示目的,用来说明 API 的运行方式。

有关 API 的更多信息,请参见文档,以及在安装程序后可在其目录中找到的示例。

API使用简单便捷

服务器版本允许使用基于Websocket协议的简易便捷的API进行通信。

服务器和客户端之间交换的所有消息均以JSON格式保存。

示例命令:
{ "cmd":"cmdListJobs","id":9222}
        
示例响应:
{ "id":9222,"jobs":[{ "id":1,"state":"sDone","progress":100,"combinationCount":1042885,"createDate":"2023-04-18T12:31:43.133+02:00","startDate":"2023-04-18T12:31:43.166+02:00","endDate":"2023-04-18T12:31:44.739+02:00"}],"success":true}
        
示例事件:
{ "event":"JobProgress","jobId":1,"progress":74,"combinationCount":668878}
        

消息类型

命令发送给服务器。示例命令包括"add job"、"get list of jobs"、"get status"、"get job data"等。

服务器发送响应给客户端。 根据命令的类型,响应可能具有不同的格式。

服务器还自行发送各种事件,如"job added"、"optimization progress"、"optimization completed"等。

作业队列

该程序一次只能执行一次优化。 在此期间,可以接受新的作业优化,但将按照添加的顺序排队并依次执行。

作业任务

每个作业任务都是一个单独的优化订单。 作业任务是相互独立的,包含一整套输入数据,即工件、库存、材料组、饰面和切割设备。

结果

结果包括所有切割。每次切割包括工件废料的处理,以及切割列表

下载自动化TonCut

TonCut Engine

2.1.34.2330

  • 真实形状嵌套(不规则形状)。
  • 利用人工智能获得更好的优化结果。
  • 通过使用所有CPU内核来充分利用计算机。
  • 批处理模式下的作业能力。
  • 作为Windows服务(Websocket API)时作业的能力。
  • JSON格式的简单便捷API
  • 2D 和 1D 材料的切割优化。
  • 使用斜切对 1D 材料进行切割。
  • 切割。
  • 支持棋子组以及指定每个组内棋子的优化顺序的选项。
  • 支持胶合
  • 支持多个材料组和切割设备。
  • 支持自定义优化算法
  • 成本优化。

要更新程序,只需安装新版本即可。切勿在升级前卸载旧程序版本!

需要更多信息吗?

价格从 € 8.37 开始。 选择适合您的版本和许可条款。 查看价格
想了解更多?欢迎访问我们的网店! 立即购买 查看如何购买
有关详细信息,请参阅 TonCut Engine 文档。 了解更多
订阅时事通讯