Cura.proto 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. syntax = "proto3";
  2. package cura.proto;
  3. message ObjectList
  4. {
  5. repeated Object objects = 1;
  6. repeated Setting settings = 2; // meshgroup settings (for one-at-a-time printing)
  7. }
  8. message Slice
  9. {
  10. repeated ObjectList object_lists = 1; // The meshgroups to be printed one after another
  11. SettingList global_settings = 2; // The global settings used for the whole print job
  12. repeated Extruder extruders = 3; // The settings sent to each extruder object
  13. }
  14. message Extruder
  15. {
  16. int32 id = 1;
  17. SettingList settings = 2;
  18. }
  19. message Object
  20. {
  21. int64 id = 1;
  22. bytes vertices = 2; //An array of 3 floats.
  23. bytes normals = 3; //An array of 3 floats.
  24. bytes indices = 4; //An array of ints.
  25. repeated Setting settings = 5; // Setting override per object, overruling the global settings.
  26. }
  27. message Progress
  28. {
  29. float amount = 1;
  30. }
  31. message Layer {
  32. int32 id = 1;
  33. float height = 2; // Z position
  34. float thickness = 3; // height of a single layer
  35. repeated Polygon polygons = 4; // layer data
  36. }
  37. message Polygon {
  38. enum Type {
  39. NoneType = 0;
  40. Inset0Type = 1;
  41. InsetXType = 2;
  42. SkinType = 3;
  43. SupportType = 4;
  44. SkirtType = 5;
  45. InfillType = 6;
  46. SupportInfillType = 7;
  47. MoveCombingType = 8;
  48. MoveRetractionType = 9;
  49. }
  50. Type type = 1; // Type of move
  51. bytes points = 2; // The points of the polygon, or two points if only a line segment (Currently only line segments are used)
  52. float line_width = 3; // The width of the line being laid down
  53. }
  54. message GCodeLayer {
  55. bytes data = 2;
  56. }
  57. message ObjectPrintTime { // The print time for the whole print and material estimates for the first extruder
  58. int64 id = 1;
  59. float time = 2; // Total time estimate
  60. float material_amount = 3; // material used in the first extruder
  61. }
  62. message SettingList {
  63. repeated Setting settings = 1;
  64. }
  65. message Setting {
  66. string name = 1; // Internal key to signify a setting
  67. bytes value = 2; // The value of the setting
  68. }
  69. message GCodePrefix {
  70. bytes data = 2; // Header string to be prenpended before the rest of the gcode sent from the engine
  71. }
  72. message SlicingFinished {
  73. }