Add kclVersion as a field of the setting attribute (#6689)

Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
Nick Cameron
2025-05-06 08:44:03 +12:00
committed by GitHub
parent 7ab879a94f
commit cf2e9d4b91
186 changed files with 7478 additions and 6399 deletions

View File

@ -2,7 +2,7 @@
// An 80/20 extruded aluminum linear rail. T-slot profile adjustable by profile height, rail length, and origin position // An 80/20 extruded aluminum linear rail. T-slot profile adjustable by profile height, rail length, and origin position
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Create a function to make the 80-20 rail // Create a function to make the 80-20 rail
fn rail8020(originStart, railHeight, railLength) { fn rail8020(originStart, railHeight, railLength) {

View File

@ -2,7 +2,7 @@
// The plastic housing that contains the fan and the motor // The plastic housing that contains the fan and the motor
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Import parameters // Import parameters
import * from "parameters.kcl" import * from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Spinning axial fan that moves airflow // Spinning axial fan that moves airflow
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Import parameters // Import parameters
import * from "parameters.kcl" import * from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A small axial fan, used to push or draw airflow over components to remove excess heat // A small axial fan, used to push or draw airflow over components to remove excess heat
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Import all parts into assembly file // Import all parts into assembly file
import "fan-housing.kcl" as fanHousing import "fan-housing.kcl" as fanHousing

View File

@ -2,7 +2,7 @@
// A small electric motor to power the fan // A small electric motor to power the fan
// Set Units // Set Units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Import Parameters // Import Parameters
import * from "parameters.kcl" import * from "parameters.kcl"

View File

@ -1,7 +1,7 @@
// Global parameters for the axial fan // Global parameters for the axial fan
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define Parameters // Define Parameters
export fanSize = 120 export fanSize = 120

View File

@ -2,7 +2,7 @@
// A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The primary purpose of a ball bearing is to reduce rotational friction and support radial and axial loads. // A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The primary purpose of a ball bearing is to reduce rotational friction and support radial and axial loads.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
outsideDiameter = 1.625 outsideDiameter = 1.625

View File

@ -2,7 +2,7 @@
// The following file describes various functions to build the 3D boaty. The name of this file is a bit of misnomer, the shape of the object is a typical park bench. // The following file describes various functions to build the 3D boaty. The name of this file is a bit of misnomer, the shape of the object is a typical park bench.
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
export dividerThickness = 4 export dividerThickness = 4

View File

@ -2,7 +2,7 @@
// This is a slight remix of Depep1's original 3D Boaty (https://www.printables.com/model/1141963-3d-boaty). This is a tool used for benchmarking 3D FDM printers for bed adhesion, overhangs, bridging and top surface quality. The name of this file is a bit of misnomer, the shape of the object is a typical park bench. // This is a slight remix of Depep1's original 3D Boaty (https://www.printables.com/model/1141963-3d-boaty). This is a tool used for benchmarking 3D FDM printers for bed adhesion, overhangs, bridging and top surface quality. The name of this file is a bit of misnomer, the shape of the object is a typical park bench.
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define the bench length // Define the bench length
benchLength = 56 benchLength = 56

View File

@ -2,7 +2,7 @@
// A simple bottle with a hollow, watertight interior // A simple bottle with a hollow, watertight interior
// Set Units // Set Units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Input dimensions to define the bottle // Input dimensions to define the bottle
bottleWidth = 80 bottleWidth = 80

View File

@ -2,7 +2,7 @@
// This is a bracket that holds a shelf. It is made of aluminum and is designed to hold a force of 300 lbs. The bracket is 6 inches wide and the force is applied at the end of the shelf, 12 inches from the wall. The bracket has a factor of safety of 1.2. The legs of the bracket are 5 inches and 2 inches long. The thickness of the bracket is calculated from the constraints provided. // This is a bracket that holds a shelf. It is made of aluminum and is designed to hold a force of 300 lbs. The bracket is 6 inches wide and the force is applied at the end of the shelf, 12 inches from the wall. The bracket has a factor of safety of 1.2. The legs of the bracket are 5 inches and 2 inches long. The thickness of the bracket is calculated from the constraints provided.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
sigmaAllow = 35000 // psi (6061-T6 aluminum) sigmaAllow = 35000 // psi (6061-T6 aluminum)

View File

@ -2,7 +2,7 @@
// Brake calipers are used to squeeze the brake pads against the rotor, causing larger and larger amounts of friction depending on how hard the brakes are pressed. // Brake calipers are used to squeeze the brake pads against the rotor, causing larger and larger amounts of friction depending on how hard the brakes are pressed.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import caliperTolerance, caliperPadLength, caliperThickness, caliperOuterEdgeRadius, caliperInnerEdgeRadius, rotorDiameter, rotorTotalThickness, yAxisOffset from "parameters.kcl" import caliperTolerance, caliperPadLength, caliperThickness, caliperOuterEdgeRadius, caliperInnerEdgeRadius, rotorDiameter, rotorTotalThickness, yAxisOffset from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A component of a disc brake system. It provides a surface for brake pads to press against, generating the friction needed to slow or stop the vehicle. // A component of a disc brake system. It provides a surface for brake pads to press against, generating the friction needed to slow or stop the vehicle.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import rotorDiameter, rotorInnerDiameter, rotorSinglePlateThickness, rotorInnerDiameterThickness, lugHolePatternDia, lugSpacing, rotorTotalThickness, spacerPatternDiameter, spacerDiameter, spacerLength, spacerCount, wheelDiameter, lugCount, yAxisOffset, drillAndSlotCount from "parameters.kcl" import rotorDiameter, rotorInnerDiameter, rotorSinglePlateThickness, rotorInnerDiameterThickness, lugHolePatternDia, lugSpacing, rotorTotalThickness, spacerPatternDiameter, spacerDiameter, spacerLength, spacerCount, wheelDiameter, lugCount, yAxisOffset, drillAndSlotCount from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A tire is a critical component of a vehicle that provides the necessary traction and grip between the car and the road. It supports the vehicle's weight and absorbs shocks from road irregularities. // A tire is a critical component of a vehicle that provides the necessary traction and grip between the car and the road. It supports the vehicle's weight and absorbs shocks from road irregularities.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import tireInnerDiameter, tireOuterDiameter, tireDepth, bendRadius, tireTreadWidth, tireTreadDepth, tireTreadOffset from "parameters.kcl" import tireInnerDiameter, tireOuterDiameter, tireDepth, bendRadius, tireTreadWidth, tireTreadDepth, tireTreadOffset from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A sports car wheel with a circular lug pattern and spokes. // A sports car wheel with a circular lug pattern and spokes.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import lugCount, lugSpacing, offset, backSpacing, wheelWidth, wheelDiameter, spokeCount, spokeGap, spokeAngle, spokeThickness from "parameters.kcl" import lugCount, lugSpacing, offset, backSpacing, wheelWidth, wheelDiameter, spokeCount, spokeGap, spokeAngle, spokeThickness from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// lug Nuts are essential components used to create secure connections, whether for electrical purposes, like terminating wires or grounding, or for mechanical purposes, such as providing mounting points or reinforcing structural joints. // lug Nuts are essential components used to create secure connections, whether for electrical purposes, like terminating wires or grounding, or for mechanical purposes, such as providing mounting points or reinforcing structural joints.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import lugDiameter, lugHeadLength, lugThreadDiameter, lugLength, lugThreadDepth, lugSpacing from "parameters.kcl" import lugDiameter, lugHeadLength, lugThreadDiameter, lugLength, lugThreadDepth, lugSpacing from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A car wheel assembly with a rotor, tire, and lug nuts. // A car wheel assembly with a rotor, tire, and lug nuts.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parts // Import parts
import "car-wheel.kcl" as carWheel import "car-wheel.kcl" as carWheel

View File

@ -1,7 +1,7 @@
// Car wheel assembly parameters // Car wheel assembly parameters
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Car wheel // Car wheel
export lugCount = 5 export lugCount = 5

View File

@ -2,7 +2,7 @@
// This is a color cube centered about the origin. It is used to help determine orientation in the scene. // This is a color cube centered about the origin. It is used to help determine orientation in the scene.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Parameters referenced in drawRectangle // Parameters referenced in drawRectangle
size = 100 size = 100

View File

@ -2,7 +2,7 @@
// A cycloidal gear is a gear with a continuous, curved tooth profile. They are used in watchmaking and high precision robotics actuation // A cycloidal gear is a gear with a continuous, curved tooth profile. They are used in watchmaking and high precision robotics actuation
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Create a function for the cycloidal gear // Create a function for the cycloidal gear
fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle: number(deg)) { fn cycloidalGear(gearPitch, gearHeight, holeDiameter, helixAngle: number(deg)) {

View File

@ -2,7 +2,7 @@
// A regular dodecahedron or pentagonal dodecahedron is a dodecahedron composed of regular pentagonal faces, three meeting at each vertex. This example shows constructing the a dodecahedron with a series of intersects. // A regular dodecahedron or pentagonal dodecahedron is a dodecahedron composed of regular pentagonal faces, three meeting at each vertex. This example shows constructing the a dodecahedron with a series of intersects.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define the dihedral angle for a regular dodecahedron // Define the dihedral angle for a regular dodecahedron
dihedral = 116.565 dihedral = 116.565

View File

@ -2,7 +2,7 @@
// A stainless steel sink unit with dual rectangular basins and six under-counter storage compartments. // A stainless steel sink unit with dual rectangular basins and six under-counter storage compartments.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
tableHeight = 850 tableHeight = 850

View File

@ -2,7 +2,7 @@
// An enclosure body and sealing lid for storing items // An enclosure body and sealing lid for storing items
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
length = 175 length = 175

View File

@ -2,7 +2,7 @@
// A welded exhaust header for an inline 4-cylinder engine // A welded exhaust header for an inline 4-cylinder engine
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
primaryTubeDiameter = 1.625 primaryTubeDiameter = 1.625

View File

@ -2,7 +2,7 @@
// A flange is a flat rim, collar, or rib, typically forged or cast, that is used to strengthen an object, guide it, or attach it to another object. Flanges are known for their use in various applications, including piping, plumbing, and mechanical engineering, among others. // A flange is a flat rim, collar, or rib, typically forged or cast, that is used to strengthen an object, guide it, or attach it to another object. Flanges are known for their use in various applications, including piping, plumbing, and mechanical engineering, among others.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
mountingHoleDia = .625 mountingHoleDia = .625

View File

@ -2,7 +2,7 @@
// This is a bracket that holds an audio device underneath a desk or shelf. The audio device has dimensions of 144mm wide, 80mm length and 45mm depth with fillets of 6mm. This mounting bracket is designed to be 3D printed with PLA material // This is a bracket that holds an audio device underneath a desk or shelf. The audio device has dimensions of 144mm wide, 80mm length and 45mm depth with fillets of 6mm. This mounting bracket is designed to be 3D printed with PLA material
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// define parameters // define parameters
radius = 6.0 radius = 6.0

View File

@ -2,7 +2,7 @@
// Use these spatulas for mixing, flipping, and scraping. // Use these spatulas for mixing, flipping, and scraping.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
flipperThickness = 3.5 flipperThickness = 3.5

View File

@ -2,7 +2,7 @@
// A french press immersion coffee maker // A french press immersion coffee maker
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
carafeDiameter = 4.41 carafeDiameter = 4.41

View File

@ -2,7 +2,7 @@
// A flat bar or rail that is engraved with teeth along its length. These teeth are designed to mesh with the teeth of a gear, known as a pinion. When the pinion, a small cylindrical gear, rotates, its teeth engage with the teeth on the rack, causing the rack to move linearly. Conversely, linear motion applied to the rack will cause the pinion to rotate. // A flat bar or rail that is engraved with teeth along its length. These teeth are designed to mesh with the teeth of a gear, known as a pinion. When the pinion, a small cylindrical gear, rotates, its teeth engage with the teeth on the rack, causing the rack to move linearly. Conversely, linear motion applied to the rack will cause the pinion to rotate.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
length = 100 length = 100

View File

@ -2,7 +2,7 @@
// A rotating machine part having cut teeth or, in the case of a cogwheel, inserted teeth (called cogs), which mesh with another toothed part to transmit torque. Geared devices can change the speed, torque, and direction of a power source. The two elements that define a gear are its circular shape and the teeth that are integrated into its outer edge, which are designed to fit into the teeth of another gear. // A rotating machine part having cut teeth or, in the case of a cogwheel, inserted teeth (called cogs), which mesh with another toothed part to transmit torque. Geared devices can change the speed, torque, and direction of a power source. The two elements that define a gear are its circular shape and the teeth that are integrated into its outer edge, which are designed to fit into the teeth of another gear.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
nTeeth = 21 nTeeth = 21

View File

@ -2,7 +2,7 @@
// Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion. This baseplate version includes holes for magnet placement // Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion. This baseplate version includes holes for magnet placement
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
binLength = 42.0 binLength = 42.0

View File

@ -2,7 +2,7 @@
// Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion // Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
binLength = 42.0 binLength = 42.0

View File

@ -2,7 +2,7 @@
// Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion. This Gridfinity bins version includes a lip to allowable stacking Gridfinity bins // Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion. This Gridfinity bins version includes a lip to allowable stacking Gridfinity bins
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
binLength = 41.5 binLength = 41.5

View File

@ -2,7 +2,7 @@
// Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion // Gridfinity is a system to help you work more efficiently. This is a system invented by Zack Freedman. There are two main components the baseplate and the bins. The components are comprised of a matrix of squares. Allowing easy stacking and expansion
// Set units in millimeters (mm) // Set units in millimeters (mm)
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
binLength = 41.5 binLength = 41.5

View File

@ -2,7 +2,7 @@
// A hex nut is a type of fastener with a threaded hole and a hexagonal outer shape, used in a wide variety of applications to secure parts together. The hexagonal shape allows for a greater torque to be applied with wrenches or tools, making it one of the most common nut types in hardware. // A hex nut is a type of fastener with a threaded hole and a hexagonal outer shape, used in a wide variety of applications to secure parts together. The hexagonal shape allows for a greater torque to be applied with wrenches or tools, making it one of the most common nut types in hardware.
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters (5/16" - 24 thread size) // Define parameters (5/16" - 24 thread size)
wallToWallLength = 0.5 wallToWallLength = 0.5

View File

@ -2,7 +2,7 @@
// A structural metal beam with an I shaped cross section. Often used in construction and architecture // A structural metal beam with an I shaped cross section. Often used in construction and architecture
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
beamLength = 6ft beamLength = 6ft

View File

@ -2,7 +2,7 @@
// A custom keyboard with Zoo brand lettering // A custom keyboard with Zoo brand lettering
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
baseColor = "#0f0f0f" baseColor = "#0f0f0f"

View File

@ -2,7 +2,7 @@
// A standard Lego brick. This is a small, plastic construction block toy that can be interlocked with other blocks to build various structures, models, and figures. There are a lot of hacks used in this code. // A standard Lego brick. This is a small, plastic construction block toy that can be interlocked with other blocks to build various structures, models, and figures. There are a lot of hacks used in this code.
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
lbumps = 3 // number of bumps long lbumps = 3 // number of bumps long

View File

@ -2,7 +2,7 @@
// A circular vanity mirror mounted on a swiveling arm with pivot joints, used for personal grooming. // A circular vanity mirror mounted on a swiveling arm with pivot joints, used for personal grooming.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Hinge parameters // Hinge parameters
hingeRadius = 8 hingeRadius = 8

View File

@ -2,7 +2,7 @@
// A flat piece of material, often metal or plastic, that serves as a support or base for attaching, securing, or mounting various types of equipment, devices, or components. // A flat piece of material, often metal or plastic, that serves as a support or base for attaching, securing, or mounting various types of equipment, devices, or components.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
plateLength = 10 plateLength = 10

View File

@ -1,7 +1,7 @@
// Global constants for the multi-axis robot // Global constants for the multi-axis robot
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Axis Angles // Axis Angles
export axisJ4 = 25deg export axisJ4 = 25deg

View File

@ -2,7 +2,7 @@
// A 4 axis robotic arm for industrial use. These machines can be used for assembly, packaging, organization of goods, and quality inspection processes // A 4 axis robotic arm for industrial use. These machines can be used for assembly, packaging, organization of goods, and quality inspection processes
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parts // Import parts
import "robot-arm-base.kcl" as robotArmBase import "robot-arm-base.kcl" as robotArmBase

View File

@ -1,7 +1,7 @@
// Robot Arm Base // Robot Arm Base
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import Constants // Import Constants
import basePlateRadius, basePlateThickness, baseChamfer, baseHeight from "globals.kcl" import basePlateRadius, basePlateThickness, baseChamfer, baseHeight from "globals.kcl"

View File

@ -1,7 +1,7 @@
// J2 Axis for Robot Arm // J2 Axis for Robot Arm
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
import axisJ1, axisJ2, axisJ2ArmWidth, axisJ2ArmLength, axisJ2ArmThickness, plane003 from "globals.kcl" import axisJ1, axisJ2, axisJ2ArmWidth, axisJ2ArmLength, axisJ2ArmThickness, plane003 from "globals.kcl"

View File

@ -1,7 +1,7 @@
// J3 Robot Arm // J3 Robot Arm
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
import plane002, axisJ2, axisJ3C, axisJ4, axisJ2ArmLength, axisJ3CArmLength, axisJ3CArmWidth, axisJ3CArmThickness from "globals.kcl" import plane002, axisJ2, axisJ3C, axisJ4, axisJ2ArmLength, axisJ3CArmLength, axisJ3CArmWidth, axisJ3CArmThickness from "globals.kcl"

View File

@ -1,7 +1,7 @@
// Robot Rotating Base // Robot Rotating Base
// Set Units // Set Units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
import axisJ1, baseHeight, plane001, plane002 from "globals.kcl" import axisJ1, baseHeight, plane001, plane002 from "globals.kcl"

View File

@ -2,7 +2,7 @@
// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads. // A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
length = 6 length = 6

View File

@ -2,7 +2,7 @@
// Piping for the pipe flange assembly // Piping for the pipe flange assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import pipeInnerDiameter, pipeOuterDiameter, pipeLength from "parameters.kcl" import pipeInnerDiameter, pipeOuterDiameter, pipeLength from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Flange used for mating two pipes together in the pipe flange assembly. // Flange used for mating two pipes together in the pipe flange assembly.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import pipeDiameter, mountingHoleDiameter, mountingHolePlacementDiameter, flangeDiameter, flangeTotalThickness, flangeBackHeight, flangeFrontHeight, flangeBaseThickness, flangeBackDiameter, flangeFrontDiameter from "parameters.kcl" import pipeDiameter, mountingHoleDiameter, mountingHolePlacementDiameter, flangeDiameter, flangeTotalThickness, flangeBackHeight, flangeFrontHeight, flangeBaseThickness, flangeBackDiameter, flangeFrontDiameter from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// screw for mating the flanges together in the pipe flange assembly // screw for mating the flanges together in the pipe flange assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import boltDiameter, boltLength, boltHeadLength, boltHeadDiameter, boltHexDrive, boltHexFlatLength, boltThreadLength from "parameters.kcl" import boltDiameter, boltLength, boltHeadLength, boltHeadDiameter, boltHexDrive, boltHexFlatLength, boltThreadLength from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Gasket for the pipe flange assembly. A gasket is a mechanical seal that fills the space between two or more mating surfaces, preventing leaks of liquids or gases under compression // Gasket for the pipe flange assembly. A gasket is a mechanical seal that fills the space between two or more mating surfaces, preventing leaks of liquids or gases under compression
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import gasketOutsideDiameter, gasketInnerDiameter, gasketThickness from "parameters.kcl" import gasketOutsideDiameter, gasketInnerDiameter, gasketThickness from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Hex nut for the screws in the pipe flange assembly. // Hex nut for the screws in the pipe flange assembly.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import hexNutDiameter, hexNutFlatToFlat, hexNutThickness, hexNutFlatLength from "parameters.kcl" import hexNutDiameter, hexNutFlatToFlat, hexNutThickness, hexNutFlatLength from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Washer for the screws in the pipe flange assembly. // Washer for the screws in the pipe flange assembly.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import washerInnerDia, washerOuterDia, washerThickness from "parameters.kcl" import washerInnerDia, washerOuterDia, washerThickness from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint. // A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import * from "parameters.kcl" import * from "parameters.kcl"

View File

@ -1,7 +1,7 @@
// Parameters // Parameters
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Flange (68095K348) // Flange (68095K348)
export pipeDiameter = 2.440 export pipeDiameter = 2.440

View File

@ -2,7 +2,7 @@
// A tubular section or hollow cylinder, usually but not necessarily of circular cross-section, used mainly to convey substances that can flow. // A tubular section or hollow cylinder, usually but not necessarily of circular cross-section, used mainly to convey substances that can flow.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
innerDiameter = 10 innerDiameter = 10

View File

@ -2,7 +2,7 @@
// Piping for the pipe flange assembly // Piping for the pipe flange assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
pipeInnerDiameter = 2.0 pipeInnerDiameter = 2.0

View File

@ -2,7 +2,7 @@
// poop shute for bambu labs printer - optimized for printing. // poop shute for bambu labs printer - optimized for printing.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
wallThickness = 0.125 wallThickness = 0.125

View File

@ -2,7 +2,7 @@
// A guide for routing a notch into a cross bar. // A guide for routing a notch into a cross bar.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
routerDiameter = 12.7 routerDiameter = 12.7

View File

@ -2,7 +2,7 @@
// A guide for routing a slate for a cross bar. // A guide for routing a slate for a cross bar.
// Set units // Set units
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Define parameters // Define parameters
routerDiameter = 12.7 routerDiameter = 12.7

View File

@ -2,7 +2,7 @@
// A component typically made from flat sheet metal through various manufacturing processes such as bending, punching, cutting, and forming. These brackets are used to support, attach, or mount other hardware components, often providing a structural or functional base for assembly. // A component typically made from flat sheet metal through various manufacturing processes such as bending, punching, cutting, and forming. These brackets are used to support, attach, or mount other hardware components, often providing a structural or functional base for assembly.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Input bolt pattern dimensions to mount the bracket // Input bolt pattern dimensions to mount the bracket
mountingBoltDiameter = 1 / 4 mountingBoltDiameter = 1 / 4

View File

@ -2,7 +2,7 @@
// This is for a #10-24 screw that is 1.00 inches long. A socket head cap screw is a type of fastener that is widely used in a variety of applications requiring a high strength fastening solution. It is characterized by its cylindrical head and internal hexagonal drive, which allows for tightening with an Allen wrench or hex key. // This is for a #10-24 screw that is 1.00 inches long. A socket head cap screw is a type of fastener that is widely used in a variety of applications requiring a high strength fastening solution. It is characterized by its cylindrical head and internal hexagonal drive, which allows for tightening with an Allen wrench or hex key.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
boltDiameter = 0.190 boltDiameter = 0.190

View File

@ -2,7 +2,7 @@
// Antenna for the walkie talkie assembly // Antenna for the walkie talkie assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import antennaLength, antennaBaseWidth, antennaBaseHeight, antennaTopWidth, antennaTopHeight from "parameters.kcl" import antennaLength, antennaBaseWidth, antennaBaseHeight, antennaTopWidth, antennaTopHeight from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// The main body of the walkie talkie assembly // The main body of the walkie talkie assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import height, width, thickness, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight from "parameters.kcl" import height, width, thickness, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// Button for the walkie talkie // Button for the walkie talkie
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import buttonWidth, buttonHeight, buttonThickness from "parameters.kcl" import buttonWidth, buttonHeight, buttonThickness from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// The plastic case for the front of the walkie talkie // The plastic case for the front of the walkie talkie
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters and Zoo logo // Import parameters and Zoo logo
import width, height, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight, squareHoleSideLength, caseTolerance from "parameters.kcl" import width, height, chamferLength, offset, screenWidth, screenHeight, screenYPosition, screenDepth, speakerBoxWidth, speakerBoxHeight, squareHoleSideLength, caseTolerance from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// The frequency knob for the walkie talkie assembly // The frequency knob for the walkie talkie assembly
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import width, thickness, height, knobDiameter, knobHeight, knobRadius from "parameters.kcl" import width, thickness, height, knobDiameter, knobHeight, knobRadius from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A portable, handheld two-way radio device that allows users to communicate wirelessly over short to medium distances. It operates on specific radio frequencies and features a push-to-talk button for transmitting messages, making it ideal for quick and reliable communication in outdoor, work, or emergency settings. // A portable, handheld two-way radio device that allows users to communicate wirelessly over short to medium distances. It operates on specific radio frequencies and features a push-to-talk button for transmitting messages, making it ideal for quick and reliable communication in outdoor, work, or emergency settings.
// set units // set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// import constants // import constants
import * from "parameters.kcl" import * from "parameters.kcl"

View File

@ -1,7 +1,7 @@
// Global parameters for the walkie talkie // Global parameters for the walkie talkie
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// body // body
export height = 4 export height = 4

View File

@ -1,7 +1,7 @@
// Walkie talkie talk button // Walkie talkie talk button
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Import parameters // Import parameters
import width, thickness, talkButtonSideLength, talkButtonHeight from "parameters.kcl" import width, thickness, talkButtonSideLength, talkButtonHeight from "parameters.kcl"

View File

@ -2,7 +2,7 @@
// A small, typically disk-shaped component with a hole in the middle, used in a wide range of applications, primarily in conjunction with fasteners like bolts and screws. Washers distribute the load of a fastener across a broader area. This is especially important when the fastening surface is soft or uneven, as it helps to prevent damage to the surface and ensures the load is evenly distributed, reducing the risk of the fastener becoming loose over time. // A small, typically disk-shaped component with a hole in the middle, used in a wide range of applications, primarily in conjunction with fasteners like bolts and screws. Washers distribute the load of a fastener across a broader area. This is especially important when the fastening surface is soft or uneven, as it helps to prevent damage to the surface and ensures the load is evenly distributed, reducing the risk of the fastener becoming loose over time.
// Set units // Set units
@settings(defaultLengthUnit = in) @settings(defaultLengthUnit = in, kclVersion = 1.0)
// Define parameters // Define parameters
innerDiameter = 0.203 innerDiameter = 0.203

View File

@ -7,7 +7,7 @@ use kittycad_modeling_cmds::coord::{System, KITTYCAD, OPENGL, VULKAN};
use crate::{ use crate::{
errors::KclErrorDetails, errors::KclErrorDetails,
execution::types::{UnitAngle, UnitLen}, execution::types::{UnitAngle, UnitLen},
parsing::ast::types::{Annotation, Expr, Node, ObjectProperty}, parsing::ast::types::{Annotation, Expr, LiteralValue, Node, ObjectProperty},
KclError, SourceRange, KclError, SourceRange,
}; };
@ -17,6 +17,7 @@ pub(super) const SIGNIFICANT_ATTRS: [&str; 2] = [SETTINGS, NO_PRELUDE];
pub(crate) const SETTINGS: &str = "settings"; pub(crate) const SETTINGS: &str = "settings";
pub(crate) const SETTINGS_UNIT_LENGTH: &str = "defaultLengthUnit"; pub(crate) const SETTINGS_UNIT_LENGTH: &str = "defaultLengthUnit";
pub(crate) const SETTINGS_UNIT_ANGLE: &str = "defaultAngleUnit"; pub(crate) const SETTINGS_UNIT_ANGLE: &str = "defaultAngleUnit";
pub(crate) const SETTINGS_VERSION: &str = "kclVersion";
pub(super) const NO_PRELUDE: &str = "no_std"; pub(super) const NO_PRELUDE: &str = "no_std";
pub(super) const IMPORT_FORMAT: &str = "format"; pub(super) const IMPORT_FORMAT: &str = "format";
@ -53,7 +54,7 @@ impl FromStr for Impl {
} }
pub(crate) fn settings_completion_text() -> String { pub(crate) fn settings_completion_text() -> String {
format!("@{SETTINGS}({SETTINGS_UNIT_LENGTH} = mm, {SETTINGS_UNIT_ANGLE} = deg)") format!("@{SETTINGS}({SETTINGS_UNIT_LENGTH} = mm, {SETTINGS_UNIT_ANGLE} = deg, {SETTINGS_VERSION} = 1.0)")
} }
pub(super) fn is_significant(attr: &&Node<Annotation>) -> bool { pub(super) fn is_significant(attr: &&Node<Annotation>) -> bool {
@ -89,6 +90,20 @@ pub(super) fn expect_ident(expr: &Expr) -> Result<&str, KclError> {
})) }))
} }
// Returns the unparsed number literal.
pub(super) fn expect_number(expr: &Expr) -> Result<String, KclError> {
if let Expr::Literal(lit) = expr {
if let LiteralValue::Number { .. } = &lit.value {
return Ok(lit.raw.clone());
}
}
Err(KclError::Semantic(KclErrorDetails {
message: "Unexpected settings value, expected a number, e.g., `1.0`".to_owned(),
source_ranges: vec![expr.into()],
}))
}
pub(super) fn get_impl(annotations: &[Node<Annotation>], source_range: SourceRange) -> Result<Option<Impl>, KclError> { pub(super) fn get_impl(annotations: &[Node<Annotation>], source_range: SourceRange) -> Result<Option<Impl>, KclError> {
for attr in annotations { for attr in annotations {
if attr.name.is_some() || attr.properties.is_none() { if attr.name.is_some() || attr.properties.is_none() {

View File

@ -336,6 +336,7 @@ impl ModuleState {
settings: MetaSettings { settings: MetaSettings {
default_length_units: Default::default(), default_length_units: Default::default(),
default_angle_units: Default::default(), default_angle_units: Default::default(),
kcl_version: "0.1".to_owned(),
}, },
} }
} }
@ -347,6 +348,7 @@ impl ModuleState {
pub struct MetaSettings { pub struct MetaSettings {
pub default_length_units: types::UnitLen, pub default_length_units: types::UnitLen,
pub default_angle_units: types::UnitAngle, pub default_angle_units: types::UnitAngle,
pub kcl_version: String,
} }
impl MetaSettings { impl MetaSettings {
@ -370,6 +372,10 @@ impl MetaSettings {
let value = types::UnitAngle::from_str(value, annotation.as_source_range())?; let value = types::UnitAngle::from_str(value, annotation.as_source_range())?;
self.default_angle_units = value; self.default_angle_units = value;
} }
annotations::SETTINGS_VERSION => {
let value = annotations::expect_number(&p.inner.value)?;
self.kcl_version = value;
}
name => { name => {
return Err(KclError::Semantic(KclErrorDetails { return Err(KclError::Semantic(KclErrorDetails {
message: format!( message: format!(

View File

@ -88,7 +88,9 @@ pub use errors::{
CompilationError, ConnectionError, ExecError, KclError, KclErrorWithOutputs, Report, ReportWithOutputs, CompilationError, ConnectionError, ExecError, KclError, KclErrorWithOutputs, Report, ReportWithOutputs,
}; };
pub use execution::{ pub use execution::{
bust_cache, clear_mem_cache, ExecOutcome, ExecState, ExecutorContext, ExecutorSettings, MetaSettings, Point2d, bust_cache, clear_mem_cache,
types::{UnitAngle, UnitLen},
ExecOutcome, ExecState, ExecutorContext, ExecutorSettings, MetaSettings, Point2d,
}; };
pub use lsp::{ pub use lsp::{
copilot::Backend as CopilotLspBackend, copilot::Backend as CopilotLspBackend,
@ -217,9 +219,13 @@ impl Program {
} }
/// Change the meta settings for the kcl file. /// Change the meta settings for the kcl file.
pub fn change_meta_settings(&self, settings: crate::MetaSettings) -> Result<Self, KclError> { pub fn change_default_units(
&self,
length_units: Option<execution::types::UnitLen>,
angle_units: Option<execution::types::UnitAngle>,
) -> Result<Self, KclError> {
Ok(Self { Ok(Self {
ast: self.ast.change_meta_settings(settings)?, ast: self.ast.change_default_units(length_units, angle_units)?,
original_file_contents: self.original_file_contents.clone(), original_file_contents: self.original_file_contents.clone(),
}) })
} }

View File

@ -27,7 +27,11 @@ pub use crate::parsing::ast::types::{
use crate::{ use crate::{
docs::StdLibFn, docs::StdLibFn,
errors::KclError, errors::KclError,
execution::{annotations, types::ArrayLen, KclValue, Metadata, TagIdentifier}, execution::{
annotations,
types::{ArrayLen, UnitAngle, UnitLen},
KclValue, Metadata, TagIdentifier,
},
parsing::{ast::digest::Digest, token::NumericSuffix, PIPE_OPERATOR}, parsing::{ast::digest::Digest, token::NumericSuffix, PIPE_OPERATOR},
source_range::SourceRange, source_range::SourceRange,
ModuleId, ModuleId,
@ -354,12 +358,28 @@ impl Node<Program> {
Ok(None) Ok(None)
} }
pub fn change_meta_settings(&self, settings: crate::execution::MetaSettings) -> Result<Self, KclError> { pub fn change_default_units(
&self,
length_units: Option<UnitLen>,
angle_units: Option<UnitAngle>,
) -> Result<Self, KclError> {
let mut new_program = self.clone(); let mut new_program = self.clone();
let mut found = false; let mut found = false;
for node in &mut new_program.inner_attrs { for node in &mut new_program.inner_attrs {
if node.name() == Some(annotations::SETTINGS) { if node.name() == Some(annotations::SETTINGS) {
node.inner = Annotation::new_from_meta_settings(&settings); if let Some(len) = length_units {
node.inner.add_or_update(
annotations::SETTINGS_UNIT_LENGTH,
Expr::Name(Box::new(Name::new(&len.to_string()))),
);
}
if let Some(angle) = angle_units {
node.inner.add_or_update(
annotations::SETTINGS_UNIT_ANGLE,
Expr::Name(Box::new(Name::new(&angle.to_string()))),
);
}
// Previous source range no longer makes sense, but we want to // Previous source range no longer makes sense, but we want to
// preserve other things like comments. // preserve other things like comments.
node.reset_source(); node.reset_source();
@ -369,9 +389,21 @@ impl Node<Program> {
} }
if !found { if !found {
new_program let mut settings = Annotation::new(annotations::SETTINGS);
.inner_attrs if let Some(len) = length_units {
.push(Node::no_src(Annotation::new_from_meta_settings(&settings))); settings.inner.add_or_update(
annotations::SETTINGS_UNIT_LENGTH,
Expr::Name(Box::new(Name::new(&len.to_string()))),
);
}
if let Some(angle) = angle_units {
settings.inner.add_or_update(
annotations::SETTINGS_UNIT_ANGLE,
Expr::Name(Box::new(Name::new(&angle.to_string()))),
);
}
new_program.inner_attrs.push(settings);
} }
Ok(new_program) Ok(new_program)
@ -1536,6 +1568,15 @@ pub struct Annotation {
} }
impl Annotation { impl Annotation {
// Creates a named annotation with an empty (but present) property list, `@name()`.
pub fn new(name: &str) -> Node<Self> {
Node::no_src(Annotation {
name: Some(Identifier::new(name)),
properties: Some(vec![]),
digest: None,
})
}
pub fn is_inner(&self) -> bool { pub fn is_inner(&self) -> bool {
self.name.is_some() self.name.is_some()
} }
@ -1544,22 +1585,16 @@ impl Annotation {
self.name.as_ref().map(|n| &*n.name) self.name.as_ref().map(|n| &*n.name)
} }
pub fn new_from_meta_settings(settings: &crate::execution::MetaSettings) -> Annotation { pub(crate) fn add_or_update(&mut self, label: &str, value: Expr) {
let mut properties: Vec<Node<ObjectProperty>> = vec![ObjectProperty::new( match &mut self.properties {
Identifier::new(annotations::SETTINGS_UNIT_LENGTH), Some(props) => match props.iter_mut().find(|p| p.key.name == label) {
Expr::Name(Box::new(Name::new(&settings.default_length_units.to_string()))), Some(p) => {
)]; p.value = value;
p.digest = None;
if settings.default_angle_units != Default::default() { }
properties.push(ObjectProperty::new( None => props.push(ObjectProperty::new(Identifier::new(label), value)),
Identifier::new(annotations::SETTINGS_UNIT_ANGLE), },
Expr::Name(Box::new(Name::new(&settings.default_angle_units.to_string()))), None => self.properties = Some(vec![ObjectProperty::new(Identifier::new(label), value)]),
));
}
Annotation {
name: Some(Identifier::new(annotations::SETTINGS)),
properties: Some(properties),
digest: None,
} }
} }
} }
@ -4136,10 +4171,7 @@ startSketchOn(XY)"#;
// Edit the ast. // Edit the ast.
let new_program = program let new_program = program
.change_meta_settings(crate::execution::MetaSettings { .change_default_units(Some(crate::execution::types::UnitLen::Mm), None)
default_length_units: crate::execution::types::UnitLen::Mm,
..Default::default()
})
.unwrap(); .unwrap();
let result = new_program.meta_settings().unwrap(); let result = new_program.meta_settings().unwrap();
@ -4168,10 +4200,7 @@ startSketchOn(XY)
// Edit the ast. // Edit the ast.
let new_program = program let new_program = program
.change_meta_settings(crate::execution::MetaSettings { .change_default_units(Some(crate::execution::types::UnitLen::Mm), None)
default_length_units: crate::execution::types::UnitLen::Mm,
..Default::default()
})
.unwrap(); .unwrap();
let result = new_program.meta_settings().unwrap(); let result = new_program.meta_settings().unwrap();
@ -4206,10 +4235,7 @@ startSketchOn(XY)
let program = crate::parsing::top_level_parse(code).unwrap(); let program = crate::parsing::top_level_parse(code).unwrap();
let new_program = program let new_program = program
.change_meta_settings(crate::execution::MetaSettings { .change_default_units(Some(crate::execution::types::UnitLen::Cm), None)
default_length_units: crate::execution::types::UnitLen::Cm,
..Default::default()
})
.unwrap(); .unwrap();
let result = new_program.meta_settings().unwrap(); let result = new_program.meta_settings().unwrap();

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
import Point2d from "std::types" import Point2d from "std::types"

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
// Note that everything in the prelude is treated as exported. // Note that everything in the prelude is treated as exported.

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
/// Construct a 2-dimensional circle, of the specified radius, centered at /// Construct a 2-dimensional circle, of the specified radius, centered at
/// the provided (x, y) origin point. /// the provided (x, y) origin point.

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
import Face from "std::types" import Face from "std::types"

View File

@ -1,4 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm, kclVersion = 1.0)
export ZERO = 0 export ZERO = 0
export QUARTER_TURN = 90deg export QUARTER_TURN = 90deg

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
/// Any value. /// Any value.
@(impl = primitive) @(impl = primitive)

View File

@ -1,5 +1,5 @@
@no_std @no_std
@settings(defaultLengthUnit = mm) @settings(defaultLengthUnit = mm, kclVersion = 1.0)
/// Convert a number to millimeters from its current units. /// Convert a number to millimeters from its current units.
export fn toMillimeters(@num: number(mm)): number(mm) { export fn toMillimeters(@num: number(mm)): number(mm) {

View File

@ -1,81 +1,81 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[349, 446, 0]"] 2["Path<br>[367, 464, 0]"]
4["Segment<br>[454, 518, 0]"] 4["Segment<br>[472, 536, 0]"]
5["Segment<br>[526, 594, 0]"] 5["Segment<br>[544, 612, 0]"]
6["Segment<br>[602, 634, 0]"] 6["Segment<br>[620, 652, 0]"]
7["Segment<br>[642, 710, 0]"] 7["Segment<br>[660, 728, 0]"]
8["Segment<br>[718, 765, 0]"] 8["Segment<br>[736, 783, 0]"]
9["Segment<br>[773, 821, 0]"] 9["Segment<br>[791, 839, 0]"]
10["Segment<br>[829, 878, 0]"] 10["Segment<br>[847, 896, 0]"]
11["Segment<br>[886, 984, 0]"] 11["Segment<br>[904, 1002, 0]"]
12["Segment<br>[992, 1040, 0]"] 12["Segment<br>[1010, 1058, 0]"]
13["Segment<br>[1048, 1137, 0]"] 13["Segment<br>[1066, 1155, 0]"]
14["Segment<br>[1145, 1194, 0]"] 14["Segment<br>[1163, 1212, 0]"]
15["Segment<br>[1202, 1251, 0]"] 15["Segment<br>[1220, 1269, 0]"]
16["Segment<br>[1259, 1292, 0]"] 16["Segment<br>[1277, 1310, 0]"]
17["Segment<br>[1300, 1368, 0]"] 17["Segment<br>[1318, 1386, 0]"]
18["Segment<br>[1376, 1408, 0]"] 18["Segment<br>[1394, 1426, 0]"]
19["Segment<br>[1416, 1484, 0]"] 19["Segment<br>[1434, 1502, 0]"]
20["Segment<br>[1492, 1554, 0]"] 20["Segment<br>[1510, 1572, 0]"]
21["Segment<br>[1595, 1664, 0]"] 21["Segment<br>[1613, 1682, 0]"]
22["Segment<br>[1672, 1704, 0]"] 22["Segment<br>[1690, 1722, 0]"]
23["Segment<br>[1712, 1781, 0]"] 23["Segment<br>[1730, 1799, 0]"]
24["Segment<br>[1789, 1836, 0]"] 24["Segment<br>[1807, 1854, 0]"]
25["Segment<br>[1844, 1894, 0]"] 25["Segment<br>[1862, 1912, 0]"]
26["Segment<br>[1902, 1952, 0]"] 26["Segment<br>[1920, 1970, 0]"]
27["Segment<br>[1970, 2080, 0]"] 27["Segment<br>[1988, 2098, 0]"]
28["Segment<br>[2098, 2147, 0]"] 28["Segment<br>[2116, 2165, 0]"]
29["Segment<br>[2161, 2256, 0]"] 29["Segment<br>[2179, 2274, 0]"]
30["Segment<br>[2270, 2320, 0]"] 30["Segment<br>[2288, 2338, 0]"]
31["Segment<br>[2334, 2383, 0]"] 31["Segment<br>[2352, 2401, 0]"]
32["Segment<br>[2391, 2424, 0]"] 32["Segment<br>[2409, 2442, 0]"]
33["Segment<br>[2432, 2501, 0]"] 33["Segment<br>[2450, 2519, 0]"]
34["Segment<br>[2509, 2541, 0]"] 34["Segment<br>[2527, 2559, 0]"]
35["Segment<br>[2549, 2618, 0]"] 35["Segment<br>[2567, 2636, 0]"]
36["Segment<br>[2659, 2720, 0]"] 36["Segment<br>[2677, 2738, 0]"]
37["Segment<br>[2728, 2797, 0]"] 37["Segment<br>[2746, 2815, 0]"]
38["Segment<br>[2805, 2838, 0]"] 38["Segment<br>[2823, 2856, 0]"]
39["Segment<br>[2846, 2915, 0]"] 39["Segment<br>[2864, 2933, 0]"]
40["Segment<br>[2923, 2972, 0]"] 40["Segment<br>[2941, 2990, 0]"]
41["Segment<br>[2980, 3030, 0]"] 41["Segment<br>[2998, 3048, 0]"]
42["Segment<br>[3038, 3087, 0]"] 42["Segment<br>[3056, 3105, 0]"]
43["Segment<br>[3095, 3204, 0]"] 43["Segment<br>[3113, 3222, 0]"]
44["Segment<br>[3212, 3262, 0]"] 44["Segment<br>[3230, 3280, 0]"]
45["Segment<br>[3270, 3366, 0]"] 45["Segment<br>[3288, 3384, 0]"]
46["Segment<br>[3374, 3423, 0]"] 46["Segment<br>[3392, 3441, 0]"]
47["Segment<br>[3431, 3480, 0]"] 47["Segment<br>[3449, 3498, 0]"]
48["Segment<br>[3488, 3522, 0]"] 48["Segment<br>[3506, 3540, 0]"]
49["Segment<br>[3530, 3599, 0]"] 49["Segment<br>[3548, 3617, 0]"]
50["Segment<br>[3607, 3640, 0]"] 50["Segment<br>[3625, 3658, 0]"]
51["Segment<br>[3648, 3717, 0]"] 51["Segment<br>[3666, 3735, 0]"]
52["Segment<br>[3725, 3788, 0]"] 52["Segment<br>[3743, 3806, 0]"]
53["Segment<br>[3829, 3898, 0]"] 53["Segment<br>[3847, 3916, 0]"]
54["Segment<br>[3906, 3939, 0]"] 54["Segment<br>[3924, 3957, 0]"]
55["Segment<br>[3947, 4016, 0]"] 55["Segment<br>[3965, 4034, 0]"]
56["Segment<br>[4024, 4073, 0]"] 56["Segment<br>[4042, 4091, 0]"]
57["Segment<br>[4081, 4130, 0]"] 57["Segment<br>[4099, 4148, 0]"]
58["Segment<br>[4138, 4187, 0]"] 58["Segment<br>[4156, 4205, 0]"]
59["Segment<br>[4195, 4295, 0]"] 59["Segment<br>[4213, 4313, 0]"]
60["Segment<br>[4303, 4353, 0]"] 60["Segment<br>[4321, 4371, 0]"]
61["Segment<br>[4361, 4450, 0]"] 61["Segment<br>[4379, 4468, 0]"]
62["Segment<br>[4458, 4507, 0]"] 62["Segment<br>[4476, 4525, 0]"]
63["Segment<br>[4515, 4565, 0]"] 63["Segment<br>[4533, 4583, 0]"]
64["Segment<br>[4573, 4607, 0]"] 64["Segment<br>[4591, 4625, 0]"]
65["Segment<br>[4615, 4684, 0]"] 65["Segment<br>[4633, 4702, 0]"]
66["Segment<br>[4692, 4725, 0]"] 66["Segment<br>[4710, 4743, 0]"]
67["Segment<br>[4733, 4802, 0]"] 67["Segment<br>[4751, 4820, 0]"]
68["Segment<br>[4810, 4817, 0]"] 68["Segment<br>[4828, 4835, 0]"]
71[Solid2d] 71[Solid2d]
end end
subgraph path3 [Path] subgraph path3 [Path]
3["Path<br>[4881, 5059, 0]"] 3["Path<br>[4899, 5077, 0]"]
69["Segment<br>[4881, 5059, 0]"] 69["Segment<br>[4899, 5077, 0]"]
70[Solid2d] 70[Solid2d]
end end
1["Plane<br>[323, 341, 0]"] 1["Plane<br>[341, 359, 0]"]
72["Sweep Extrusion<br>[5068, 5096, 0]"] 72["Sweep Extrusion<br>[5086, 5114, 0]"]
73[Wall] 73[Wall]
74[Wall] 74[Wall]
75[Wall] 75[Wall]
@ -270,38 +270,38 @@ flowchart LR
264["SweepEdge Adjacent"] 264["SweepEdge Adjacent"]
265["SweepEdge Adjacent"] 265["SweepEdge Adjacent"]
266["SweepEdge Adjacent"] 266["SweepEdge Adjacent"]
267["EdgeCut Fillet<br>[5104, 5809, 0]"] 267["EdgeCut Fillet<br>[5122, 5827, 0]"]
268["EdgeCut Fillet<br>[5104, 5809, 0]"] 268["EdgeCut Fillet<br>[5122, 5827, 0]"]
269["EdgeCut Fillet<br>[5104, 5809, 0]"] 269["EdgeCut Fillet<br>[5122, 5827, 0]"]
270["EdgeCut Fillet<br>[5104, 5809, 0]"] 270["EdgeCut Fillet<br>[5122, 5827, 0]"]
271["EdgeCut Fillet<br>[5104, 5809, 0]"] 271["EdgeCut Fillet<br>[5122, 5827, 0]"]
272["EdgeCut Fillet<br>[5104, 5809, 0]"] 272["EdgeCut Fillet<br>[5122, 5827, 0]"]
273["EdgeCut Fillet<br>[5104, 5809, 0]"] 273["EdgeCut Fillet<br>[5122, 5827, 0]"]
274["EdgeCut Fillet<br>[5104, 5809, 0]"] 274["EdgeCut Fillet<br>[5122, 5827, 0]"]
275["EdgeCut Fillet<br>[5104, 5809, 0]"] 275["EdgeCut Fillet<br>[5122, 5827, 0]"]
276["EdgeCut Fillet<br>[5104, 5809, 0]"] 276["EdgeCut Fillet<br>[5122, 5827, 0]"]
277["EdgeCut Fillet<br>[5104, 5809, 0]"] 277["EdgeCut Fillet<br>[5122, 5827, 0]"]
278["EdgeCut Fillet<br>[5104, 5809, 0]"] 278["EdgeCut Fillet<br>[5122, 5827, 0]"]
279["EdgeCut Fillet<br>[5104, 5809, 0]"] 279["EdgeCut Fillet<br>[5122, 5827, 0]"]
280["EdgeCut Fillet<br>[5104, 5809, 0]"] 280["EdgeCut Fillet<br>[5122, 5827, 0]"]
281["EdgeCut Fillet<br>[5104, 5809, 0]"] 281["EdgeCut Fillet<br>[5122, 5827, 0]"]
282["EdgeCut Fillet<br>[5104, 5809, 0]"] 282["EdgeCut Fillet<br>[5122, 5827, 0]"]
283["EdgeCut Fillet<br>[5817, 6521, 0]"] 283["EdgeCut Fillet<br>[5835, 6539, 0]"]
284["EdgeCut Fillet<br>[5817, 6521, 0]"] 284["EdgeCut Fillet<br>[5835, 6539, 0]"]
285["EdgeCut Fillet<br>[5817, 6521, 0]"] 285["EdgeCut Fillet<br>[5835, 6539, 0]"]
286["EdgeCut Fillet<br>[5817, 6521, 0]"] 286["EdgeCut Fillet<br>[5835, 6539, 0]"]
287["EdgeCut Fillet<br>[5817, 6521, 0]"] 287["EdgeCut Fillet<br>[5835, 6539, 0]"]
288["EdgeCut Fillet<br>[5817, 6521, 0]"] 288["EdgeCut Fillet<br>[5835, 6539, 0]"]
289["EdgeCut Fillet<br>[5817, 6521, 0]"] 289["EdgeCut Fillet<br>[5835, 6539, 0]"]
290["EdgeCut Fillet<br>[5817, 6521, 0]"] 290["EdgeCut Fillet<br>[5835, 6539, 0]"]
291["EdgeCut Fillet<br>[5817, 6521, 0]"] 291["EdgeCut Fillet<br>[5835, 6539, 0]"]
292["EdgeCut Fillet<br>[5817, 6521, 0]"] 292["EdgeCut Fillet<br>[5835, 6539, 0]"]
293["EdgeCut Fillet<br>[5817, 6521, 0]"] 293["EdgeCut Fillet<br>[5835, 6539, 0]"]
294["EdgeCut Fillet<br>[5817, 6521, 0]"] 294["EdgeCut Fillet<br>[5835, 6539, 0]"]
295["EdgeCut Fillet<br>[5817, 6521, 0]"] 295["EdgeCut Fillet<br>[5835, 6539, 0]"]
296["EdgeCut Fillet<br>[5817, 6521, 0]"] 296["EdgeCut Fillet<br>[5835, 6539, 0]"]
297["EdgeCut Fillet<br>[5817, 6521, 0]"] 297["EdgeCut Fillet<br>[5835, 6539, 0]"]
298["EdgeCut Fillet<br>[5817, 6521, 0]"] 298["EdgeCut Fillet<br>[5835, 6539, 0]"]
1 --- 2 1 --- 2
1 --- 3 1 --- 3
2 --- 4 2 --- 4

View File

@ -9576,6 +9576,31 @@ description: Result of parsing 80-20-rail.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,183 +1,183 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[323, 370, 1]"] 8["Path<br>[341, 388, 1]"]
31["Segment<br>[376, 444, 1]"] 31["Segment<br>[394, 462, 1]"]
32["Segment<br>[450, 550, 1]"] 32["Segment<br>[468, 568, 1]"]
33["Segment<br>[556, 673, 1]"] 33["Segment<br>[574, 691, 1]"]
34["Segment<br>[679, 764, 1]"] 34["Segment<br>[697, 782, 1]"]
35["Segment<br>[770, 777, 1]"] 35["Segment<br>[788, 795, 1]"]
111[Solid2d] 111[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[801, 836, 1]"] 9["Path<br>[819, 854, 1]"]
36["Segment<br>[801, 836, 1]"] 36["Segment<br>[819, 854, 1]"]
104[Solid2d] 104[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[861, 1008, 1]"] 10["Path<br>[879, 1026, 1]"]
37["Segment<br>[861, 1008, 1]"] 37["Segment<br>[879, 1026, 1]"]
114[Solid2d] 114[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1033, 1181, 1]"] 11["Path<br>[1051, 1199, 1]"]
38["Segment<br>[1033, 1181, 1]"] 38["Segment<br>[1051, 1199, 1]"]
107[Solid2d] 107[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[1206, 1354, 1]"] 12["Path<br>[1224, 1372, 1]"]
39["Segment<br>[1206, 1354, 1]"] 39["Segment<br>[1224, 1372, 1]"]
113[Solid2d] 113[Solid2d]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[1379, 1528, 1]"] 13["Path<br>[1397, 1546, 1]"]
40["Segment<br>[1379, 1528, 1]"] 40["Segment<br>[1397, 1546, 1]"]
116[Solid2d] 116[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[1696, 1752, 1]"] 14["Path<br>[1714, 1770, 1]"]
41["Segment<br>[1758, 1823, 1]"] 41["Segment<br>[1776, 1841, 1]"]
42["Segment<br>[1829, 1881, 1]"] 42["Segment<br>[1847, 1899, 1]"]
43["Segment<br>[1887, 1938, 1]"] 43["Segment<br>[1905, 1956, 1]"]
44["Segment<br>[1944, 1996, 1]"] 44["Segment<br>[1962, 2014, 1]"]
45["Segment<br>[2002, 2068, 1]"] 45["Segment<br>[2020, 2086, 1]"]
46["Segment<br>[2074, 2126, 1]"] 46["Segment<br>[2092, 2144, 1]"]
47["Segment<br>[2132, 2164, 1]"] 47["Segment<br>[2150, 2182, 1]"]
48["Segment<br>[2170, 2235, 1]"] 48["Segment<br>[2188, 2253, 1]"]
49["Segment<br>[2241, 2248, 1]"] 49["Segment<br>[2259, 2266, 1]"]
101[Solid2d] 101[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[2597, 2710, 1]"] 15["Path<br>[2615, 2728, 1]"]
50["Segment<br>[2716, 2771, 1]"] 50["Segment<br>[2734, 2789, 1]"]
51["Segment<br>[2777, 2812, 1]"] 51["Segment<br>[2795, 2830, 1]"]
52["Segment<br>[2818, 2873, 1]"] 52["Segment<br>[2836, 2891, 1]"]
53["Segment<br>[2879, 2915, 1]"] 53["Segment<br>[2897, 2933, 1]"]
54["Segment<br>[2921, 2976, 1]"] 54["Segment<br>[2939, 2994, 1]"]
55["Segment<br>[2982, 3018, 1]"] 55["Segment<br>[3000, 3036, 1]"]
56["Segment<br>[3024, 3079, 1]"] 56["Segment<br>[3042, 3097, 1]"]
57["Segment<br>[3085, 3141, 1]"] 57["Segment<br>[3103, 3159, 1]"]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[3290, 3341, 1]"] 16["Path<br>[3308, 3359, 1]"]
58["Segment<br>[3290, 3341, 1]"] 58["Segment<br>[3308, 3359, 1]"]
97[Solid2d] 97[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[3520, 3582, 1]"] 17["Path<br>[3538, 3600, 1]"]
59["Segment<br>[3588, 3656, 1]"] 59["Segment<br>[3606, 3674, 1]"]
60["Segment<br>[3662, 3762, 1]"] 60["Segment<br>[3680, 3780, 1]"]
61["Segment<br>[3768, 3885, 1]"] 61["Segment<br>[3786, 3903, 1]"]
62["Segment<br>[3891, 3976, 1]"] 62["Segment<br>[3909, 3994, 1]"]
63["Segment<br>[3982, 3989, 1]"] 63["Segment<br>[4000, 4007, 1]"]
115[Solid2d] 115[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[4013, 4064, 1]"] 18["Path<br>[4031, 4082, 1]"]
64["Segment<br>[4013, 4064, 1]"] 64["Segment<br>[4031, 4082, 1]"]
118[Solid2d] 118[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[4089, 4236, 1]"] 19["Path<br>[4107, 4254, 1]"]
65["Segment<br>[4089, 4236, 1]"] 65["Segment<br>[4107, 4254, 1]"]
100[Solid2d] 100[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[4261, 4409, 1]"] 20["Path<br>[4279, 4427, 1]"]
66["Segment<br>[4261, 4409, 1]"] 66["Segment<br>[4279, 4427, 1]"]
98[Solid2d] 98[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[4434, 4582, 1]"] 21["Path<br>[4452, 4600, 1]"]
67["Segment<br>[4434, 4582, 1]"] 67["Segment<br>[4452, 4600, 1]"]
103[Solid2d] 103[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[4607, 4756, 1]"] 22["Path<br>[4625, 4774, 1]"]
68["Segment<br>[4607, 4756, 1]"] 68["Segment<br>[4625, 4774, 1]"]
106[Solid2d] 106[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[4898, 4936, 1]"] 23["Path<br>[4916, 4954, 1]"]
69["Segment<br>[4898, 4936, 1]"] 69["Segment<br>[4916, 4954, 1]"]
117[Solid2d] 117[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[5009, 5045, 1]"] 24["Path<br>[5027, 5063, 1]"]
70["Segment<br>[5009, 5045, 1]"] 70["Segment<br>[5027, 5063, 1]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[277, 327, 3]"] 25["Path<br>[295, 345, 3]"]
71["Segment<br>[277, 327, 3]"] 71["Segment<br>[295, 345, 3]"]
105[Solid2d] 105[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[502, 537, 3]"] 26["Path<br>[520, 555, 3]"]
72["Segment<br>[502, 537, 3]"] 72["Segment<br>[520, 555, 3]"]
102[Solid2d] 102[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[216, 255, 4]"] 27["Path<br>[234, 273, 4]"]
73["Segment<br>[261, 291, 4]"] 73["Segment<br>[279, 309, 4]"]
74["Segment<br>[297, 336, 4]"] 74["Segment<br>[315, 354, 4]"]
75["Segment<br>[342, 366, 4]"] 75["Segment<br>[360, 384, 4]"]
76["Segment<br>[372, 396, 4]"] 76["Segment<br>[390, 414, 4]"]
77["Segment<br>[402, 443, 4]"] 77["Segment<br>[420, 461, 4]"]
78["Segment<br>[449, 487, 4]"] 78["Segment<br>[467, 505, 4]"]
79["Segment<br>[493, 516, 4]"] 79["Segment<br>[511, 534, 4]"]
80["Segment<br>[522, 539, 4]"] 80["Segment<br>[540, 557, 4]"]
81["Segment<br>[545, 566, 4]"] 81["Segment<br>[563, 584, 4]"]
82["Segment<br>[572, 659, 4]"] 82["Segment<br>[590, 677, 4]"]
83["Segment<br>[665, 702, 4]"] 83["Segment<br>[683, 720, 4]"]
84["Segment<br>[708, 745, 4]"] 84["Segment<br>[726, 763, 4]"]
85["Segment<br>[751, 758, 4]"] 85["Segment<br>[769, 776, 4]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[1113, 1203, 4]"] 28["Path<br>[1131, 1221, 4]"]
86["Segment<br>[1211, 1280, 4]"] 86["Segment<br>[1229, 1298, 4]"]
88["Segment<br>[1288, 1588, 4]"] 88["Segment<br>[1306, 1606, 4]"]
90["Segment<br>[1596, 1898, 4]"] 90["Segment<br>[1614, 1916, 4]"]
92["Segment<br>[1906, 2125, 4]"] 92["Segment<br>[1924, 2143, 4]"]
96["Segment<br>[2133, 2140, 4]"] 96["Segment<br>[2151, 2158, 4]"]
108[Solid2d] 108[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[1113, 1203, 4]"] 29["Path<br>[1131, 1221, 4]"]
95["Segment<br>[2133, 2140, 4]"] 95["Segment<br>[2151, 2158, 4]"]
109[Solid2d] 109[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1113, 1203, 4]"] 30["Path<br>[1131, 1221, 4]"]
87["Segment<br>[1211, 1280, 4]"] 87["Segment<br>[1229, 1298, 4]"]
89["Segment<br>[1288, 1588, 4]"] 89["Segment<br>[1306, 1606, 4]"]
91["Segment<br>[1596, 1898, 4]"] 91["Segment<br>[1614, 1916, 4]"]
93["Segment<br>[1906, 2125, 4]"] 93["Segment<br>[1924, 2143, 4]"]
94["Segment<br>[2133, 2140, 4]"] 94["Segment<br>[2151, 2158, 4]"]
110[Solid2d] 110[Solid2d]
end end
1["Plane<br>[300, 317, 1]"] 1["Plane<br>[318, 335, 1]"]
2["Plane<br>[204, 231, 3]"] 2["Plane<br>[222, 249, 3]"]
3["Plane<br>[467, 495, 3]"] 3["Plane<br>[485, 513, 3]"]
4["Plane<br>[193, 210, 4]"] 4["Plane<br>[211, 228, 4]"]
5["Plane<br>[1066, 1104, 4]"] 5["Plane<br>[1084, 1122, 4]"]
6["Plane<br>[1066, 1104, 4]"] 6["Plane<br>[1084, 1122, 4]"]
7["Plane<br>[1066, 1104, 4]"] 7["Plane<br>[1084, 1122, 4]"]
119["Sweep Extrusion<br>[1535, 1554, 1]"] 119["Sweep Extrusion<br>[1553, 1572, 1]"]
120["Sweep Extrusion<br>[2388, 2408, 1]"] 120["Sweep Extrusion<br>[2406, 2426, 1]"]
121["Sweep Extrusion<br>[2388, 2408, 1]"] 121["Sweep Extrusion<br>[2406, 2426, 1]"]
122["Sweep Extrusion<br>[2388, 2408, 1]"] 122["Sweep Extrusion<br>[2406, 2426, 1]"]
123["Sweep Extrusion<br>[2388, 2408, 1]"] 123["Sweep Extrusion<br>[2406, 2426, 1]"]
124["Sweep Extrusion<br>[3147, 3182, 1]"] 124["Sweep Extrusion<br>[3165, 3200, 1]"]
125["Sweep Extrusion<br>[3347, 3385, 1]"] 125["Sweep Extrusion<br>[3365, 3403, 1]"]
126["Sweep Extrusion<br>[4763, 4782, 1]"] 126["Sweep Extrusion<br>[4781, 4800, 1]"]
127["Sweep Extrusion<br>[4942, 4962, 1]"] 127["Sweep Extrusion<br>[4960, 4980, 1]"]
128["Sweep Extrusion<br>[5051, 5072, 1]"] 128["Sweep Extrusion<br>[5069, 5090, 1]"]
129["Sweep Extrusion<br>[333, 353, 3]"] 129["Sweep Extrusion<br>[351, 371, 3]"]
130["Sweep Extrusion<br>[543, 564, 3]"] 130["Sweep Extrusion<br>[561, 582, 3]"]
131["Sweep Revolve<br>[764, 846, 4]"] 131["Sweep Revolve<br>[782, 864, 4]"]
132["Sweep Loft<br>[2454, 2473, 4]"] 132["Sweep Loft<br>[2472, 2491, 4]"]
133[Wall] 133[Wall]
134[Wall] 134[Wall]
135[Wall] 135[Wall]
@ -313,16 +313,16 @@ flowchart LR
265["SweepEdge Adjacent"] 265["SweepEdge Adjacent"]
266["SweepEdge Adjacent"] 266["SweepEdge Adjacent"]
267["SweepEdge Adjacent"] 267["SweepEdge Adjacent"]
268["EdgeCut Fillet<br>[5113, 5624, 1]"] 268["EdgeCut Fillet<br>[5131, 5642, 1]"]
269["EdgeCut Fillet<br>[5113, 5624, 1]"] 269["EdgeCut Fillet<br>[5131, 5642, 1]"]
270["EdgeCut Fillet<br>[5113, 5624, 1]"] 270["EdgeCut Fillet<br>[5131, 5642, 1]"]
271["EdgeCut Fillet<br>[5113, 5624, 1]"] 271["EdgeCut Fillet<br>[5131, 5642, 1]"]
272["EdgeCut Fillet<br>[5113, 5624, 1]"] 272["EdgeCut Fillet<br>[5131, 5642, 1]"]
273["EdgeCut Fillet<br>[5113, 5624, 1]"] 273["EdgeCut Fillet<br>[5131, 5642, 1]"]
274["EdgeCut Fillet<br>[5113, 5624, 1]"] 274["EdgeCut Fillet<br>[5131, 5642, 1]"]
275["EdgeCut Fillet<br>[5113, 5624, 1]"] 275["EdgeCut Fillet<br>[5131, 5642, 1]"]
276["EdgeCut Fillet<br>[394, 452, 3]"] 276["EdgeCut Fillet<br>[412, 470, 3]"]
277["EdgeCut Fillet<br>[394, 452, 3]"] 277["EdgeCut Fillet<br>[412, 470, 3]"]
1 --- 8 1 --- 8
1 --- 9 1 --- 9
1 --- 10 1 --- 10

View File

@ -195,6 +195,31 @@ description: Result of parsing axial-fan.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,56 +1,56 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[664, 726, 0]"] 8["Path<br>[682, 744, 0]"]
15["Segment<br>[664, 726, 0]"] 15["Segment<br>[682, 744, 0]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[750, 796, 0]"] 9["Path<br>[768, 814, 0]"]
16["Segment<br>[750, 796, 0]"] 16["Segment<br>[768, 814, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[980, 1036, 0]"] 10["Path<br>[998, 1054, 0]"]
17["Segment<br>[1042, 1101, 0]"] 17["Segment<br>[1060, 1119, 0]"]
18["Segment<br>[1107, 1114, 0]"] 18["Segment<br>[1125, 1132, 0]"]
30[Solid2d] 30[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1484, 1606, 0]"] 11["Path<br>[1502, 1624, 0]"]
19["Segment<br>[1612, 1672, 0]"] 19["Segment<br>[1630, 1690, 0]"]
20["Segment<br>[1678, 1709, 0]"] 20["Segment<br>[1696, 1727, 0]"]
21["Segment<br>[1715, 1743, 0]"] 21["Segment<br>[1733, 1761, 0]"]
22["Segment<br>[1749, 1756, 0]"] 22["Segment<br>[1767, 1774, 0]"]
27[Solid2d] 27[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[2090, 2232, 0]"] 12["Path<br>[2108, 2250, 0]"]
23["Segment<br>[2090, 2232, 0]"] 23["Segment<br>[2108, 2250, 0]"]
28[Solid2d] 28[Solid2d]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[2626, 2679, 0]"] 13["Path<br>[2644, 2697, 0]"]
24["Segment<br>[2626, 2679, 0]"] 24["Segment<br>[2644, 2697, 0]"]
26[Solid2d] 26[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[2703, 2777, 0]"] 14["Path<br>[2721, 2795, 0]"]
25["Segment<br>[2703, 2777, 0]"] 25["Segment<br>[2721, 2795, 0]"]
29[Solid2d] 29[Solid2d]
end end
1["Plane<br>[610, 657, 0]"] 1["Plane<br>[628, 675, 0]"]
2["Plane<br>[957, 974, 0]"] 2["Plane<br>[975, 992, 0]"]
3["Plane<br>[1461, 1478, 0]"] 3["Plane<br>[1479, 1496, 0]"]
4["Plane<br>[2067, 2084, 0]"] 4["Plane<br>[2085, 2102, 0]"]
5["Plane<br>[2572, 2619, 0]"] 5["Plane<br>[2590, 2637, 0]"]
6["StartSketchOnPlane<br>[2558, 2620, 0]"] 6["StartSketchOnPlane<br>[2576, 2638, 0]"]
7["StartSketchOnPlane<br>[596, 658, 0]"] 7["StartSketchOnPlane<br>[614, 676, 0]"]
33["Sweep Extrusion<br>[848, 900, 0]"] 33["Sweep Extrusion<br>[866, 918, 0]"]
34["Sweep Revolve<br>[1196, 1226, 0]"] 34["Sweep Revolve<br>[1214, 1244, 0]"]
35["Sweep Revolve<br>[1798, 1828, 0]"] 35["Sweep Revolve<br>[1816, 1846, 0]"]
36["Sweep Revolve<br>[2275, 2326, 0]"] 36["Sweep Revolve<br>[2293, 2344, 0]"]
37["Sweep Extrusion<br>[2794, 2847, 0]"] 37["Sweep Extrusion<br>[2812, 2865, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

View File

@ -3800,6 +3800,31 @@ description: Result of parsing ball-bearing.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,275 +1,275 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[362, 395, 1]"] 24["Path<br>[380, 413, 1]"]
44["Segment<br>[403, 429, 1]"] 44["Segment<br>[421, 447, 1]"]
49["Segment<br>[437, 499, 1]"] 49["Segment<br>[455, 517, 1]"]
57["Segment<br>[507, 569, 1]"] 57["Segment<br>[525, 587, 1]"]
62["Segment<br>[577, 640, 1]"] 62["Segment<br>[595, 658, 1]"]
69["Segment<br>[648, 673, 1]"] 69["Segment<br>[666, 691, 1]"]
70["Segment<br>[681, 701, 1]"] 70["Segment<br>[699, 719, 1]"]
79["Segment<br>[709, 733, 1]"] 79["Segment<br>[727, 751, 1]"]
84["Segment<br>[741, 803, 1]"] 84["Segment<br>[759, 821, 1]"]
88["Segment<br>[811, 836, 1]"] 88["Segment<br>[829, 854, 1]"]
98["Segment<br>[844, 864, 1]"] 98["Segment<br>[862, 882, 1]"]
104["Segment<br>[872, 896, 1]"] 104["Segment<br>[890, 914, 1]"]
107["Segment<br>[904, 965, 1]"] 107["Segment<br>[922, 983, 1]"]
112["Segment<br>[973, 1034, 1]"] 112["Segment<br>[991, 1052, 1]"]
122["Segment<br>[1042, 1067, 1]"] 122["Segment<br>[1060, 1085, 1]"]
129["Segment<br>[1075, 1099, 1]"] 129["Segment<br>[1093, 1117, 1]"]
133["Segment<br>[1107, 1169, 1]"] 133["Segment<br>[1125, 1187, 1]"]
141["Segment<br>[1177, 1202, 1]"] 141["Segment<br>[1195, 1220, 1]"]
144["Segment<br>[1210, 1237, 1]"] 144["Segment<br>[1228, 1255, 1]"]
149["Segment<br>[1245, 1306, 1]"] 149["Segment<br>[1263, 1324, 1]"]
155["Segment<br>[1314, 1358, 1]"] 155["Segment<br>[1332, 1376, 1]"]
160["Segment<br>[1366, 1373, 1]"] 160["Segment<br>[1384, 1391, 1]"]
212[Solid2d] 212[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[362, 395, 1]"] 25["Path<br>[380, 413, 1]"]
40["Segment<br>[403, 429, 1]"] 40["Segment<br>[421, 447, 1]"]
51["Segment<br>[437, 499, 1]"] 51["Segment<br>[455, 517, 1]"]
56["Segment<br>[507, 569, 1]"] 56["Segment<br>[525, 587, 1]"]
59["Segment<br>[577, 640, 1]"] 59["Segment<br>[595, 658, 1]"]
67["Segment<br>[648, 673, 1]"] 67["Segment<br>[666, 691, 1]"]
74["Segment<br>[681, 701, 1]"] 74["Segment<br>[699, 719, 1]"]
81["Segment<br>[709, 733, 1]"] 81["Segment<br>[727, 751, 1]"]
82["Segment<br>[741, 803, 1]"] 82["Segment<br>[759, 821, 1]"]
90["Segment<br>[811, 836, 1]"] 90["Segment<br>[829, 854, 1]"]
99["Segment<br>[844, 864, 1]"] 99["Segment<br>[862, 882, 1]"]
105["Segment<br>[872, 896, 1]"] 105["Segment<br>[890, 914, 1]"]
109["Segment<br>[904, 965, 1]"] 109["Segment<br>[922, 983, 1]"]
113["Segment<br>[973, 1034, 1]"] 113["Segment<br>[991, 1052, 1]"]
119["Segment<br>[1042, 1067, 1]"] 119["Segment<br>[1060, 1085, 1]"]
124["Segment<br>[1075, 1099, 1]"] 124["Segment<br>[1093, 1117, 1]"]
132["Segment<br>[1107, 1169, 1]"] 132["Segment<br>[1125, 1187, 1]"]
140["Segment<br>[1177, 1202, 1]"] 140["Segment<br>[1195, 1220, 1]"]
143["Segment<br>[1210, 1237, 1]"] 143["Segment<br>[1228, 1255, 1]"]
150["Segment<br>[1245, 1306, 1]"] 150["Segment<br>[1263, 1324, 1]"]
154["Segment<br>[1314, 1358, 1]"] 154["Segment<br>[1332, 1376, 1]"]
164["Segment<br>[1366, 1373, 1]"] 164["Segment<br>[1384, 1391, 1]"]
217[Solid2d] 217[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[362, 395, 1]"] 26["Path<br>[380, 413, 1]"]
43["Segment<br>[403, 429, 1]"] 43["Segment<br>[421, 447, 1]"]
50["Segment<br>[437, 499, 1]"] 50["Segment<br>[455, 517, 1]"]
54["Segment<br>[507, 569, 1]"] 54["Segment<br>[525, 587, 1]"]
61["Segment<br>[577, 640, 1]"] 61["Segment<br>[595, 658, 1]"]
65["Segment<br>[648, 673, 1]"] 65["Segment<br>[666, 691, 1]"]
71["Segment<br>[681, 701, 1]"] 71["Segment<br>[699, 719, 1]"]
80["Segment<br>[709, 733, 1]"] 80["Segment<br>[727, 751, 1]"]
87["Segment<br>[741, 803, 1]"] 87["Segment<br>[759, 821, 1]"]
92["Segment<br>[811, 836, 1]"] 92["Segment<br>[829, 854, 1]"]
94["Segment<br>[844, 864, 1]"] 94["Segment<br>[862, 882, 1]"]
101["Segment<br>[872, 896, 1]"] 101["Segment<br>[890, 914, 1]"]
111["Segment<br>[904, 965, 1]"] 111["Segment<br>[922, 983, 1]"]
117["Segment<br>[973, 1034, 1]"] 117["Segment<br>[991, 1052, 1]"]
123["Segment<br>[1042, 1067, 1]"] 123["Segment<br>[1060, 1085, 1]"]
125["Segment<br>[1075, 1099, 1]"] 125["Segment<br>[1093, 1117, 1]"]
134["Segment<br>[1107, 1169, 1]"] 134["Segment<br>[1125, 1187, 1]"]
136["Segment<br>[1177, 1202, 1]"] 136["Segment<br>[1195, 1220, 1]"]
147["Segment<br>[1210, 1237, 1]"] 147["Segment<br>[1228, 1255, 1]"]
148["Segment<br>[1245, 1306, 1]"] 148["Segment<br>[1263, 1324, 1]"]
156["Segment<br>[1314, 1358, 1]"] 156["Segment<br>[1332, 1376, 1]"]
165["Segment<br>[1366, 1373, 1]"] 165["Segment<br>[1384, 1391, 1]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[362, 395, 1]"] 27["Path<br>[380, 413, 1]"]
42["Segment<br>[403, 429, 1]"] 42["Segment<br>[421, 447, 1]"]
47["Segment<br>[437, 499, 1]"] 47["Segment<br>[455, 517, 1]"]
53["Segment<br>[507, 569, 1]"] 53["Segment<br>[525, 587, 1]"]
58["Segment<br>[577, 640, 1]"] 58["Segment<br>[595, 658, 1]"]
68["Segment<br>[648, 673, 1]"] 68["Segment<br>[666, 691, 1]"]
73["Segment<br>[681, 701, 1]"] 73["Segment<br>[699, 719, 1]"]
77["Segment<br>[709, 733, 1]"] 77["Segment<br>[727, 751, 1]"]
83["Segment<br>[741, 803, 1]"] 83["Segment<br>[759, 821, 1]"]
91["Segment<br>[811, 836, 1]"] 91["Segment<br>[829, 854, 1]"]
95["Segment<br>[844, 864, 1]"] 95["Segment<br>[862, 882, 1]"]
100["Segment<br>[872, 896, 1]"] 100["Segment<br>[890, 914, 1]"]
108["Segment<br>[904, 965, 1]"] 108["Segment<br>[922, 983, 1]"]
114["Segment<br>[973, 1034, 1]"] 114["Segment<br>[991, 1052, 1]"]
120["Segment<br>[1042, 1067, 1]"] 120["Segment<br>[1060, 1085, 1]"]
126["Segment<br>[1075, 1099, 1]"] 126["Segment<br>[1093, 1117, 1]"]
135["Segment<br>[1107, 1169, 1]"] 135["Segment<br>[1125, 1187, 1]"]
139["Segment<br>[1177, 1202, 1]"] 139["Segment<br>[1195, 1220, 1]"]
142["Segment<br>[1210, 1237, 1]"] 142["Segment<br>[1228, 1255, 1]"]
151["Segment<br>[1245, 1306, 1]"] 151["Segment<br>[1263, 1324, 1]"]
157["Segment<br>[1314, 1358, 1]"] 157["Segment<br>[1332, 1376, 1]"]
161["Segment<br>[1366, 1373, 1]"] 161["Segment<br>[1384, 1391, 1]"]
219[Solid2d] 219[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[362, 395, 1]"] 28["Path<br>[380, 413, 1]"]
45["Segment<br>[403, 429, 1]"] 45["Segment<br>[421, 447, 1]"]
46["Segment<br>[437, 499, 1]"] 46["Segment<br>[455, 517, 1]"]
52["Segment<br>[507, 569, 1]"] 52["Segment<br>[525, 587, 1]"]
63["Segment<br>[577, 640, 1]"] 63["Segment<br>[595, 658, 1]"]
66["Segment<br>[648, 673, 1]"] 66["Segment<br>[666, 691, 1]"]
72["Segment<br>[681, 701, 1]"] 72["Segment<br>[699, 719, 1]"]
78["Segment<br>[709, 733, 1]"] 78["Segment<br>[727, 751, 1]"]
86["Segment<br>[741, 803, 1]"] 86["Segment<br>[759, 821, 1]"]
89["Segment<br>[811, 836, 1]"] 89["Segment<br>[829, 854, 1]"]
96["Segment<br>[844, 864, 1]"] 96["Segment<br>[862, 882, 1]"]
102["Segment<br>[872, 896, 1]"] 102["Segment<br>[890, 914, 1]"]
106["Segment<br>[904, 965, 1]"] 106["Segment<br>[922, 983, 1]"]
116["Segment<br>[973, 1034, 1]"] 116["Segment<br>[991, 1052, 1]"]
118["Segment<br>[1042, 1067, 1]"] 118["Segment<br>[1060, 1085, 1]"]
128["Segment<br>[1075, 1099, 1]"] 128["Segment<br>[1093, 1117, 1]"]
130["Segment<br>[1107, 1169, 1]"] 130["Segment<br>[1125, 1187, 1]"]
137["Segment<br>[1177, 1202, 1]"] 137["Segment<br>[1195, 1220, 1]"]
145["Segment<br>[1210, 1237, 1]"] 145["Segment<br>[1228, 1255, 1]"]
152["Segment<br>[1245, 1306, 1]"] 152["Segment<br>[1263, 1324, 1]"]
158["Segment<br>[1314, 1358, 1]"] 158["Segment<br>[1332, 1376, 1]"]
162["Segment<br>[1366, 1373, 1]"] 162["Segment<br>[1384, 1391, 1]"]
220[Solid2d] 220[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[362, 395, 1]"] 29["Path<br>[380, 413, 1]"]
41["Segment<br>[403, 429, 1]"] 41["Segment<br>[421, 447, 1]"]
48["Segment<br>[437, 499, 1]"] 48["Segment<br>[455, 517, 1]"]
55["Segment<br>[507, 569, 1]"] 55["Segment<br>[525, 587, 1]"]
60["Segment<br>[577, 640, 1]"] 60["Segment<br>[595, 658, 1]"]
64["Segment<br>[648, 673, 1]"] 64["Segment<br>[666, 691, 1]"]
75["Segment<br>[681, 701, 1]"] 75["Segment<br>[699, 719, 1]"]
76["Segment<br>[709, 733, 1]"] 76["Segment<br>[727, 751, 1]"]
85["Segment<br>[741, 803, 1]"] 85["Segment<br>[759, 821, 1]"]
93["Segment<br>[811, 836, 1]"] 93["Segment<br>[829, 854, 1]"]
97["Segment<br>[844, 864, 1]"] 97["Segment<br>[862, 882, 1]"]
103["Segment<br>[872, 896, 1]"] 103["Segment<br>[890, 914, 1]"]
110["Segment<br>[904, 965, 1]"] 110["Segment<br>[922, 983, 1]"]
115["Segment<br>[973, 1034, 1]"] 115["Segment<br>[991, 1052, 1]"]
121["Segment<br>[1042, 1067, 1]"] 121["Segment<br>[1060, 1085, 1]"]
127["Segment<br>[1075, 1099, 1]"] 127["Segment<br>[1093, 1117, 1]"]
131["Segment<br>[1107, 1169, 1]"] 131["Segment<br>[1125, 1187, 1]"]
138["Segment<br>[1177, 1202, 1]"] 138["Segment<br>[1195, 1220, 1]"]
146["Segment<br>[1210, 1237, 1]"] 146["Segment<br>[1228, 1255, 1]"]
153["Segment<br>[1245, 1306, 1]"] 153["Segment<br>[1263, 1324, 1]"]
159["Segment<br>[1314, 1358, 1]"] 159["Segment<br>[1332, 1376, 1]"]
163["Segment<br>[1366, 1373, 1]"] 163["Segment<br>[1384, 1391, 1]"]
221[Solid2d] 221[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1765, 1789, 1]"] 30["Path<br>[1783, 1807, 1]"]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[1765, 1789, 1]"] 31["Path<br>[1783, 1807, 1]"]
end end
subgraph path32 [Path] subgraph path32 [Path]
32["Path<br>[1797, 1923, 1]"] 32["Path<br>[1815, 1941, 1]"]
169["Segment<br>[1797, 1923, 1]"] 169["Segment<br>[1815, 1941, 1]"]
170["Segment<br>[1797, 1923, 1]"] 170["Segment<br>[1815, 1941, 1]"]
171["Segment<br>[1797, 1923, 1]"] 171["Segment<br>[1815, 1941, 1]"]
172["Segment<br>[1797, 1923, 1]"] 172["Segment<br>[1815, 1941, 1]"]
176["Segment<br>[1797, 1923, 1]"] 176["Segment<br>[1815, 1941, 1]"]
178["Segment<br>[1797, 1923, 1]"] 178["Segment<br>[1815, 1941, 1]"]
179["Segment<br>[1797, 1923, 1]"] 179["Segment<br>[1815, 1941, 1]"]
215[Solid2d] 215[Solid2d]
end end
subgraph path33 [Path] subgraph path33 [Path]
33["Path<br>[1797, 1923, 1]"] 33["Path<br>[1815, 1941, 1]"]
166["Segment<br>[1797, 1923, 1]"] 166["Segment<br>[1815, 1941, 1]"]
167["Segment<br>[1797, 1923, 1]"] 167["Segment<br>[1815, 1941, 1]"]
168["Segment<br>[1797, 1923, 1]"] 168["Segment<br>[1815, 1941, 1]"]
173["Segment<br>[1797, 1923, 1]"] 173["Segment<br>[1815, 1941, 1]"]
174["Segment<br>[1797, 1923, 1]"] 174["Segment<br>[1815, 1941, 1]"]
175["Segment<br>[1797, 1923, 1]"] 175["Segment<br>[1815, 1941, 1]"]
177["Segment<br>[1797, 1923, 1]"] 177["Segment<br>[1815, 1941, 1]"]
222[Solid2d] 222[Solid2d]
end end
subgraph path34 [Path] subgraph path34 [Path]
34["Path<br>[2217, 2244, 1]"] 34["Path<br>[2235, 2262, 1]"]
180["Segment<br>[2252, 2274, 1]"] 180["Segment<br>[2270, 2292, 1]"]
181["Segment<br>[2282, 2304, 1]"] 181["Segment<br>[2300, 2322, 1]"]
182["Segment<br>[2312, 2334, 1]"] 182["Segment<br>[2330, 2352, 1]"]
183["Segment<br>[2342, 2365, 1]"] 183["Segment<br>[2360, 2383, 1]"]
184["Segment<br>[2373, 2396, 1]"] 184["Segment<br>[2391, 2414, 1]"]
185["Segment<br>[2404, 2439, 1]"] 185["Segment<br>[2422, 2457, 1]"]
186["Segment<br>[2447, 2454, 1]"] 186["Segment<br>[2465, 2472, 1]"]
223[Solid2d] 223[Solid2d]
end end
subgraph path35 [Path] subgraph path35 [Path]
35["Path<br>[2728, 2757, 1]"] 35["Path<br>[2746, 2775, 1]"]
187["Segment<br>[2765, 2800, 1]"] 187["Segment<br>[2783, 2818, 1]"]
188["Segment<br>[2808, 2833, 1]"] 188["Segment<br>[2826, 2851, 1]"]
189["Segment<br>[2841, 2877, 1]"] 189["Segment<br>[2859, 2895, 1]"]
190["Segment<br>[2885, 2909, 1]"] 190["Segment<br>[2903, 2927, 1]"]
191["Segment<br>[2917, 2951, 1]"] 191["Segment<br>[2935, 2969, 1]"]
192["Segment<br>[2959, 2994, 1]"] 192["Segment<br>[2977, 3012, 1]"]
193["Segment<br>[3002, 3009, 1]"] 193["Segment<br>[3020, 3027, 1]"]
214[Solid2d] 214[Solid2d]
end end
subgraph path36 [Path] subgraph path36 [Path]
36["Path<br>[3286, 3313, 1]"] 36["Path<br>[3304, 3331, 1]"]
195["Segment<br>[3321, 3340, 1]"] 195["Segment<br>[3339, 3358, 1]"]
197["Segment<br>[3348, 3397, 1]"] 197["Segment<br>[3366, 3415, 1]"]
end end
subgraph path37 [Path] subgraph path37 [Path]
37["Path<br>[3286, 3313, 1]"] 37["Path<br>[3304, 3331, 1]"]
194["Segment<br>[3321, 3340, 1]"] 194["Segment<br>[3339, 3358, 1]"]
196["Segment<br>[3348, 3397, 1]"] 196["Segment<br>[3366, 3415, 1]"]
end end
subgraph path38 [Path] subgraph path38 [Path]
38["Path<br>[3498, 3531, 1]"] 38["Path<br>[3516, 3549, 1]"]
199["Segment<br>[3539, 3558, 1]"] 199["Segment<br>[3557, 3576, 1]"]
200["Segment<br>[3566, 3588, 1]"] 200["Segment<br>[3584, 3606, 1]"]
202["Segment<br>[3596, 3619, 1]"] 202["Segment<br>[3614, 3637, 1]"]
204["Segment<br>[3627, 3647, 1]"] 204["Segment<br>[3645, 3665, 1]"]
206["Segment<br>[3655, 3679, 1]"] 206["Segment<br>[3673, 3697, 1]"]
209["Segment<br>[3687, 3710, 1]"] 209["Segment<br>[3705, 3728, 1]"]
211["Segment<br>[3718, 3725, 1]"] 211["Segment<br>[3736, 3743, 1]"]
213[Solid2d] 213[Solid2d]
end end
subgraph path39 [Path] subgraph path39 [Path]
39["Path<br>[3498, 3531, 1]"] 39["Path<br>[3516, 3549, 1]"]
198["Segment<br>[3539, 3558, 1]"] 198["Segment<br>[3557, 3576, 1]"]
201["Segment<br>[3566, 3588, 1]"] 201["Segment<br>[3584, 3606, 1]"]
203["Segment<br>[3596, 3619, 1]"] 203["Segment<br>[3614, 3637, 1]"]
205["Segment<br>[3627, 3647, 1]"] 205["Segment<br>[3645, 3665, 1]"]
207["Segment<br>[3655, 3679, 1]"] 207["Segment<br>[3673, 3697, 1]"]
208["Segment<br>[3687, 3710, 1]"] 208["Segment<br>[3705, 3728, 1]"]
210["Segment<br>[3718, 3725, 1]"] 210["Segment<br>[3736, 3743, 1]"]
216[Solid2d] 216[Solid2d]
end end
1["Plane<br>[823, 864, 0]"] 1["Plane<br>[841, 882, 0]"]
2["Plane<br>[874, 916, 0]"] 2["Plane<br>[892, 934, 0]"]
3["Plane<br>[975, 1017, 0]"] 3["Plane<br>[993, 1035, 0]"]
4["Plane<br>[1077, 1144, 0]"] 4["Plane<br>[1095, 1162, 0]"]
5["Plane<br>[1223, 1290, 0]"] 5["Plane<br>[1241, 1308, 0]"]
6["Plane<br>[334, 354, 1]"] 6["Plane<br>[352, 372, 1]"]
7["Plane<br>[334, 354, 1]"] 7["Plane<br>[352, 372, 1]"]
8["Plane<br>[3805, 3840, 1]"] 8["Plane<br>[3823, 3858, 1]"]
9["Plane<br>[3805, 3840, 1]"] 9["Plane<br>[3823, 3858, 1]"]
10["Plane<br>[3869, 3898, 1]"] 10["Plane<br>[3887, 3916, 1]"]
11["Plane<br>[3869, 3898, 1]"] 11["Plane<br>[3887, 3916, 1]"]
12["StartSketchOnPlane<br>[2700, 2720, 1]"] 12["StartSketchOnPlane<br>[2718, 2738, 1]"]
13["StartSketchOnPlane<br>[1737, 1757, 1]"] 13["StartSketchOnPlane<br>[1755, 1775, 1]"]
14["StartSketchOnPlane<br>[3258, 3278, 1]"] 14["StartSketchOnPlane<br>[3276, 3296, 1]"]
15["StartSketchOnPlane<br>[1737, 1757, 1]"] 15["StartSketchOnPlane<br>[1755, 1775, 1]"]
16["StartSketchOnPlane<br>[334, 354, 1]"] 16["StartSketchOnPlane<br>[352, 372, 1]"]
17["StartSketchOnPlane<br>[3470, 3490, 1]"] 17["StartSketchOnPlane<br>[3488, 3508, 1]"]
18["StartSketchOnPlane<br>[3470, 3490, 1]"] 18["StartSketchOnPlane<br>[3488, 3508, 1]"]
19["StartSketchOnPlane<br>[334, 354, 1]"] 19["StartSketchOnPlane<br>[352, 372, 1]"]
20["StartSketchOnPlane<br>[334, 354, 1]"] 20["StartSketchOnPlane<br>[352, 372, 1]"]
21["StartSketchOnPlane<br>[3258, 3278, 1]"] 21["StartSketchOnPlane<br>[3276, 3296, 1]"]
22["StartSketchOnPlane<br>[334, 354, 1]"] 22["StartSketchOnPlane<br>[352, 372, 1]"]
23["StartSketchOnPlane<br>[2189, 2209, 1]"] 23["StartSketchOnPlane<br>[2207, 2227, 1]"]
224["Sweep Extrusion<br>[1462, 1500, 1]"] 224["Sweep Extrusion<br>[1480, 1518, 1]"]
225["Sweep Extrusion<br>[1462, 1500, 1]"] 225["Sweep Extrusion<br>[1480, 1518, 1]"]
226["Sweep Extrusion<br>[1462, 1500, 1]"] 226["Sweep Extrusion<br>[1480, 1518, 1]"]
227["Sweep Extrusion<br>[1538, 1577, 1]"] 227["Sweep Extrusion<br>[1556, 1595, 1]"]
228["Sweep Extrusion<br>[1538, 1577, 1]"] 228["Sweep Extrusion<br>[1556, 1595, 1]"]
229["Sweep Extrusion<br>[1538, 1577, 1]"] 229["Sweep Extrusion<br>[1556, 1595, 1]"]
230["Sweep Extrusion<br>[2034, 2058, 1]"] 230["Sweep Extrusion<br>[2052, 2076, 1]"]
231["Sweep Extrusion<br>[2108, 2132, 1]"] 231["Sweep Extrusion<br>[2126, 2150, 1]"]
232["Sweep Extrusion<br>[2618, 2642, 1]"] 232["Sweep Extrusion<br>[2636, 2660, 1]"]
233["Sweep Extrusion<br>[2618, 2642, 1]"] 233["Sweep Extrusion<br>[2636, 2660, 1]"]
234["Sweep Extrusion<br>[2618, 2642, 1]"] 234["Sweep Extrusion<br>[2636, 2660, 1]"]
235["Sweep Extrusion<br>[3180, 3204, 1]"] 235["Sweep Extrusion<br>[3198, 3222, 1]"]
236["Sweep Extrusion<br>[3180, 3204, 1]"] 236["Sweep Extrusion<br>[3198, 3222, 1]"]
237["Sweep Sweep<br>[3920, 3947, 1]"] 237["Sweep Sweep<br>[3938, 3965, 1]"]
238["Sweep Sweep<br>[3920, 3947, 1]"] 238["Sweep Sweep<br>[3938, 3965, 1]"]
239[Wall] 239[Wall]
240[Wall] 240[Wall]
241[Wall] 241[Wall]

View File

@ -1367,6 +1367,31 @@ description: Result of parsing bench.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,23 +1,23 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[337, 378, 0]"] 4["Path<br>[355, 396, 0]"]
6["Segment<br>[384, 415, 0]"] 6["Segment<br>[402, 433, 0]"]
7["Segment<br>[421, 516, 0]"] 7["Segment<br>[439, 534, 0]"]
8["Segment<br>[522, 544, 0]"] 8["Segment<br>[540, 562, 0]"]
9["Segment<br>[574, 581, 0]"] 9["Segment<br>[592, 599, 0]"]
11[Solid2d] 11[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[738, 788, 0]"] 5["Path<br>[756, 806, 0]"]
10["Segment<br>[738, 788, 0]"] 10["Segment<br>[756, 806, 0]"]
12[Solid2d] 12[Solid2d]
end end
1["Plane<br>[314, 331, 0]"] 1["Plane<br>[332, 349, 0]"]
2["Plane<br>[738, 788, 0]"] 2["Plane<br>[756, 806, 0]"]
3["StartSketchOnFace<br>[695, 732, 0]"] 3["StartSketchOnFace<br>[713, 750, 0]"]
13["Sweep Extrusion<br>[587, 629, 0]"] 13["Sweep Extrusion<br>[605, 647, 0]"]
14["Sweep Extrusion<br>[794, 821, 0]"] 14["Sweep Extrusion<br>[812, 839, 0]"]
15[Wall] 15[Wall]
16["Cap End"] 16["Cap End"]
17["SweepEdge Opposite"] 17["SweepEdge Opposite"]

View File

@ -1357,6 +1357,31 @@ description: Result of parsing bottle.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,36 +1,36 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path4 [Path] subgraph path4 [Path]
4["Path<br>[2065, 2090, 0]"] 4["Path<br>[2083, 2108, 0]"]
7["Segment<br>[2096, 2154, 0]"] 7["Segment<br>[2114, 2172, 0]"]
8["Segment<br>[2160, 2199, 0]"] 8["Segment<br>[2178, 2217, 0]"]
9["Segment<br>[2205, 2252, 0]"] 9["Segment<br>[2223, 2270, 0]"]
10["Segment<br>[2258, 2304, 0]"] 10["Segment<br>[2276, 2322, 0]"]
11["Segment<br>[2310, 2349, 0]"] 11["Segment<br>[2328, 2367, 0]"]
12["Segment<br>[2355, 2425, 0]"] 12["Segment<br>[2373, 2443, 0]"]
13["Segment<br>[2431, 2438, 0]"] 13["Segment<br>[2449, 2456, 0]"]
17[Solid2d] 17[Solid2d]
end end
subgraph path5 [Path] subgraph path5 [Path]
5["Path<br>[2583, 2773, 0]"] 5["Path<br>[2601, 2791, 0]"]
14["Segment<br>[2583, 2773, 0]"] 14["Segment<br>[2601, 2791, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[3207, 3409, 0]"] 6["Path<br>[3225, 3427, 0]"]
15["Segment<br>[3207, 3409, 0]"] 15["Segment<br>[3225, 3427, 0]"]
18[Solid2d] 18[Solid2d]
end end
1["Plane<br>[2042, 2059, 0]"] 1["Plane<br>[2060, 2077, 0]"]
2["StartSketchOnFace<br>[3161, 3201, 0]"] 2["StartSketchOnFace<br>[3179, 3219, 0]"]
3["StartSketchOnFace<br>[2537, 2577, 0]"] 3["StartSketchOnFace<br>[2555, 2595, 0]"]
19["Sweep Extrusion<br>[2444, 2470, 0]"] 19["Sweep Extrusion<br>[2462, 2488, 0]"]
20["Sweep Extrusion<br>[3059, 3096, 0]"] 20["Sweep Extrusion<br>[3077, 3114, 0]"]
21["Sweep Extrusion<br>[3059, 3096, 0]"] 21["Sweep Extrusion<br>[3077, 3114, 0]"]
22["Sweep Extrusion<br>[3059, 3096, 0]"] 22["Sweep Extrusion<br>[3077, 3114, 0]"]
23["Sweep Extrusion<br>[3059, 3096, 0]"] 23["Sweep Extrusion<br>[3077, 3114, 0]"]
24["Sweep Extrusion<br>[3524, 3561, 0]"] 24["Sweep Extrusion<br>[3542, 3579, 0]"]
25["Sweep Extrusion<br>[3524, 3561, 0]"] 25["Sweep Extrusion<br>[3542, 3579, 0]"]
26[Wall] 26[Wall]
27[Wall] 27[Wall]
28[Wall] 28[Wall]
@ -57,12 +57,12 @@ flowchart LR
49["SweepEdge Adjacent"] 49["SweepEdge Adjacent"]
50["SweepEdge Adjacent"] 50["SweepEdge Adjacent"]
51["SweepEdge Adjacent"] 51["SweepEdge Adjacent"]
52["EdgeCut Fillet<br>[3578, 3658, 0]"] 52["EdgeCut Fillet<br>[3596, 3676, 0]"]
53["EdgeCut Fillet<br>[3659, 3736, 0]"] 53["EdgeCut Fillet<br>[3677, 3754, 0]"]
54["EdgeCut Fillet<br>[3762, 3904, 0]"] 54["EdgeCut Fillet<br>[3780, 3922, 0]"]
55["EdgeCut Fillet<br>[3762, 3904, 0]"] 55["EdgeCut Fillet<br>[3780, 3922, 0]"]
56["EdgeCut Fillet<br>[3762, 3904, 0]"] 56["EdgeCut Fillet<br>[3780, 3922, 0]"]
57["EdgeCut Fillet<br>[3762, 3904, 0]"] 57["EdgeCut Fillet<br>[3780, 3922, 0]"]
1 --- 4 1 --- 4
33 x--> 2 33 x--> 2
32 x--> 3 32 x--> 3

View File

@ -3721,6 +3721,31 @@ description: Result of parsing bracket.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

File diff suppressed because it is too large Load Diff

View File

@ -1,274 +1,274 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[354, 410, 1]"] 11["Path<br>[372, 428, 1]"]
34["Segment<br>[354, 410, 1]"] 34["Segment<br>[372, 428, 1]"]
153[Solid2d] 153[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[434, 490, 1]"] 12["Path<br>[452, 508, 1]"]
35["Segment<br>[434, 490, 1]"] 35["Segment<br>[452, 508, 1]"]
143[Solid2d] 143[Solid2d]
end end
subgraph path13 [Path] subgraph path13 [Path]
13["Path<br>[657, 713, 1]"] 13["Path<br>[675, 731, 1]"]
36["Segment<br>[657, 713, 1]"] 36["Segment<br>[675, 731, 1]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path14 [Path] subgraph path14 [Path]
14["Path<br>[737, 793, 1]"] 14["Path<br>[755, 811, 1]"]
37["Segment<br>[737, 793, 1]"] 37["Segment<br>[755, 811, 1]"]
151[Solid2d] 151[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[939, 993, 1]"] 15["Path<br>[957, 1011, 1]"]
38["Segment<br>[939, 993, 1]"] 38["Segment<br>[957, 1011, 1]"]
159[Solid2d] 159[Solid2d]
end end
subgraph path16 [Path] subgraph path16 [Path]
16["Path<br>[1276, 1331, 1]"] 16["Path<br>[1294, 1349, 1]"]
39["Segment<br>[1276, 1331, 1]"] 39["Segment<br>[1294, 1349, 1]"]
161[Solid2d] 161[Solid2d]
end end
subgraph path17 [Path] subgraph path17 [Path]
17["Path<br>[1689, 1735, 1]"] 17["Path<br>[1707, 1753, 1]"]
40["Segment<br>[1741, 1793, 1]"] 40["Segment<br>[1759, 1811, 1]"]
41["Segment<br>[1799, 1872, 1]"] 41["Segment<br>[1817, 1890, 1]"]
42["Segment<br>[1878, 1900, 1]"] 42["Segment<br>[1896, 1918, 1]"]
43["Segment<br>[1906, 1962, 1]"] 43["Segment<br>[1924, 1980, 1]"]
44["Segment<br>[1968, 1975, 1]"] 44["Segment<br>[1986, 1993, 1]"]
147[Solid2d] 147[Solid2d]
end end
subgraph path18 [Path] subgraph path18 [Path]
18["Path<br>[2107, 2153, 1]"] 18["Path<br>[2125, 2171, 1]"]
45["Segment<br>[2159, 2211, 1]"] 45["Segment<br>[2177, 2229, 1]"]
46["Segment<br>[2217, 2292, 1]"] 46["Segment<br>[2235, 2310, 1]"]
47["Segment<br>[2298, 2335, 1]"] 47["Segment<br>[2316, 2353, 1]"]
48["Segment<br>[2341, 2397, 1]"] 48["Segment<br>[2359, 2415, 1]"]
49["Segment<br>[2403, 2410, 1]"] 49["Segment<br>[2421, 2428, 1]"]
150[Solid2d] 150[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[2891, 2938, 1]"] 19["Path<br>[2909, 2956, 1]"]
50["Segment<br>[2946, 3283, 1]"] 50["Segment<br>[2964, 3301, 1]"]
52["Segment<br>[3291, 3323, 1]"] 52["Segment<br>[3309, 3341, 1]"]
55["Segment<br>[3331, 3672, 1]"] 55["Segment<br>[3349, 3690, 1]"]
56["Segment<br>[3680, 3736, 1]"] 56["Segment<br>[3698, 3754, 1]"]
59["Segment<br>[3744, 3751, 1]"] 59["Segment<br>[3762, 3769, 1]"]
144[Solid2d] 144[Solid2d]
end end
subgraph path20 [Path] subgraph path20 [Path]
20["Path<br>[2891, 2938, 1]"] 20["Path<br>[2909, 2956, 1]"]
51["Segment<br>[2946, 3283, 1]"] 51["Segment<br>[2964, 3301, 1]"]
53["Segment<br>[3291, 3323, 1]"] 53["Segment<br>[3309, 3341, 1]"]
54["Segment<br>[3331, 3672, 1]"] 54["Segment<br>[3349, 3690, 1]"]
57["Segment<br>[3680, 3736, 1]"] 57["Segment<br>[3698, 3754, 1]"]
58["Segment<br>[3744, 3751, 1]"] 58["Segment<br>[3762, 3769, 1]"]
163[Solid2d] 163[Solid2d]
end end
subgraph path21 [Path] subgraph path21 [Path]
21["Path<br>[4361, 4456, 1]"] 21["Path<br>[4379, 4474, 1]"]
60["Segment<br>[4462, 4495, 1]"] 60["Segment<br>[4480, 4513, 1]"]
61["Segment<br>[4501, 4552, 1]"] 61["Segment<br>[4519, 4570, 1]"]
62["Segment<br>[4558, 4591, 1]"] 62["Segment<br>[4576, 4609, 1]"]
63["Segment<br>[4597, 4647, 1]"] 63["Segment<br>[4615, 4665, 1]"]
64["Segment<br>[4653, 4694, 1]"] 64["Segment<br>[4671, 4712, 1]"]
65["Segment<br>[4700, 4749, 1]"] 65["Segment<br>[4718, 4767, 1]"]
66["Segment<br>[4755, 4788, 1]"] 66["Segment<br>[4773, 4806, 1]"]
67["Segment<br>[4794, 4828, 1]"] 67["Segment<br>[4812, 4846, 1]"]
68["Segment<br>[4834, 4868, 1]"] 68["Segment<br>[4852, 4886, 1]"]
69["Segment<br>[4874, 4926, 1]"] 69["Segment<br>[4892, 4944, 1]"]
70["Segment<br>[4932, 4966, 1]"] 70["Segment<br>[4950, 4984, 1]"]
71["Segment<br>[4972, 5048, 1]"] 71["Segment<br>[4990, 5066, 1]"]
72["Segment<br>[5054, 5087, 1]"] 72["Segment<br>[5072, 5105, 1]"]
73["Segment<br>[5093, 5169, 1]"] 73["Segment<br>[5111, 5187, 1]"]
74["Segment<br>[5175, 5209, 1]"] 74["Segment<br>[5193, 5227, 1]"]
75["Segment<br>[5215, 5289, 1]"] 75["Segment<br>[5233, 5307, 1]"]
76["Segment<br>[5295, 5329, 1]"] 76["Segment<br>[5313, 5347, 1]"]
77["Segment<br>[5335, 5386, 1]"] 77["Segment<br>[5353, 5404, 1]"]
78["Segment<br>[5392, 5454, 1]"] 78["Segment<br>[5410, 5472, 1]"]
79["Segment<br>[5460, 5511, 1]"] 79["Segment<br>[5478, 5529, 1]"]
80["Segment<br>[5517, 5551, 1]"] 80["Segment<br>[5535, 5569, 1]"]
81["Segment<br>[5557, 5590, 1]"] 81["Segment<br>[5575, 5608, 1]"]
82["Segment<br>[5596, 5629, 1]"] 82["Segment<br>[5614, 5647, 1]"]
83["Segment<br>[5635, 5642, 1]"] 83["Segment<br>[5653, 5660, 1]"]
148[Solid2d] 148[Solid2d]
end end
subgraph path22 [Path] subgraph path22 [Path]
22["Path<br>[571, 622, 3]"] 22["Path<br>[589, 640, 3]"]
84["Segment<br>[571, 622, 3]"] 84["Segment<br>[589, 640, 3]"]
146[Solid2d] 146[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[812, 868, 3]"] 23["Path<br>[830, 886, 3]"]
85["Segment<br>[812, 868, 3]"] 85["Segment<br>[830, 886, 3]"]
155[Solid2d] 155[Solid2d]
end end
subgraph path24 [Path] subgraph path24 [Path]
24["Path<br>[998, 1051, 3]"] 24["Path<br>[1016, 1069, 3]"]
86["Segment<br>[998, 1051, 3]"] 86["Segment<br>[1016, 1069, 3]"]
145[Solid2d] 145[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[1439, 1479, 3]"] 25["Path<br>[1457, 1497, 3]"]
87["Segment<br>[1439, 1479, 3]"] 87["Segment<br>[1457, 1497, 3]"]
141[Solid2d] 141[Solid2d]
end end
subgraph path26 [Path] subgraph path26 [Path]
26["Path<br>[1588, 1639, 3]"] 26["Path<br>[1606, 1657, 3]"]
88["Segment<br>[1588, 1639, 3]"] 88["Segment<br>[1606, 1657, 3]"]
154[Solid2d] 154[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[1777, 1830, 3]"] 27["Path<br>[1795, 1848, 3]"]
89["Segment<br>[1777, 1830, 3]"] 89["Segment<br>[1795, 1848, 3]"]
142[Solid2d] 142[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[2078, 2150, 3]"] 28["Path<br>[2096, 2168, 3]"]
90["Segment<br>[2078, 2150, 3]"] 90["Segment<br>[2096, 2168, 3]"]
158[Solid2d] 158[Solid2d]
end end
subgraph path29 [Path] subgraph path29 [Path]
29["Path<br>[2412, 2443, 3]"] 29["Path<br>[2430, 2461, 3]"]
91["Segment<br>[2449, 2469, 3]"] 91["Segment<br>[2467, 2487, 3]"]
92["Segment<br>[2475, 2495, 3]"] 92["Segment<br>[2493, 2513, 3]"]
93["Segment<br>[2501, 2522, 3]"] 93["Segment<br>[2519, 2540, 3]"]
94["Segment<br>[2528, 2584, 3]"] 94["Segment<br>[2546, 2602, 3]"]
95["Segment<br>[2590, 2597, 3]"] 95["Segment<br>[2608, 2615, 3]"]
162[Solid2d] 162[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[2904, 2936, 3]"] 30["Path<br>[2922, 2954, 3]"]
96["Segment<br>[2942, 2963, 3]"] 96["Segment<br>[2960, 2981, 3]"]
97["Segment<br>[2969, 2989, 3]"] 97["Segment<br>[2987, 3007, 3]"]
98["Segment<br>[2995, 3015, 3]"] 98["Segment<br>[3013, 3033, 3]"]
99["Segment<br>[3021, 3077, 3]"] 99["Segment<br>[3039, 3095, 3]"]
100["Segment<br>[3083, 3090, 3]"] 100["Segment<br>[3101, 3108, 3]"]
157[Solid2d] 157[Solid2d]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[511, 592, 4]"] 31["Path<br>[529, 610, 4]"]
101["Segment<br>[598, 699, 4]"] 101["Segment<br>[616, 717, 4]"]
102["Segment<br>[705, 763, 4]"] 102["Segment<br>[723, 781, 4]"]
103["Segment<br>[769, 853, 4]"] 103["Segment<br>[787, 871, 4]"]
104["Segment<br>[859, 918, 4]"] 104["Segment<br>[877, 936, 4]"]
105["Segment<br>[924, 1009, 4]"] 105["Segment<br>[942, 1027, 4]"]
106["Segment<br>[1015, 1074, 4]"] 106["Segment<br>[1033, 1092, 4]"]
107["Segment<br>[1080, 1203, 4]"] 107["Segment<br>[1098, 1221, 4]"]
108["Segment<br>[1209, 1268, 4]"] 108["Segment<br>[1227, 1286, 4]"]
109["Segment<br>[1274, 1409, 4]"] 109["Segment<br>[1292, 1427, 4]"]
110["Segment<br>[1415, 1474, 4]"] 110["Segment<br>[1433, 1492, 4]"]
111["Segment<br>[1480, 1604, 4]"] 111["Segment<br>[1498, 1622, 4]"]
112["Segment<br>[1610, 1669, 4]"] 112["Segment<br>[1628, 1687, 4]"]
113["Segment<br>[1675, 1760, 4]"] 113["Segment<br>[1693, 1778, 4]"]
114["Segment<br>[1766, 1825, 4]"] 114["Segment<br>[1784, 1843, 4]"]
115["Segment<br>[1831, 1916, 4]"] 115["Segment<br>[1849, 1934, 4]"]
116["Segment<br>[1922, 1980, 4]"] 116["Segment<br>[1940, 1998, 4]"]
117["Segment<br>[1986, 1993, 4]"] 117["Segment<br>[2004, 2011, 4]"]
156[Solid2d] 156[Solid2d]
end end
subgraph path32 [Path] subgraph path32 [Path]
32["Path<br>[693, 733, 5]"] 32["Path<br>[711, 751, 5]"]
118["Segment<br>[741, 788, 5]"] 118["Segment<br>[759, 806, 5]"]
119["Segment<br>[796, 832, 5]"] 119["Segment<br>[814, 850, 5]"]
120["Segment<br>[840, 870, 5]"] 120["Segment<br>[858, 888, 5]"]
121["Segment<br>[878, 917, 5]"] 121["Segment<br>[896, 935, 5]"]
122["Segment<br>[925, 965, 5]"] 122["Segment<br>[943, 983, 5]"]
123["Segment<br>[973, 1008, 5]"] 123["Segment<br>[991, 1026, 5]"]
124["Segment<br>[1016, 1054, 5]"] 124["Segment<br>[1034, 1072, 5]"]
125["Segment<br>[1062, 1084, 5]"] 125["Segment<br>[1080, 1102, 5]"]
126["Segment<br>[1092, 1099, 5]"] 126["Segment<br>[1110, 1117, 5]"]
152[Solid2d] 152[Solid2d]
end end
subgraph path33 [Path] subgraph path33 [Path]
33["Path<br>[487, 544, 6]"] 33["Path<br>[505, 562, 6]"]
127["Segment<br>[550, 684, 6]"] 127["Segment<br>[568, 702, 6]"]
128["Segment<br>[690, 737, 6]"] 128["Segment<br>[708, 755, 6]"]
129["Segment<br>[743, 840, 6]"] 129["Segment<br>[761, 858, 6]"]
130["Segment<br>[846, 878, 6]"] 130["Segment<br>[864, 896, 6]"]
131["Segment<br>[884, 916, 6]"] 131["Segment<br>[902, 934, 6]"]
132["Segment<br>[922, 953, 6]"] 132["Segment<br>[940, 971, 6]"]
133["Segment<br>[959, 1074, 6]"] 133["Segment<br>[977, 1092, 6]"]
134["Segment<br>[1080, 1112, 6]"] 134["Segment<br>[1098, 1130, 6]"]
135["Segment<br>[1118, 1150, 6]"] 135["Segment<br>[1136, 1168, 6]"]
136["Segment<br>[1156, 1187, 6]"] 136["Segment<br>[1174, 1205, 6]"]
137["Segment<br>[1193, 1286, 6]"] 137["Segment<br>[1211, 1304, 6]"]
138["Segment<br>[1292, 1339, 6]"] 138["Segment<br>[1310, 1357, 6]"]
139["Segment<br>[1345, 1418, 6]"] 139["Segment<br>[1363, 1436, 6]"]
140["Segment<br>[1424, 1431, 6]"] 140["Segment<br>[1442, 1449, 6]"]
160[Solid2d] 160[Solid2d]
end end
1["Plane<br>[331, 348, 1]"] 1["Plane<br>[349, 366, 1]"]
2["Plane<br>[1666, 1683, 1]"] 2["Plane<br>[1684, 1701, 1]"]
3["Plane<br>[2084, 2101, 1]"] 3["Plane<br>[2102, 2119, 1]"]
4["Plane<br>[2860, 2883, 1]"] 4["Plane<br>[2878, 2901, 1]"]
5["Plane<br>[2860, 2883, 1]"] 5["Plane<br>[2878, 2901, 1]"]
6["Plane<br>[4338, 4355, 1]"] 6["Plane<br>[4356, 4373, 1]"]
7["Plane<br>[548, 565, 3]"] 7["Plane<br>[566, 583, 3]"]
8["Plane<br>[488, 505, 4]"] 8["Plane<br>[506, 523, 4]"]
9["Plane<br>[659, 685, 5]"] 9["Plane<br>[677, 703, 5]"]
10["Plane<br>[464, 481, 6]"] 10["Plane<br>[482, 499, 6]"]
164["Sweep Extrusion<br>[497, 530, 1]"] 164["Sweep Extrusion<br>[515, 548, 1]"]
165["Sweep Extrusion<br>[800, 833, 1]"] 165["Sweep Extrusion<br>[818, 851, 1]"]
166["Sweep Extrusion<br>[1140, 1174, 1]"] 166["Sweep Extrusion<br>[1158, 1192, 1]"]
167["Sweep Extrusion<br>[1140, 1174, 1]"] 167["Sweep Extrusion<br>[1158, 1192, 1]"]
168["Sweep Extrusion<br>[1140, 1174, 1]"] 168["Sweep Extrusion<br>[1158, 1192, 1]"]
169["Sweep Extrusion<br>[1140, 1174, 1]"] 169["Sweep Extrusion<br>[1158, 1192, 1]"]
170["Sweep Extrusion<br>[1140, 1174, 1]"] 170["Sweep Extrusion<br>[1158, 1192, 1]"]
171["Sweep Extrusion<br>[1478, 1512, 1]"] 171["Sweep Extrusion<br>[1496, 1530, 1]"]
172["Sweep Extrusion<br>[1478, 1512, 1]"] 172["Sweep Extrusion<br>[1496, 1530, 1]"]
173["Sweep Extrusion<br>[1478, 1512, 1]"] 173["Sweep Extrusion<br>[1496, 1530, 1]"]
174["Sweep Extrusion<br>[1478, 1512, 1]"] 174["Sweep Extrusion<br>[1496, 1530, 1]"]
175["Sweep Extrusion<br>[1478, 1512, 1]"] 175["Sweep Extrusion<br>[1496, 1530, 1]"]
176["Sweep Revolve<br>[1981, 1998, 1]"] 176["Sweep Revolve<br>[1999, 2016, 1]"]
177["Sweep Revolve<br>[2416, 2433, 1]"] 177["Sweep Revolve<br>[2434, 2451, 1]"]
178["Sweep Extrusion<br>[3799, 3845, 1]"] 178["Sweep Extrusion<br>[3817, 3863, 1]"]
179["Sweep Extrusion<br>[3799, 3845, 1]"] 179["Sweep Extrusion<br>[3817, 3863, 1]"]
180["Sweep Revolve<br>[5648, 5665, 1]"] 180["Sweep Revolve<br>[5666, 5683, 1]"]
181["Sweep Extrusion<br>[631, 687, 3]"] 181["Sweep Extrusion<br>[649, 705, 3]"]
182["Sweep Extrusion<br>[881, 943, 3]"] 182["Sweep Extrusion<br>[899, 961, 3]"]
183["Sweep Extrusion<br>[1198, 1277, 3]"] 183["Sweep Extrusion<br>[1216, 1295, 3]"]
184["Sweep Extrusion<br>[1198, 1277, 3]"] 184["Sweep Extrusion<br>[1216, 1295, 3]"]
185["Sweep Extrusion<br>[1198, 1277, 3]"] 185["Sweep Extrusion<br>[1216, 1295, 3]"]
186["Sweep Extrusion<br>[1198, 1277, 3]"] 186["Sweep Extrusion<br>[1216, 1295, 3]"]
187["Sweep Extrusion<br>[1198, 1277, 3]"] 187["Sweep Extrusion<br>[1216, 1295, 3]"]
188["Sweep Extrusion<br>[1485, 1518, 3]"] 188["Sweep Extrusion<br>[1503, 1536, 3]"]
189["Sweep Extrusion<br>[1654, 1719, 3]"] 189["Sweep Extrusion<br>[1672, 1737, 3]"]
190["Sweep Extrusion<br>[1977, 2021, 3]"] 190["Sweep Extrusion<br>[1995, 2039, 3]"]
191["Sweep Extrusion<br>[1977, 2021, 3]"] 191["Sweep Extrusion<br>[1995, 2039, 3]"]
192["Sweep Extrusion<br>[1977, 2021, 3]"] 192["Sweep Extrusion<br>[1995, 2039, 3]"]
193["Sweep Extrusion<br>[1977, 2021, 3]"] 193["Sweep Extrusion<br>[1995, 2039, 3]"]
194["Sweep Extrusion<br>[1977, 2021, 3]"] 194["Sweep Extrusion<br>[1995, 2039, 3]"]
195["Sweep Extrusion<br>[2305, 2349, 3]"] 195["Sweep Extrusion<br>[2323, 2367, 3]"]
196["Sweep Extrusion<br>[2305, 2349, 3]"] 196["Sweep Extrusion<br>[2323, 2367, 3]"]
197["Sweep Extrusion<br>[2305, 2349, 3]"] 197["Sweep Extrusion<br>[2323, 2367, 3]"]
198["Sweep Extrusion<br>[2305, 2349, 3]"] 198["Sweep Extrusion<br>[2323, 2367, 3]"]
199["Sweep Extrusion<br>[2305, 2349, 3]"] 199["Sweep Extrusion<br>[2323, 2367, 3]"]
200["Sweep Extrusion<br>[2305, 2349, 3]"] 200["Sweep Extrusion<br>[2323, 2367, 3]"]
201["Sweep Extrusion<br>[2305, 2349, 3]"] 201["Sweep Extrusion<br>[2323, 2367, 3]"]
202["Sweep Extrusion<br>[2305, 2349, 3]"] 202["Sweep Extrusion<br>[2323, 2367, 3]"]
203["Sweep Extrusion<br>[2305, 2349, 3]"] 203["Sweep Extrusion<br>[2323, 2367, 3]"]
204["Sweep Extrusion<br>[2305, 2349, 3]"] 204["Sweep Extrusion<br>[2323, 2367, 3]"]
205["Sweep Extrusion<br>[2305, 2349, 3]"] 205["Sweep Extrusion<br>[2323, 2367, 3]"]
206["Sweep Extrusion<br>[2305, 2349, 3]"] 206["Sweep Extrusion<br>[2323, 2367, 3]"]
207["Sweep Extrusion<br>[2305, 2349, 3]"] 207["Sweep Extrusion<br>[2323, 2367, 3]"]
208["Sweep Extrusion<br>[2305, 2349, 3]"] 208["Sweep Extrusion<br>[2323, 2367, 3]"]
209["Sweep Extrusion<br>[2305, 2349, 3]"] 209["Sweep Extrusion<br>[2323, 2367, 3]"]
210["Sweep Extrusion<br>[2305, 2349, 3]"] 210["Sweep Extrusion<br>[2323, 2367, 3]"]
211["Sweep Extrusion<br>[2763, 2831, 3]"] 211["Sweep Extrusion<br>[2781, 2849, 3]"]
212["Sweep Extrusion<br>[2763, 2831, 3]"] 212["Sweep Extrusion<br>[2781, 2849, 3]"]
213["Sweep Extrusion<br>[2763, 2831, 3]"] 213["Sweep Extrusion<br>[2781, 2849, 3]"]
214["Sweep Extrusion<br>[2763, 2831, 3]"] 214["Sweep Extrusion<br>[2781, 2849, 3]"]
215["Sweep Extrusion<br>[2763, 2831, 3]"] 215["Sweep Extrusion<br>[2781, 2849, 3]"]
216["Sweep Extrusion<br>[3253, 3327, 3]"] 216["Sweep Extrusion<br>[3271, 3345, 3]"]
217["Sweep Extrusion<br>[3253, 3327, 3]"] 217["Sweep Extrusion<br>[3271, 3345, 3]"]
218["Sweep Extrusion<br>[3253, 3327, 3]"] 218["Sweep Extrusion<br>[3271, 3345, 3]"]
219["Sweep Extrusion<br>[3253, 3327, 3]"] 219["Sweep Extrusion<br>[3271, 3345, 3]"]
220["Sweep Extrusion<br>[3253, 3327, 3]"] 220["Sweep Extrusion<br>[3271, 3345, 3]"]
221["Sweep Revolve<br>[2031, 2081, 4]"] 221["Sweep Revolve<br>[2049, 2099, 4]"]
222["Sweep Revolve<br>[1107, 1124, 5]"] 222["Sweep Revolve<br>[1125, 1142, 5]"]
223["Sweep Revolve<br>[1484, 1513, 6]"] 223["Sweep Revolve<br>[1502, 1531, 6]"]
224[Wall] 224[Wall]
225[Wall] 225[Wall]
226[Wall] 226[Wall]

View File

@ -775,6 +775,31 @@ description: Result of parsing car-wheel-assembly.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,71 +1,71 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[773, 813, 0]"] 7["Path<br>[791, 831, 0]"]
16["Segment<br>[821, 886, 0]"] 16["Segment<br>[839, 904, 0]"]
21["Segment<br>[894, 991, 0]"] 21["Segment<br>[912, 1009, 0]"]
25["Segment<br>[999, 1116, 0]"] 25["Segment<br>[1017, 1134, 0]"]
35["Segment<br>[1124, 1180, 0]"] 35["Segment<br>[1142, 1198, 0]"]
40["Segment<br>[1188, 1195, 0]"] 40["Segment<br>[1206, 1213, 0]"]
43[Solid2d] 43[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[773, 813, 0]"] 8["Path<br>[791, 831, 0]"]
15["Segment<br>[821, 886, 0]"] 15["Segment<br>[839, 904, 0]"]
19["Segment<br>[894, 991, 0]"] 19["Segment<br>[912, 1009, 0]"]
30["Segment<br>[999, 1116, 0]"] 30["Segment<br>[1017, 1134, 0]"]
31["Segment<br>[1124, 1180, 0]"] 31["Segment<br>[1142, 1198, 0]"]
41["Segment<br>[1188, 1195, 0]"] 41["Segment<br>[1206, 1213, 0]"]
44[Solid2d] 44[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[773, 813, 0]"] 9["Path<br>[791, 831, 0]"]
18["Segment<br>[821, 886, 0]"] 18["Segment<br>[839, 904, 0]"]
23["Segment<br>[894, 991, 0]"] 23["Segment<br>[912, 1009, 0]"]
26["Segment<br>[999, 1116, 0]"] 26["Segment<br>[1017, 1134, 0]"]
33["Segment<br>[1124, 1180, 0]"] 33["Segment<br>[1142, 1198, 0]"]
37["Segment<br>[1188, 1195, 0]"] 37["Segment<br>[1206, 1213, 0]"]
45[Solid2d] 45[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[773, 813, 0]"] 10["Path<br>[791, 831, 0]"]
14["Segment<br>[821, 886, 0]"] 14["Segment<br>[839, 904, 0]"]
24["Segment<br>[894, 991, 0]"] 24["Segment<br>[912, 1009, 0]"]
28["Segment<br>[999, 1116, 0]"] 28["Segment<br>[1017, 1134, 0]"]
34["Segment<br>[1124, 1180, 0]"] 34["Segment<br>[1142, 1198, 0]"]
38["Segment<br>[1188, 1195, 0]"] 38["Segment<br>[1206, 1213, 0]"]
46[Solid2d] 46[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[773, 813, 0]"] 11["Path<br>[791, 831, 0]"]
13["Segment<br>[821, 886, 0]"] 13["Segment<br>[839, 904, 0]"]
22["Segment<br>[894, 991, 0]"] 22["Segment<br>[912, 1009, 0]"]
27["Segment<br>[999, 1116, 0]"] 27["Segment<br>[1017, 1134, 0]"]
32["Segment<br>[1124, 1180, 0]"] 32["Segment<br>[1142, 1198, 0]"]
39["Segment<br>[1188, 1195, 0]"] 39["Segment<br>[1206, 1213, 0]"]
47[Solid2d] 47[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[773, 813, 0]"] 12["Path<br>[791, 831, 0]"]
17["Segment<br>[821, 886, 0]"] 17["Segment<br>[839, 904, 0]"]
20["Segment<br>[894, 991, 0]"] 20["Segment<br>[912, 1009, 0]"]
29["Segment<br>[999, 1116, 0]"] 29["Segment<br>[1017, 1134, 0]"]
36["Segment<br>[1124, 1180, 0]"] 36["Segment<br>[1142, 1198, 0]"]
42["Segment<br>[1188, 1195, 0]"] 42["Segment<br>[1206, 1213, 0]"]
48[Solid2d] 48[Solid2d]
end end
1["Plane<br>[356, 390, 0]"] 1["Plane<br>[374, 408, 0]"]
2["Plane<br>[405, 440, 0]"] 2["Plane<br>[423, 458, 0]"]
3["Plane<br>[454, 489, 0]"] 3["Plane<br>[472, 507, 0]"]
4["Plane<br>[504, 540, 0]"] 4["Plane<br>[522, 558, 0]"]
5["Plane<br>[552, 602, 0]"] 5["Plane<br>[570, 620, 0]"]
6["Plane<br>[615, 650, 0]"] 6["Plane<br>[633, 668, 0]"]
49["Sweep Extrusion<br>[1203, 1234, 0]"] 49["Sweep Extrusion<br>[1221, 1252, 0]"]
50["Sweep Extrusion<br>[1203, 1234, 0]"] 50["Sweep Extrusion<br>[1221, 1252, 0]"]
51["Sweep Extrusion<br>[1203, 1234, 0]"] 51["Sweep Extrusion<br>[1221, 1252, 0]"]
52["Sweep Extrusion<br>[1203, 1234, 0]"] 52["Sweep Extrusion<br>[1221, 1252, 0]"]
53["Sweep Extrusion<br>[1203, 1234, 0]"] 53["Sweep Extrusion<br>[1221, 1252, 0]"]
54["Sweep Extrusion<br>[1203, 1234, 0]"] 54["Sweep Extrusion<br>[1221, 1252, 0]"]
55[Wall] 55[Wall]
56[Wall] 56[Wall]
57[Wall] 57[Wall]

View File

@ -2137,6 +2137,31 @@ description: Result of parsing color-cube.kcl
"type": "Name", "type": "Name",
"type": "Name" "type": "Name"
} }
},
{
"commentStart": 0,
"end": 0,
"key": {
"commentStart": 0,
"end": 0,
"name": "kclVersion",
"start": 0,
"type": "Identifier"
},
"start": 0,
"type": "ObjectProperty",
"value": {
"commentStart": 0,
"end": 0,
"raw": "1.0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
} }
], ],
"start": 0, "start": 0,

View File

@ -1,54 +1,54 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path7 [Path] subgraph path7 [Path]
7["Path<br>[645, 835, 0]"] 7["Path<br>[663, 853, 0]"]
13["Segment<br>[845, 929, 0]"] 13["Segment<br>[863, 947, 0]"]
16["Segment<br>[939, 991, 0]"] 16["Segment<br>[957, 1009, 0]"]
17["Segment<br>[1001, 1048, 0]"] 17["Segment<br>[1019, 1066, 0]"]
19["Segment<br>[1058, 1110, 0]"] 19["Segment<br>[1076, 1128, 0]"]
21["Segment<br>[1120, 1167, 0]"] 21["Segment<br>[1138, 1185, 0]"]
23["Segment<br>[1177, 1242, 0]"] 23["Segment<br>[1195, 1260, 0]"]
27["Segment<br>[1252, 1260, 0]"] 27["Segment<br>[1270, 1278, 0]"]
31[Solid2d] 31[Solid2d]
end end
subgraph path8 [Path] subgraph path8 [Path]
8["Path<br>[645, 835, 0]"] 8["Path<br>[663, 853, 0]"]
26["Segment<br>[1252, 1260, 0]"] 26["Segment<br>[1270, 1278, 0]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path9 [Path] subgraph path9 [Path]
9["Path<br>[645, 835, 0]"] 9["Path<br>[663, 853, 0]"]
14["Segment<br>[845, 929, 0]"] 14["Segment<br>[863, 947, 0]"]
15["Segment<br>[939, 991, 0]"] 15["Segment<br>[957, 1009, 0]"]
18["Segment<br>[1001, 1048, 0]"] 18["Segment<br>[1019, 1066, 0]"]
20["Segment<br>[1058, 1110, 0]"] 20["Segment<br>[1076, 1128, 0]"]
22["Segment<br>[1120, 1167, 0]"] 22["Segment<br>[1138, 1185, 0]"]
24["Segment<br>[1177, 1242, 0]"] 24["Segment<br>[1195, 1260, 0]"]
25["Segment<br>[1252, 1260, 0]"] 25["Segment<br>[1270, 1278, 0]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path10 [Path] subgraph path10 [Path]
10["Path<br>[1288, 1338, 0]"] 10["Path<br>[1306, 1356, 0]"]
29["Segment<br>[1288, 1338, 0]"] 29["Segment<br>[1306, 1356, 0]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[1288, 1338, 0]"] 11["Path<br>[1306, 1356, 0]"]
30["Segment<br>[1288, 1338, 0]"] 30["Segment<br>[1306, 1356, 0]"]
34[Solid2d] 34[Solid2d]
end end
subgraph path12 [Path] subgraph path12 [Path]
12["Path<br>[1288, 1338, 0]"] 12["Path<br>[1306, 1356, 0]"]
28["Segment<br>[1288, 1338, 0]"] 28["Segment<br>[1306, 1356, 0]"]
35[Solid2d] 35[Solid2d]
end end
1["Plane<br>[601, 634, 0]"] 1["Plane<br>[619, 652, 0]"]
2["Plane<br>[601, 634, 0]"] 2["Plane<br>[619, 652, 0]"]
3["Plane<br>[601, 634, 0]"] 3["Plane<br>[619, 652, 0]"]
4["StartSketchOnPlane<br>[587, 635, 0]"] 4["StartSketchOnPlane<br>[605, 653, 0]"]
5["StartSketchOnPlane<br>[587, 635, 0]"] 5["StartSketchOnPlane<br>[605, 653, 0]"]
6["StartSketchOnPlane<br>[587, 635, 0]"] 6["StartSketchOnPlane<br>[605, 653, 0]"]
37["Sweep Loft<br>[1465, 1554, 0]"] 37["Sweep Loft<br>[1483, 1572, 0]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]

Some files were not shown because too many files have changed in this diff Show More