214 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			214 KiB
		
	
	
	
	
	
	
	
title, subtitle, excerpt, layout
| title | subtitle | excerpt | layout | 
|---|---|---|---|
| chamfer | Function in std::solid | Cut a straight transitional edge along a tagged path. | manual | 
Cut a straight transitional edge along a tagged path.
chamfer(
  @solid: Solid,
  length: number(Length),
  tags: [Edge; 1+],
  tag?: TagDecl,
): Solid
Chamfer is similar in function and use to a fillet, except a fillet will blend the transition along an edge, rather than cut a sharp, straight transitional edge.
Arguments
| Name | Type | Description | Required | 
|---|---|---|---|
solid | 
Solid | 
The solid whose edges should be chamfered | Yes | 
length | 
number(Length) | 
The length of the chamfer | Yes | 
tags | 
[Edge; 1+] | 
The paths you want to chamfer | Yes | 
tag | 
TagDecl | 
Create a new tag which refers to this chamfer | No | 
Returns
Solid - A solid is a collection of extruded surfaces.
Examples
// Chamfer a mounting plate.
width = 20
length = 10
thickness = 1
chamferLength = 2
mountingPlateSketch = startSketchOn(XY)
  |> startProfile(at = [-width / 2, -length / 2])
  |> line(endAbsolute = [width / 2, -length / 2], tag = $edge1)
  |> line(endAbsolute = [width / 2, length / 2], tag = $edge2)
  |> line(endAbsolute = [-width / 2, length / 2], tag = $edge3)
  |> close(tag = $edge4)
mountingPlate = extrude(mountingPlateSketch, length = thickness)
  |> chamfer(
       length = chamferLength,
       tags = [
         getNextAdjacentEdge(edge1),
         getNextAdjacentEdge(edge2),
         getNextAdjacentEdge(edge3),
         getNextAdjacentEdge(edge4)
       ],
     )
// Sketch on the face of a chamfer.
fn cube(pos, scale) {
  sg = startSketchOn(XY)
    |> startProfile(at = pos)
    |> line(end = [0, scale])
    |> line(end = [scale, 0])
    |> line(end = [0, -scale])
  return sg
}
part001 = cube(pos = [0, 0], scale = 20)
  |> close(tag = $line1)
  |> extrude(length = 20)
  // We tag the chamfer to reference it later.
  |> chamfer(length = 10, tags = [getOppositeEdge(line1)], tag = $chamfer1)
sketch001 = startSketchOn(part001, face = chamfer1)
  |> startProfile(at = [10, 10])
  |> line(end = [2, 0])
  |> line(end = [0, 2])
  |> line(end = [-2, 0])
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)])
  |> close()
  |> extrude(length = 10)