# US 10,768,606 B2 · Agent-based slicing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,768,606 B2
- Document ID: US10768606B2
- Status: Granted
- Kind: B2
- Application number: 15/613,070
- Filed: 2017-06-02
- Published: 2018-12-06
- Granted: 2020-09-08
- Earliest claimed: 2017-06-02
- Assignees: Autodesk, Inc.
- Applicants: Autodesk, Inc.
- Inventors: Evan Patrick Atherton; David Thomasson; Maurice Ugo Conti; Heather Kerrick; Nicholas Cote; Hui Li
- Web page: https://patentgrep.com/patent/US10768606B2

## CPC

- G05B 19/4099: Surface or curve machining, making three-dimensional [3D] objects, e.g. desktop manufacturing
- B22D 23/003: {Moulding by spraying metal on a surface}
- B25J 9/1679: {characterised by the tasks executed}
- B33Y 50/00: Data acquisition or data processing for additive manufacturing
- B23K 9/044: {Built-up welding on three-dimensional surfaces}
- G05B 2219/49023: 3-D printing, layer of powder, add drops of binder in layer, new powder
- G06T 2219/008: Cut plane or projection plane definition
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- B22D: CASTING OF METALS; CASTING OF OTHER SUBSTANCES BY THE SAME PROCESSES OR DEVICES (shaping of plastics or substances in a plastic state B29C; metallurgical processing, selection of substances to be added to metal C21, C22)
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})
- B33Y: ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B23K: SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

An agent engine allocates a collection of agents to scan the surface of an object model. Each agent operates autonomously and implements particular behaviors based on the actions of nearby agents. Accordingly, the collection of agents exhibits swarm-like behavior. Over a sequence of time steps, the agents traverse the surface of the object model. Each agent acts to avoid other agents, thereby maintaining a relatively consistent distribution of agents across the surface of the object model over all time steps. At a given time step, the agent engine generates a slice through the object model that intersects each agent in a group of agents. The slice associated with a given time step represents a set of locations where material should be deposited to fabricate a 3D object. Based on a set of such slices, a robot engine causes a robot to fabricate the 3D object.

## Claims

### Claim 1

A computer-implemented method for slicing object models, the method comprising:
deploying a group of agents onto a surface of an object model;
causing the group of agents to traverse the surface of the object model towards a first region, wherein the group of agents surrounds a first portion of the object model, the first portion being located proximate to or at the first region; and
generating a first slice that intersects the group of agents and the first portion of the object model.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein causing the group of agents to traverse the surface of the object model comprises:
determining a set of heading vectors associated with a set of agents residing proximate to a first agent;
combining the set of heading vectors to generate an influence vector;
determining a first heading vector for the first agent based on the influence vector and a previous heading vector associated with the first agent; and
moving the first agent to a first position based on the first heading vector.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining a number of agents within a neighborhood on the surface of the object model that surrounds a first agent;
determining that the number of agents exceeds a threshold value; and
merging the first agent with a second agent that resides within the neighborhood.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining a number of agents within a neighborhood on the surface of the object model that surrounds a first agent;
determining that the number of agents is less than a threshold value; and
copying the first agent to generate a second agent on the surface of the object model.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
causing a first subgroup of agents to traverse a first branch of the object model;
causing a second subgroup of agents to traverse a second branch of the object model;
generating a second slice that intersects the first subgroup of agents and a second portion of the object model that is associated with the first branch; and
generating a third slice that intersects the second subgroup of agents and a third portion of the object model that is associated with the second branch.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
causing the group of agents to traverse the surface of the object model towards a second region, wherein the group of agents surrounds a second portion of the object model, the second portion being located proximate to or at the second region; and
generating a second slice that intersects the group of agents and the second portion of the object model, wherein the first slice and the second slice collectively define a topology of a three-dimensional (3D) object.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, further comprising causing a robot to fabricate the 3D object based on the first slice and the second slice, wherein the 3D object is geometrically similar to the object model.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the first slice comprises a non-planar surface.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein a position associated with any given agent included in the group of agents comprises a location for depositing material to fabricate a 3D object that is geometrically similar to the object model.

### Claim 10

One or more non-transitory computer-readable media that, when executed by a processor, causes the processor to slice object models by performing the steps of:
deploying a group of agents onto a surface of an object model;
causing the group of agents to traverse the surface of the object model to surround a first portion of the object model; and
generating a first slice that intersects the group of agents and the first portion of the object model.

### Claim 11 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, wherein the step of causing the group of agents to traverse the surface of the object model comprises:
determining a set of heading vectors associated with a set of agents residing proximate to a first agent;
combining the set of heading vectors to generate an influence vector;
determining a first heading vector for the first agent based on the influence vector and a previous heading vector associated with the first agent; and
moving the first agent to a first position based on the first heading vector.

### Claim 12 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, further comprising the steps of:
determining a number of agents within a neighborhood on the surface of the object model that surrounds a first agent;
determining that the number of agents exceeds a threshold value; and
merging the first agent with a second agent that resides within the neighborhood.

### Claim 13 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, further comprising the steps of:
determining a number of agents within a neighborhood on the surface of the object model that surrounds a first agent;
determining that the number of agents is less than a threshold value; and
copying the first agent to generate a second agent on the surface of the object model.

### Claim 14 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, further comprising the steps of:
causing a first subgroup of agents to traverse a first branch of the object model;
causing a second subgroup of agents to traverse a second branch of the object model;
generating a second slice that intersects the first subgroup of agents and a second portion of the object model that is associated with the first branch; and
generating a third slice that intersects the second subgroup of agents and a third portion of the object model that is associated with the second branch.

### Claim 15 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, further comprising the steps of:
causing the group of agents to traverse the surface of the object model to surround a second portion of the object model; and
generating a second slice that intersects the group of agents and the second portion of the object model, wherein the first slice and the second slice collectively define a topology of a three-dimensional (3D) object.

### Claim 16 (depends on 15)

The one or more non-transitory computer-readable media of claim 15, further comprising the step of causing a robot to fabricate the 3D object based on the first slice and the second slice, wherein the 3D object is geometrically similar to the object model.

### Claim 17 (depends on 16)

The one or more non-transitory computer-readable media of claim 16, wherein the robot comprises a 6-axis mechanical arm robot.

### Claim 18 (depends on 16)

The one or more non-transitory computer-readable media of claim 16, wherein the robot is configured deposit metal beads to fabricate the 3D object.

### Claim 19

A system for slicing object models, comprising:
a memory that includes a software application; and
a processor that slices an object model by:
deploying a group of agents onto a surface of the object model,
causing the group of agents to traverse the surface of the object model, and
generating a first slice of the object model based on the traversal of the surface of the object model by the group of agents.

### Claim 20 (depends on 19)

The system of claim 19, wherein the processor, upon executing the software application:
deploys the group of agents;
causes the group of agents to traverse the surface of the object model; and
generates the first slice.
