Script: Rete example of OCCT wires to DXF

Rete example of OCCT wires to DXF picture
Type
Rete logo indicatorrete
Date Created
Feb 26, 2024, 3:08:40 PM
Last Edit Date
Feb 26, 2024, 9:56:47 PM

Project Information

In the latest release we introduce the methods to transform wires of the shape into collections of points based on OCCT tangential deflection. This enables to rebuild 2D JSCAD paths and save them to DXF file format together with other 2D entities of JSCAD such as path text.

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "11ee45126f6e7fc3": {
      "id": "11ee45126f6e7fc3",
      "name": "bitbybit.occt.shapes.face.createRectangleFace",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "width": 5,
        "length": 10
      },
      "inputs": {},
      "position": [
        1175.8928708194205,
        -424.32562158610745
      ]
    },
    "274eea4e0bbd4d7f": {
      "id": "274eea4e0bbd4d7f",
      "name": "bitbybit.occt.shapes.face.createCircleFace",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "radius": 0.5
      },
      "inputs": {
        "center": {
          "connections": [
            {
              "node": "1bea1ebcf5c953f2",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3742.136959110282,
        242.8004289477258
      ]
    },
    "01c7ed0964301ef6": {
      "id": "01c7ed0964301ef6",
      "name": "bitbybit.occt.shapes.wire.getWire",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "index": 0
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "11ee45126f6e7fc3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1695.4582038481897,
        212.24246503918795
      ]
    },
    "45e221a37df75f77": {
      "id": "45e221a37df75f77",
      "name": "bitbybit.occt.shapes.edge.getEdge",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "index": 4
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "01c7ed0964301ef6",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2093.217560320334,
        426.00820716698286
      ]
    },
    "bd1bc0996b4fe29a": {
      "id": "bd1bc0996b4fe29a",
      "name": "bitbybit.occt.shapes.edge.getEdge",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "index": 2
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "01c7ed0964301ef6",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2102.921471489834,
        125.43557993364698
      ]
    },
    "a4dde6cd7baefb9d": {
      "id": "a4dde6cd7baefb9d",
      "name": "bitbybit.occt.shapes.edge.divideEdgeByParamsToPoints",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "nrOfDivisions": 5,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "bd1bc0996b4fe29a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2484.6483584634016,
        -66.81803297007843
      ]
    },
    "06ce2ce76473be38": {
      "id": "06ce2ce76473be38",
      "name": "bitbybit.occt.shapes.edge.divideEdgeByParamsToPoints",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "nrOfDivisions": 5,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "45e221a37df75f77",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2487.780520481191,
        372.32671695476915
      ]
    },
    "baccc13fbd7bc09a": {
      "id": "baccc13fbd7bc09a",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "a4dde6cd7baefb9d",
              "output": "result",
              "data": {}
            },
            {
              "node": "06ce2ce76473be38",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2995.6735297393984,
        190.39506855509407
      ]
    },
    "1bea1ebcf5c953f2": {
      "id": "1bea1ebcf5c953f2",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 2
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "baccc13fbd7bc09a",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3357.0574274715045,
        310.695319180986
      ]
    },
    "f68cd017cb5d4c99": {
      "id": "f68cd017cb5d4c99",
      "name": "bitbybit.occt.booleans.difference",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "keepEdges": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "11ee45126f6e7fc3",
              "output": "result",
              "data": {}
            }
          ]
        },
        "shapes": {
          "connections": [
            {
              "node": "4485f793087ed679",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5019.485490427133,
        85.81685962366686
      ]
    },
    "3fb9c5d1165b4ab1": {
      "id": "3fb9c5d1165b4ab1",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "274eea4e0bbd4d7f",
              "output": "result",
              "data": {}
            },
            {
              "node": "984dcd8b2d2f21ea",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4134.166585112095,
        548.3381280236001
      ]
    },
    "984dcd8b2d2f21ea": {
      "id": "984dcd8b2d2f21ea",
      "name": "bitbybit.occt.shapes.face.createEllipseFace",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "radiusMinor": 0.7,
        "radiusMajor": 2.5
      },
      "inputs": {},
      "position": [
        3759.606492042091,
        735.9562035476938
      ]
    },
    "db647f4209e6b917": {
      "id": "db647f4209e6b917",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "3fb9c5d1165b4ab1",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4408.03887703275,
        537.2369397447015
      ]
    },
    "4485f793087ed679": {
      "id": "4485f793087ed679",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "db647f4209e6b917",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4702.255610248676,
        533.2886464048435
      ]
    },
    "ffebc1511575e5c3": {
      "id": "ffebc1511575e5c3",
      "name": "bitbybit.occt.shapes.face.createCircleFace",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "radius": 2
      },
      "inputs": {
        "center": {
          "connections": [
            {
              "node": "c24f31ebb31cf193",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5685.384205661066,
        532.6082168179094
      ]
    },
    "c24f31ebb31cf193": {
      "id": "c24f31ebb31cf193",
      "name": "bitbybit.vector.vectorXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": 0,
        "y": 0,
        "z": 9
      },
      "inputs": {},
      "position": [
        5188.782964076654,
        629.8718890325273
      ]
    },
    "9d09a43e2530314c": {
      "id": "9d09a43e2530314c",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "4d18b5a0c284c496",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6578.536938303309,
        73.59693483251874
      ]
    },
    "4d18b5a0c284c496": {
      "id": "4d18b5a0c284c496",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "9a1743eec067091f",
              "output": "result",
              "data": {}
            },
            {
              "node": "ba608cae323b55a8",
              "output": "result",
              "data": {}
            },
            {
              "node": "ffebc1511575e5c3",
              "output": "result",
              "data": {}
            },
            {
              "node": "71faca9387875de3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6077.7810227138425,
        242.56692667549862
      ]
    },
    "154ffc435175bd24": {
      "id": "154ffc435175bd24",
      "name": "bitbybit.occt.shapes.wire.wiresToPoints",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "angularDeflection": 0.1,
        "curvatureDeflection": 0.1,
        "minimumOfPoints": 2,
        "uTolerance": 1e-9,
        "minimumLength": 1e-7
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "4d1bf6466004e70d",
              "output": "result",
              "data": {}
            }
          ]
        },
        "angularDeflection": {
          "connections": [
            {
              "node": "b579a87dafb4e773",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7441.0966292564335,
        -37.03370832165268
      ]
    },
    "4d1bf6466004e70d": {
      "id": "4d1bf6466004e70d",
      "name": "bitbybit.occt.transforms.rotate",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "angle": 90
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "9d09a43e2530314c",
              "output": "result",
              "data": {}
            }
          ]
        },
        "axis": {
          "connections": [
            {
              "node": "8eea25c4767132da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7051.567743760782,
        168.3436369285719
      ]
    },
    "8eea25c4767132da": {
      "id": "8eea25c4767132da",
      "name": "bitbybit.vector.vectorXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": -1,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        6560.533860029217,
        438.171381658161
      ]
    },
    "66f3f42c4d1021df": {
      "id": "66f3f42c4d1021df",
      "name": "bitbybit.jscad.path.createPathsFromPoints",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        }
      },
      "inputs": {
        "pointsLists": {
          "connections": [
            {
              "node": "154ffc435175bd24",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7908.2835752865185,
        -13.894409666602067
      ]
    },
    "4fee1557643d2038": {
      "id": "4fee1557643d2038",
      "name": "bitbybit.draw.drawAnyAsync",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        }
      },
      "inputs": {
        "options": {
          "connections": [
            {
              "node": "8dddbb6a6e86bb94",
              "output": "result",
              "data": {}
            }
          ]
        },
        "entity": {
          "connections": [
            {
              "node": "edb7d521d6f9bf0a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8557.05554608812,
        843.062676252615
      ]
    },
    "8dddbb6a6e86bb94": {
      "id": "8dddbb6a6e86bb94",
      "name": "bitbybit.draw.optionsSimple",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "size": 0.1,
        "opacity": 1,
        "updatable": false,
        "hidden": false
      },
      "inputs": {
        "colours": {
          "connections": [
            {
              "node": "9d2f8b4887ce62ff",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7358.087210409164,
        1023.8625364463674
      ]
    },
    "9d2f8b4887ce62ff": {
      "id": "9d2f8b4887ce62ff",
      "name": "bitbybit.color.hexColor",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "color": "#8affc2"
      },
      "inputs": {},
      "position": [
        7029.076052016437,
        1028.237013456413
      ]
    },
    "9a1743eec067091f": {
      "id": "9a1743eec067091f",
      "name": "bitbybit.occt.fillets.fillet2d",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "radius": 0.2
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "de98423c64d13392",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5743.469065360105,
        -315.1871508819934
      ]
    },
    "de98423c64d13392": {
      "id": "de98423c64d13392",
      "name": "bitbybit.occt.shapes.wire.getWire",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "index": 0
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "f68cd017cb5d4c99",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5393.311184320025,
        -173.4934963389147
      ]
    },
    "f4563bbf45d52e59": {
      "id": "f4563bbf45d52e59",
      "name": "bitbybit.jscad.downloadGeometryDxf",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "fileName": "cool"
      },
      "inputs": {
        "geometry": {
          "connections": [
            {
              "node": "552ca2e323994123",
              "output": "list",
              "data": {}
            }
          ]
        },
        "fileName": {
          "connections": [
            {
              "node": "6c09973590298afc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9375.573690651712,
        -60.51119992602236
      ]
    },
    "ba608cae323b55a8": {
      "id": "ba608cae323b55a8",
      "name": "bitbybit.occt.shapes.wire.getWire",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "index": 1
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "f68cd017cb5d4c99",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5618.112529088196,
        161.76371360821906
      ]
    },
    "edb7d521d6f9bf0a": {
      "id": "edb7d521d6f9bf0a",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "154ffc435175bd24",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8090.817968928495,
        592.7988419537703
      ]
    },
    "71faca9387875de3": {
      "id": "71faca9387875de3",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "2732b40570e77bd1",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5898.375780300618,
        952.6377936538671
      ]
    },
    "2edf87beb2d30750": {
      "id": "2edf87beb2d30750",
      "name": "bitbybit.point.pointXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": 5,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        5197.548902318496,
        985.4349913918284
      ]
    },
    "2732b40570e77bd1": {
      "id": "2732b40570e77bd1",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "2edf87beb2d30750",
              "output": "result",
              "data": {}
            },
            {
              "node": "0d11ed2da9962a94",
              "output": "result",
              "data": {}
            },
            {
              "node": "7e0a9f83dab7eb31",
              "output": "result",
              "data": {}
            },
            {
              "node": "12ee8f11426f7f75",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5558.2240565488255,
        1458.8668708231792
      ]
    },
    "0d11ed2da9962a94": {
      "id": "0d11ed2da9962a94",
      "name": "bitbybit.point.pointXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": 6,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        5209.566743633726,
        1301.9573585198982
      ]
    },
    "7e0a9f83dab7eb31": {
      "id": "7e0a9f83dab7eb31",
      "name": "bitbybit.point.pointXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": 6,
        "y": 0,
        "z": 6
      },
      "inputs": {},
      "position": [
        5209.998969840203,
        1607.7903835936077
      ]
    },
    "12ee8f11426f7f75": {
      "id": "12ee8f11426f7f75",
      "name": "bitbybit.point.pointXYZ",
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0
        },
        "x": 8,
        "y": 0,
        "z": 3
      },
      "inputs": {},
      "position": [
        5196.341659627321,
        1914.9738362636958
      ]
    },
    "bf58dc10ace5ed64": {
      "id": "bf58dc10ace5ed64",
      "name": "bitbybit.jscad.text.createVectorText",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "text": "DXF Example",
        "segments": 24,
        "xOffset": 10,
        "yOffset": 0,
        "height": 1,
        "lineSpacing": 1.4,
        "letterSpacing": 1,
        "align": "center",
        "extrudeOffset": 0
      },
      "inputs": {},
      "position": [
        6999.557508826982,
        -741.9285949049353
      ]
    },
    "d662ef139f020bd0": {
      "id": "d662ef139f020bd0",
      "name": "bitbybit.jscad.path.createPathsFromPoints",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        }
      },
      "inputs": {
        "pointsLists": {
          "connections": [
            {
              "node": "bf58dc10ace5ed64",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7473.408653312119,
        -700.7894249342274
      ]
    },
    "b34b864566e82f17": {
      "id": "b34b864566e82f17",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "d662ef139f020bd0",
              "output": "result",
              "data": {}
            },
            {
              "node": "66f3f42c4d1021df",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8379.880515032015,
        -28.577501270315338
      ]
    },
    "1dabbda6d4f9240b": {
      "id": "1dabbda6d4f9240b",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "b34b864566e82f17",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8707.516341832123,
        -67.24421165933877
      ]
    },
    "552ca2e323994123": {
      "id": "552ca2e323994123",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "1dabbda6d4f9240b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9062.19049096311,
        -54.51580509061711
      ]
    },
    "6c09973590298afc": {
      "id": "6c09973590298afc",
      "name": "bitbybit.logic.valueGate",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "boolean": false
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "f5db1e13a9e45a0e",
              "output": "result",
              "data": {}
            }
          ]
        },
        "boolean": {
          "connections": [
            {
              "node": "12b7f4d0dd1b1e0d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8976.171489394681,
        131.8051595163385
      ]
    },
    "f5db1e13a9e45a0e": {
      "id": "f5db1e13a9e45a0e",
      "name": "bitbybit.text.create",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "text": "bitbybit-dxf"
      },
      "inputs": {},
      "position": [
        8615.648501171176,
        183.86018453001358
      ]
    },
    "12b7f4d0dd1b1e0d": {
      "id": "12b7f4d0dd1b1e0d",
      "name": "bitbybit.logic.boolean",
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0
        },
        "boolean": false
      },
      "inputs": {},
      "position": [
        8577.28752964681,
        404.600330251528
      ]
    },
    "b579a87dafb4e773": {
      "id": "b579a87dafb4e773",
      "name": "bitbybit.math.numberSlider",
      "data": {
        "options": {
          "min": 0.05,
          "max": 1,
          "step": 0.01,
          "width": 350
        },
        "number": 0.33
      },
      "inputs": {},
      "position": [
        470.87054038199483,
        -933.6477291753729
      ]
    }
  }
}
Plans & Pricing

Choose Your Plan

Editor plans for 3D development, API keys for server-side CAD algorithms

B2B

ENTERPRISE

Custom pricing

Custom software development, dedicated servers & CAD automation at scale.

CAD Automation & Software
  • Custom software development
  • Cloud CAD automation pipelines
  • 3D configurators (STEP & GLTF)
  • Batch export jobs
  • Custom algorithms & deployment
Infrastructure & Support
  • Custom compute allocation
  • Dedicated / VPS server tenants
  • Long-running computation jobs
  • Custom upload limits & overage
  • SLA & premium support