CARVIEW |
Select Language
HTTP/2 200
date: Thu, 31 Jul 2025 00:05:53 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"34bc7e07294b7c36ac4181960220501c"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=vbY4ElbnLyVkqvTTiSeRBMSr9mDLYSpWPI64eK%2B%2FPAtmhU4jnFMIek0PyWe%2FBtixneyFjpFHBN4veu0SQFKMwHxDj0vJrAn%2FTEki6AQfk9hy83imQeUJJw2anryjjrC%2F80oYNptisW4DIfCIw3Myz2eZGBG8EhR%2FYBU51tNU5C9884kIbl2kzgQWVhg77hjtVe%2BQFpspnbtC8E79bAK97hjZbsEXoIzYLpZTPqV7%2FuYY8YO6S%2BOlqqOZZbVr4MUtJDnDSMAZsjzYFD9aUXry4A%3D%3D--3%2B5pDJBdqeRCFPxF--0le2E64Hh%2F9Q6mUxLjrM3w%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1774647299.1753920352; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 00:05:52 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 00:05:52 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A92A:2198DD:DD6B2:14ED37:688AB360
Architecture · Ultimaker/CuraEngine Wiki · GitHub
Loading
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 902
Architecture
Erwan MATHIEU edited this page Jan 15, 2024
·
1 revision
This document details the hierarchical structure of the classes used during slicing:
classDiagram
Application *-- "0..1" Communication : communication_
Application *-- "0..1" ThreadPool : thread_pool_
Application o-- "0..1" Slice : current_slice_
Application : #slice
<<singleton>> Application
Communication
<<abstract>> Communication
ArcusCommunication --|> Communication
CommandLineCommunication --|> Communication
Slice *-- "1" Scene : scene
Slice : +compute()
Slice : +reset()
Scene *-- "1" Settings : settings
Scene *-- "*" MeshGroup : mesh_groups
Scene *-- "*" ExtruderTrain : extruders
Scene : +processMeshGroup(MeshGroup)
MeshGroup *-- "1" Settings : settings
MeshGroup *-- "*" Mesh : meshes
MeshGroup : +finalize()
MeshGroup : +clear()
ExtruderTrain *-- "1" Settings : settings_
FffProcessor *-- "1" FffGCodeWriter : gcode_writer
FffProcessor *-- "1" FffPolygonGenerator : polygon_generator
FffProcessor : +setTargetFile(filename)
FffProcessor : +setTargetStream(stream)
FffProcessor : +getTotalFilamentUsed(extruder_nr) double
FffProcessor : +getTotalPrintTimePerFeature() vector~Duration~
FffProcessor : +finalize()
<<singleton>> FffProcessor
FffGCodeWriter *-- "1" LayerPlanBuffer : layer_plan_buffer
FffGCodeWriter *-- "1" GCodeExport : gcode
FffGCodeWriter : +setTargetFile(filename)
FffGCodeWriter : +setTargetStream(stream)
FffGCodeWriter : +getTotalFilamentUsed(extruder_nr) double
FffGCodeWriter : +getTotalPrintTimePerFeature() vector~Duration~
FffGCodeWriter : +writeGCode(storage, timeKeeper)
FffPolygonGenerator : +generateAreas(storage, object, timeKeeper) bool
LayerPlanBuffer o-- "*" LayerPlan : buffer_
LayerPlanBuffer : +setPreheatConfig()
LayerPlanBuffer : +push(layer_plan)
LayerPlanBuffer : +handle(layer_plan, gcode)
LayerPlanBuffer : +flush()
LayerPlan *-- "1..*" ExtruderPlan : extruder_plans_
ExtruderPlan *-- "*" GCodePath : paths_
ExtruderPlan *-- "*" NozzleTempInsert : inserts_
We can see 2 main trees:
- The
Application
is the root that contains all the data structures, especially theScene
with the objects that need to be printed, and their settings - The
FffProcessor
singleton contains the objects doing the actual slicing and conversion to GCode
A number of slices can be queued up to be processed. Each slice contains their own scene, which represents the build plate full of objects that are supposed to be printed.
Each scene contains a number of mesh groups as well as a number of extruders. These mesh groups are processed one at a time. For each of the mesh groups the same set of extruders are used. A mesh group contains a number of meshes.
This scene is built by the communication class (whichever one is active).
You can’t perform that action at this time.