+ All Categories
Home > Documents > The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working...

The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working...

Date post: 19-Aug-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
68
The Printer Working Group February 1, 2019 Working Draft Copyright © 2015-2019 The Printer Working Group. All rights reserved. Deleted: January 14 IPP 3D Printing Extensions v1.1 (3D) Status: Stable Abstract: This specification defines an extension to the Internet Printing Protocol and IPP Everywhere that supports printing of physical objects by Additive Manufacturing devices such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: https://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf This document is available electronically at: https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190201.docx https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190201.pdf Deleted: Prototype Field Code Changed Deleted: https://ftp.pwg.org/pub/pwg/ipp/ wd/wd-ipp3d11-20190114.docx Field Code Changed Deleted: https://ftp.pwg.org/pub/pwg/ipp/ wd/wd-ipp3d11-20190114.pdf
Transcript
Page 1: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

ThePrinterWorkingGroup

February1,2019WorkingDraft

Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Deleted: January14

IPP3DPrintingExtensionsv1.1(3D)

Status:Stable

Abstract: This specification defines an extension to the Internet Printing Protocol and IPP Everywhere that supports printing of physical objects by Additive Manufacturing devices such as 3D printers.

This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see:

https://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf

This document is available electronically at:

https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190201.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190201.pdf

Deleted: Prototype

Field Code Changed

Deleted: https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190114.docx

Field Code Changed

Deleted: https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipp3d11-20190114.pdf

Page 2: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page2of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Copyright © 2015-2019 The Printer Working Group. All rights reserved. 1

This document may be copied and furnished to others, and derivative works that comment 2on, or otherwise explain it or assist in its implementation may be prepared, copied, published 3and distributed, in whole or in part, without restriction of any kind, provided that the above 4copyright notice, this paragraph and the title of the Document as referenced below are 5included on all such copies and derivative works. However, this document itself may not be 6modified in any way, such as by removing the copyright notice or references to the IEEE-7ISTO and the Printer Working Group, a program of the IEEE-ISTO. 8

Title: IPP 3D Printing Extensions v1.1 (3D) 9

The IEEE-ISTO and the Printer Working Group DISCLAIM ANY AND ALL WARRANTIES, 10WHETHER EXPRESS OR IMPLIED INCLUDING (WITHOUT LIMITATION) ANY IMPLIED 11WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 12

The Printer Working Group, a program of the IEEE-ISTO, reserves the right to make 13changes to the document without further notice. The document may be updated, replaced 14or made obsolete by other documents at any time. 15

The IEEE-ISTO takes no position regarding the validity or scope of any intellectual property 16or other rights that might be claimed to pertain to the implementation or use of the technology 17described in this document or the extent to which any license under such rights might or 18might not be available; neither does it represent that it has made any effort to identify any 19such rights. 20

The IEEE-ISTO invites any interested party to bring to its attention any copyrights, patents, 21or patent applications, or other proprietary rights which may cover technology that may be 22required to implement the contents of this document. The IEEE-ISTO and its programs shall 23not be responsible for identifying patents for which a license may be required by a document 24and/or IEEE-ISTO Industry Group Standard or for conducting inquiries into the legal validity 25or scope of those patents that are brought to its attention. Inquiries may be submitted to the 26IEEE-ISTO by e-mail at: [email protected]. 27

The Printer Working Group acknowledges that the IEEE-ISTO (acting itself or through its 28designees) is, and shall at all times, be the sole entity that may authorize the use of 29certification marks, trademarks, or other special designations to indicate compliance with 30these materials. 31

Use of this document is wholly voluntary. The existence of this document does not imply that 32there are no other ways to produce, test, measure, purchase, market, or provide other goods 33and services related to its scope. 34 35

Page 3: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page3of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

About the IEEE-ISTO 36

The IEEE-ISTO is a not-for-profit corporation offering industry groups an innovative and 37flexible operational forum and support services. The IEEE-ISTO provides a forum not only 38to develop standards, but also to facilitate activities that support the implementation and 39acceptance of standards in the marketplace. The organization is affiliated with the IEEE 40(http://www.ieee.org/) and the IEEE Standards Association (http://standards.ieee.org/). 41

For additional information regarding the IEEE-ISTO and its industry programs visit: 42

http://www.ieee-isto.org43

About the IEEE-ISTO PWG 44

The Printer Working Group (PWG) is a Program of the IEEE Industry Standard and 45Technology Organization (ISTO) with members including printer and multi-function device 46manufacturers, print server developers, operating system providers, print management 47application developers, and industry experts. Originally founded in 1991 as the Network 48Printing Alliance, the PWG is chartered to make printers, multi-function devices, and the 49applications and operating systems supporting them work together better. All references to 50the PWG in this document implicitly mean “The Printer Working Group, a Program of the 51IEEE ISTO.” To meet this objective, the PWG documents the results of their work as open 52standards that define print related protocols, interfaces, procedures and conventions. A 53PWG standard is a stable, well understood, and technically competent specification that is 54widely used with multiple independent and interoperable implementations. Printer 55manufacturers and vendors of printer related software benefit from the interoperability 56provided by voluntary conformance to these standards. 57

In general, a PWG standard is a specification that is stable, well understood, and is 58technically competent, has multiple, independent and interoperable implementations with 59substantial operational experience, and enjoys significant public support. 60

For additional information regarding the Printer Working Group visit: 61

http://www.pwg.org62

Contact information: 63

ThePrinterWorkingGroup64c/oTheIEEEIndustryStandardsandTechnologyOrganization65445HoesLane66Piscataway,NJ0885467USA68

69

Page 4: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page4of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

TableofContents701.Introduction.................................................................................................................................................................9712.Terminology.................................................................................................................................................................972

2.1ConformanceTerminology............................................................................................................................9732.2PrintingTerminology.......................................................................................................................................9742.3ProtocolRoleTerminology.........................................................................................................................10752.43DPrintingTerminology.............................................................................................................................10762.5OtherTerminology.........................................................................................................................................11772.6AcronymsandOrganizations.....................................................................................................................1178

3.RationaleforIPP3DPrintingExtensions....................................................................................................13793.1UseCases............................................................................................................................................................1380

3.1.1Printa3DObject....................................................................................................................................13813.1.2Printa3DObjectUsingLoadedMaterials...................................................................................13823.1.3Printa3DObjectwithMultipleMaterials...................................................................................13833.1.4PrintaTool...............................................................................................................................................14843.1.5Viewa3DObjectDuringPrinting...................................................................................................1485

3.2Exceptions..........................................................................................................................................................14863.2.1CloggedExtruder....................................................................................................................................14873.2.2ExtruderTemperatureOutofRange.............................................................................................14883.2.3ExtruderHeadMovementIssues....................................................................................................14893.2.4FilamentFeedJam.................................................................................................................................14903.2.5FilamentFeedSkip................................................................................................................................14913.2.6MaterialEmpty........................................................................................................................................15923.2.7MaterialAdhesionIssues....................................................................................................................15933.2.8BuildPlatformTemperatureOutofRange.................................................................................15943.2.9BuildPlatformNotClear.....................................................................................................................1595

3.3OutofScope.......................................................................................................................................................15963.4DesignRequirements....................................................................................................................................1697

4.3DPrintServiceModel.........................................................................................................................................17984.13DPrintService...............................................................................................................................................19994.23DPrinterSubunits.......................................................................................................................................19100

4.2.1FinishingDevices...................................................................................................................................191014.2.2InputTrays/Rolls...................................................................................................................................191024.2.3MarkerSupplies......................................................................................................................................191034.2.4Markers......................................................................................................................................................201044.2.5MediaPaths..............................................................................................................................................20105

4.33DPrinterCoordinateSystem..................................................................................................................201064.4OutputIntentandJobProcessing............................................................................................................211074.5JobSpooling.......................................................................................................................................................211084.6MultipleDocumentJobs...............................................................................................................................211094.7Cloud-BasedPrinting....................................................................................................................................21110

5.DiscoveryProtocols...............................................................................................................................................221115.1DNSServiceDiscovery(DNS-SD).............................................................................................................22112

5.1.1ServiceInstanceName.........................................................................................................................221135.1.2ServiceType.............................................................................................................................................22114

Page 5: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page5of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

5.1.3TXTRecord...............................................................................................................................................221155.2LDAPDiscovery...............................................................................................................................................23116

5.2.1printerIPPS3DClass..............................................................................................................................231176.ProtocolBinding.....................................................................................................................................................24118

6.1TransportandResourcePath....................................................................................................................241196.2HTTPFeatures..................................................................................................................................................24120

6.2.1Host..............................................................................................................................................................241216.2.2If-Modified-Since,Last-Modified,and304NotModified......................................................241226.2.3Cache-Control..........................................................................................................................................24123

6.3IPPOperations.................................................................................................................................................251246.4IPPOperationAttributes.............................................................................................................................251256.5IPPPrinterDescriptionAttributes..........................................................................................................251266.6IPPPrinterStatusAttributes.....................................................................................................................281276.7IPPJobTemplateAttributes.......................................................................................................................291286.8IPPJobDescriptionAttributes..................................................................................................................291296.9IPPJobStatusAttributes..............................................................................................................................29130

6.9.1job-id(integer)........................................................................................................................................301316.9.2job-uri(uri)...............................................................................................................................................30132

7.DocumentFormats................................................................................................................................................301338.NewAttributes.........................................................................................................................................................31134

8.1JobTemplateAttributes...............................................................................................................................311358.1.1chamber-humidity(integer(0:100)|no-value).......................................................................311368.1.2chamber-temperature(integer(-273:MAX)|no-value).......................................................321378.1.3materials-col(1setOfcollection).....................................................................................................321388.1.4multiple-object-handling(type2keyword)................................................................................361398.1.5platform-temperature(integer(-273:MAX)).............................................................................361408.1.6print-accuracy(collection)................................................................................................................371418.1.7print-base(type2keyword)..............................................................................................................381428.1.8print-objects(1setOfcollection).....................................................................................................381438.1.9print-supports(type2keyword).....................................................................................................39144

8.2JobStatusAttributes......................................................................................................................................401458.2.1chamber-humidity-actual(1setOfinteger(0:100)).................................................................401468.2.2chamber-temperature-actual(1setOfinteger(-273:MAX)).................................................401478.2.3materials-col-actual(1setOfcollection).......................................................................................401488.2.4multiple-object-handling-actual(type2keyword)..................................................................401498.2.5print-accuracy-actual(collection)..................................................................................................411508.2.6platform-temperature-actual(1setOfinteger(-273:MAX)).................................................411518.2.7print-accuracy-actual(1setOfcollection)....................................................................................411528.2.8print-base-actual(1setOftype2keyword).................................................................................411538.2.9print-objects-actual(1setOfcollection).......................................................................................411548.2.10print-supports-actual(1setOftype2keyword).....................................................................41155

8.3PrinterDescriptionAttributes..................................................................................................................411568.3.1accuracy-units-supported(1setOftype2keyword)...............................................................411578.3.2chamber-humidity-default(integer(0:100)|no-value).......................................................411588.3.3chamber-humidity-supported(boolean)....................................................................................42159

Page 6: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page6of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.4chamber-temperature-default(integer(-273:MAX)|no-value).......................................421608.3.5chamber-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-161273:MAX)))...........................................................................................................................................................421628.3.6material-amount-units-supported(1setOftype2keyword)..............................................421638.3.7material-diameter-supported(1setOf(integer|rangeOfInteger)).................................421648.3.8material-nozzle-diameter-supported(1setOf(integer|rangeOfInteger))..................421658.3.9material-purpose-supported(1setOftype2keyword).........................................................421668.3.10material-rate-supported(1setOf(integer|rangeOfInteger)...........................................421678.3.11material-rate-units-supported(1setOftype2keyword)...................................................431688.3.12material-shell-thickness-supported(1setOf(integer(1:MAX)|169rangeOfInteger(1:MAX)))...............................................................................................................................431708.3.13material-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-171273:MAX)))...........................................................................................................................................................431728.3.14material-type-supported(1setOftype2keyword)...............................................................431738.3.15materials-col-database(1setOfcollection)..............................................................................431748.3.16materials-col-default(1setOfcollection)..................................................................................441758.3.17materials-col-ready(1setOfcollection).....................................................................................441768.3.18materials-col-supported(1setOftype2keyword)................................................................441778.3.19max-materials-col-supported(integer(1:MAX))...................................................................441788.3.20multiple-object-handling-default(type2keyword).............................................................441798.3.21multiple-object-handling-supported(1setOftype2keyword).......................................441808.3.22pdf-features-supported(1setOftype2keyword)..................................................................441818.3.23platform-shape(type2keyword).................................................................................................451828.3.24platform-temperature-default(integer(-273:MAX))..........................................................451838.3.25platform-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-184273:MAX)))...........................................................................................................................................................451858.3.26print-accuracy-default(collection).............................................................................................451868.3.27print-accuracy-supported(collection)......................................................................................451878.3.28print-base-default(type2keyword)...........................................................................................451888.3.29print-base-supported(1setOftype2keyword)......................................................................451898.3.30print-objects-supported(1setOftype2keyword)................................................................451908.3.31print-supports-default(type2keyword)..................................................................................451918.3.32print-supports-supported(1setOftype2keyword)............................................................461928.3.33printer-volume-supported(collection).....................................................................................46193

8.4PrinterStatusAttributes..............................................................................................................................461948.4.1chamber-humidity-current(integer(0:100)|unknown).....................................................461958.4.2chamber-temperature-current(integer(-273:MAX)|unknown).....................................461968.4.3printer-camera-image-uri(1setOfuri).........................................................................................47197

9.NewValuesforExistingAttributes.................................................................................................................471989.1ipp-features-supported(1setOftype2keyword).............................................................................471999.2printer-state-reasons(1setOftype2keyword).................................................................................47200

10.ConformanceRequirements...........................................................................................................................4920110.1PrinterConformanceRequirements....................................................................................................4920210.2ClientConformanceRequirements......................................................................................................49203

11.InternationalizationConsiderations...........................................................................................................50204

Page 7: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page7of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

12.SecurityConsiderations....................................................................................................................................5020512.1Confidentiality...............................................................................................................................................5120612.2AccessControl...............................................................................................................................................5120712.3PhysicalSafety...............................................................................................................................................5120812.4MaterialSafety...............................................................................................................................................5120912.5TemperatureControl..................................................................................................................................51210

13.IANAandPWGConsiderations......................................................................................................................5221113.1AttributeRegistrations..............................................................................................................................5221213.2AttributeValueRegistrations.................................................................................................................5521313.3ServiceTypeRegistration.........................................................................................................................57214

14.References...............................................................................................................................................................5821514.1NormativeReferences................................................................................................................................5821614.2InformativeReferences.............................................................................................................................61217

15.Author'sAddress..................................................................................................................................................6221816.ObjectDefinitionLanguages(ODLs)...........................................................................................................63219

16.13DManufacturingFormat(3MF)..........................................................................................................6322016.2AdditiveManufacturingFormat(AMF)..............................................................................................6322116.3PortableDocumentFormat(PDF)........................................................................................................6322216.4StandardTessellationLanguage(STL)...............................................................................................63223

17.DesignChoices......................................................................................................................................................6422417.1UnitsforLengthValues.............................................................................................................................6422517.2UnitsforThicknessValues.......................................................................................................................6422617.3UseofCelsiusforTemperatures............................................................................................................6422717.4ExplicitUnitsforOtherValues...............................................................................................................6422817.5Intentvs.Process..........................................................................................................................................6422917.6ChoosingaRequiredDocumentFormat............................................................................................65230

18.OverviewofChanges..........................................................................................................................................6623118.1IPP3DPrintingExtensionsv1.1............................................................................................................66232

19.ChangeHistory......................................................................................................................................................6723319.1February1,2019..........................................................................................................................................6723419.2January14,2019...........................................................................................................................................6723519.3July4,2018.....................................................................................................................................................6723619.4June5,2018....................................................................................................................................................6723719.5April26,2018................................................................................................................................................68238

239240

ListofFigures241Figure1-GeneralizedIPPModel(RFC8011)................................................................................................18242Figure2-3DBuildVolume.....................................................................................................................................20243

244245

ListofTables246Table1-3DPrinterSubunits.................................................................................................................................19247Table2-IPPS3DPrintServiceTXTRecordKeys.........................................................................................22248

Page 8: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page8of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Table3-IPP3DREQUIREDOperations............................................................................................................25249Table4-IPP3DREQUIREDOperationAttributes........................................................................................25250Table5-IPP3DREQUIREDPrinterDescriptionAttributes.....................................................................26251Table6-IPP3DREQUIREDPrinterStatusAttributes................................................................................28252Table7-IPP3DREQUIREDJobTemplateAttributes.................................................................................29253Table8-IPP3DREQUIREDJobDescriptionAttributes.............................................................................29254Table9-IPP3DREQUIREDJobStatusAttributes........................................................................................29255Table10-IPP3DJobTemplateAttributes.......................................................................................................31256Table11-"materials-col"MemberAttributes................................................................................................32257Table13-REQUIRED"print-accuracy"MemberAttributes.....................................................................37258Table14-REQUIRED"print-objects"MemberAttributes........................................................................38259Table15-IPP3D"-actual"JobStatusAttributes..........................................................................................40260Table16-REQUIRED"printer-volume-supported"MemberAttributes............................................46261262

263

Page 9: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page9of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

1. Introduction264

This specification defines an extension to the Internet Printing Protocol (IPP) that supports 265printing of physical objects by Additive Manufacturing devices such as three-dimensional 266(3D) printers. 267

The primary focus of this specification is on popular Fused Deposition Modeling (FDM) 268devices that melt and extrude filaments of ABS, PLA, or other materials in layers to produce 269a physical, 3D object. However, the same attributes can be used for other types of 3D 270printers that use different methods and materials such as Laser Sintering of powdered 271materials and curing of liquids using ultraviolet light. 272

Discovery of IPP 3D Printers is based on the methods defined in IPP Everywhere 273[PWG5100.14]. 274

In order to promote adoption and interoperability, this specification requires support for a 275common Object Definition Language (ODL). Recommendations and guidance for other 276ODLs are also provided, including material mapping strategies, in order to provide the 277greatest flexibility while ensuring consistency and interoperability for future formats. 278

This specification also addresses common Cloud-based issues by extending the IPP Shared 279Infrastructure Extensions [PWG5100.18], although how such services are provisioned or 280managed is out of scope. 281

Sample code implementing this specification has been published in the ISTO-PWG IPP 282Sample Code Repository [IPPSAMPLE]. 283

2. Terminology284

2.1 ConformanceTerminology285

Capitalized terms, such as MUST, MUST NOT, RECOMMENDED, REQUIRED, SHOULD, 286SHOULD NOT, MAY, and OPTIONAL, have special meaning relating to conformance as 287defined in Key words for use in RFCs to Indicate Requirement Levels [BCP14]. The term 288CONDITIONALLY REQUIRED is additionally defined for a conformance requirement that 289applies when a specified condition is true. 290

2.2 PrintingTerminology291

Normative definitions and semantics of printing terms are imported from IETF Printer MIB 292v2 [RFC3805], IETF Finisher MIB [RFC3806], and IETF Internet Printing Protocol/1.1: Model 293and Semantics [STD92]. 294

Page 10: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page10of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Document: An object created and managed by a Printer that contains the description, 295processing, and status information. A Document object may have attached data and is 296bound to a single Job. 297

Job: An object created and managed by a Printer that contains description, processing, and 298status information. The Job also contains zero or more Document objects. 299

Logical Device: a print server, software service, or gateway that processes Jobs and either 300forwards or stores the processed Job or uses one or more Physical Devices to render output. 301

Output Device: a single Logical or Physical Device 302

Physical Device: a hardware implementation of a endpoint device, e.g., a marking engine, a 303fax modem, etc. 304

2.3 ProtocolRoleTerminology305

This document also defines the following protocol roles in order to specify unambiguous 306conformance requirements: 307

Client: Initiator of outgoing connections and sender of outgoing operation requests 308(Hypertext Transfer Protocol -- HTTP/1.1 [RFC7230] User Agent). 309

Printer: Listener for incoming connections and receiver of incoming operation requests 310(Hypertext Transfer Protocol -- HTTP/1.1 [RFC7230] Server) that represents one or more 311Physical Devices or a Logical Device. 312

2.4 3DPrintingTerminology313

Additive Manufacturing: A 3D printing process where material is progressively added to 314produce the final output, as opposed to Subtractive Manufacturing and Formative 315Manufacturing technologies. 316

Binder Jetting: A 3D printing process that uses a liquid binder that is jetted to fuse layers of 317powdered materials. 318

Digital Light Processing: A 3D printing process that uses light with a negative image to 319selectively cure layers of a liquid material, sometimes also called vat photopolymerization. 320

Formative Manufacturing: Traditional casting, moulding, or forming processes used for mass 321production, for example injection moulding of plastic parts. 322

Fused Deposition Modeling: A 3D printing process that extrudes a molten material to draw 323layers, sometimes also called material extrusion. 324

Laser Sintering: A 3D printing process that uses a laser to melt and fuse layers of powdered 325materials, sometimes also called directed energy deposition or powder bed fusion. 326

Page 11: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page11of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Material Jetting: A 3D printing process that jets the actual build materials in liquid or molten 327state to produce layers. 328

Selective Deposition Lamination: A 3D printing process that laminates cut sheets of material, 329sometimes also called sheet lamination. 330

Slicing: The process of converting three-dimensional geometry into two-dimensional planes 331that can be layered to produce an equivalent three-dimensional object. 332

Stereo Lithography: A 3D printing process that uses a laser to cure and fuse layers of liquid 333materials. 334

Subtractive Manufacturing: A 3D printing process where material is progressively removed 335to produce the final output. 336

2.5 OtherTerminology337

Directory Service: A Service providing query and enumeration of information using names 338or other identifiers. 339

Discovery: Finding Printers by querying or browsing local network segments or Enumeration 340of Directory or Name Services. 341

Enumeration: Listing Printers that are registered with a Directory or other Service. 342

Service: Software providing access to physical, logical, or virtual resources and (typically) 343processing of queued Jobs. 344

2.6 AcronymsandOrganizations345

3D PDF Consortium: http://www.3dpdfconsortium.org/ 346

3MF Consortium: 3D Manufacturing Format Consortium, http://www.3mf.io/ 347

CNC: Computer Numerical Control 348

DLP: Digital Light Processing 349

FDM: Fused Deposition Modeling 350

IANA: Internet Assigned Numbers Authority, http://www.iana.org/ 351

IETF: Internet Engineering Task Force, http://www.ietf.org/ 352

ISO: International Organization for Standardization, http://www.iso.org/ 353

ODL: Object Definition Language 354

Page 12: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page12of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

PWG: Printer Working Group, http://www.pwg.org/ 355

SD: SD Card Association, http://www.sdcard.org/ 356

SDL: Selective Deposition Lamination 357

SL: Stereo Lithography 358

USB: Universal Serial Bus, http://www.usb.org/ 359 360

Page 13: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page13of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

3. RationaleforIPP3DPrintingExtensions361

Existing specifications define the following: 362

1. IPPVersion2.0,2.1,and2.2[PWG5100.12]definesversion2.0,2.1,and2.2ofthe363InternetPrintingProtocolwhichdefinesastandardoperatinganddatamodel,364interfaceprotocol,andextensionmechanismtosupporttraditionalPrinters;365

2. IPPEverywhere[PWG5100.14]definesaprofileofexistingIPPspecifications,366standardJobTemplateattributes,andstandarddocumentformats;367

3. IPPSharedInfrastructureExtensions(INFRA)[PWG5100.18]definesaninterface368forprintingthroughsharedservicesbasedininfrastructuresuchasCloudservers;369

4. The3DManufacturingFormatCoreSpecification&ReferenceGuidev1.0[3MF]370definesanXMLschemaandfileformatfordescribing3Dobjectswithoneormore371materials;372

5. TheUniversal3DFileFormat[ECMA363]definesabinaryformatfor3Dobjects373embeddedinPDFfiles;374

6. Documentmanagement--3DuseofProductRepresentationCompact(PRC)format375--Part1:PRC10001[ISO14739]definesabinaryformatfor3Dobjectsembedded376inPDFfiles;and377

7. Documentmanagement—Portabledocumentformat—Part1:PDF1.7378[ISO32000]definesabinaryfileformatthatsupportsembedded3Dobjectswith379oneormorematerials.380

Therefore, this IPP 3D Printing Extensions (3D) document should define IPP attributes, 381values, and operations needed to support printing of 3D objects, status monitoring of 3D 382printers and print jobs, and configuration of 3D printer characteristics and capabilities. 383

3.1 UseCases384

3.1.1 Printa3DObject385

Jane is viewing a 3D object and wishes to print it. After initiating a print action, she selects 386a 3D printer on the network, specifies material and print settings, and submits the object for 387printing. 388

3.1.2 Printa3DObjectUsingLoadedMaterials389

Jane is viewing a 3D object and wishes to print it. After initiating a print action, she selects 390a 3D printer on the network that has the material(s) she wishes to use, specifies additional 391print settings, and submits the object for printing. 392

3.1.3 Printa3DObjectwithMultipleMaterials393

Jane wants to print a multi-material object on a single-material Printer. Jane uses software 394on her Client device to create Document data that instructs the Printer to pause printing and 395

Page 14: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page14of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

provide status information at specific layers so that she can change materials at the Printer 396and resume printing with the new material. 397

3.1.4 PrintaTool398

Jane wants to print an adjustable wrench. Because the wrench contains interlocking pieces 399that must be printed accurately for it to work properly, Jane specifies the required 400dimensional accuracy with the software on her Client device prior to submitting the print. The 401Printer then validates that it can support the required accuracy before accepting the Job. 402

3.1.5 Viewa3DObjectDuringPrinting403

Jane has submitted a 3D print Job that will take 4 hours to complete. She can visually 404monitor the progress of the Job through a web page provided by the Printer. 405

3.2 Exceptions406

3.2.1 CloggedExtruder407

While printing a 3D object, the extruder becomes clogged. The printer stops printing and 408sets the corresponding state reason to allow Jane's Client device to discover the issue and 409display an appropriate alert. 410

3.2.2 ExtruderTemperatureOutofRange411

While printing a 3D object, the extruder temperature goes out of range for the material being 412printed. The printer pauses printing until the temperature stabilizes and sets the 413corresponding state reason to allow Jane's Client device to discover the issue and display 414an appropriate alert. 415

3.2.3 ExtruderHeadMovementIssues416

While printing a 3D object, the extruder head movement becomes irregular. The Printer 417stops printing and sets the corresponding state reason to allow Jane's Client device to 418discover the issue and display an appropriate alert. 419

3.2.4 FilamentFeedJam420

While printing a 3D object, the filament jams and cannot be fed into the extruder. The printer 421stops printing and sets the corresponding state reason to allow Jane's Client device to 422discover the issue and display an appropriate alert. 423

3.2.5 FilamentFeedSkip424

While printing a 3D object, the filament extrusion rate is insufficient to maintain proper 425printing. The printer stops printing and sets the corresponding state reason to allow Jane's 426Client device to discover the issue and display an appropriate alert. 427

Page 15: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page15of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

3.2.6 MaterialEmpty428

While printing a 3D object, the printer runs out of the printing material. The printer pauses 429printing until more material is loaded and sets the corresponding state reason to allow Jane's 430Client device to discover the issue and display an appropriate alert. 431

3.2.7 MaterialAdhesionIssues432

While printing a 3D object, the printed object releases from the Build Platform or the current 433layer is not adhering to the previous one. The printer stops printing and sets the 434corresponding state reason to allow Jane's Client device to discover the issue and display 435an appropriate alert. 436

3.2.8 BuildPlatformTemperatureOutofRange437

While printing a 3D object, the Build Platform temperature goes out of the requested range. 438The printer pauses printing until the temperature stabilizes and sets the corresponding state 439reason to allow Jane's Client device to discover the issue and display an appropriate alert. 440

3.2.9 BuildPlatformNotClear441

When starting to print a 3D object, the Printer detects that the Build Platform is not 442empty/clear. The Printer stops printing and sets the corresponding state reason to allow 443Jane's Client device to discover the issue and display an appropriate alert. The Printer starts 444printing once the Build Platform is cleared. 445

3.3 OutofScope446

The following are considered out of scope for this document: 447

1. Definitionofnewfileformats;4482. SupportforSubtractiveManufacturingtechnologiessuchasCNCmillingmachines;449

and4503. Supportforindustrialand/ormedicalprintingtechnologies.451

452

Page 16: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page16of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

3.4 DesignRequirements453

The design requirements for this document are: 454

1. Defineattributesandvaluestodescribesupportedandloaded(ready)materials455usedforconsumerdesktop3DPrintersandprintservices,includingcolor,fill,456purpose,thickness,andtype;457

2. Defineattributesandvaluestodescribeconsumerdesktop3DPrinterandprint458servicecapabilitiesandstate;459

3. Defineattributesandvaluestodescribeprintingfeaturesand/orconstraints460includingdimensionalaccuracyandgenerationofraftsandsupports;461

4. Defineattributesandvaluestodescribetheobjectsbeingprinted,includingUUID,462boundingbox,andoffsets;463

5. DefineattributestoprovideareceiptoftheprintedJob;4646. Definediscoverymechanismsfor3DPrinters;4657. Definesecurityrequirementsnecessarytosupportprivacyanddevicesafety;4668. Identifysecuretransportmechanismsfor3DPrinters;and4679. Definesectionstoregisterallattributes,values,operations,andservicetypeswith468

IANA.469

The design recommendations for this document are: 470

1. Support3DprintingtechnologiesotherthanFDM471 472

Page 17: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page17of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

4. 3DPrintServiceModel473

The IPP/1.1 Model and Semantics [STD92], the IETF Printer MIB [RFC3805], and the IETF 474Finisher MIB [RFC3806] already define a comprehensive model for the operation and data 475elements of a typical 2D printer. Figure 1 shows the generalized IPP model. The IPP Server 476provides the external network interface for IPP Clients, while the Print Service manages and 477processes Jobs and communicates with the Output Device(s) and their sub-units. 478

IPP objects in the model include Printers, Jobs, Documents, and Subscriptions. Each object 479has associated named attributes, each with one or more strongly typed values. Status 480attributes are immutable (READ-ONLY) while Description and Template attributes can be 481mutable (READ-WRITE). Objects can be the target of IPP operations, for example the 482Printer object accepts the Create-Job operation to create new Job objects for that Printer. 483

The IPP Printer object contains zero or more Job objects and is responsible for managing, 484scheduling, and processing Jobs. It also provides the current state of the Output Device(s) 485and communicates with them as needed. 486

The IPP Job object contains zero or more Document objects and tracks the progress of the 487Job throughout its life cycle. The Job Ticket (attributes supplied when creating the Job) and 488Job Receipt (attributes describing the final disposition of the Job) are also stored here. 489

The IPP Document object contains the document data or a reference (URI) to the data and 490tracks the progress of the Document throughout its life cycle. The Document Ticket 491(attributed supplied when creating the Document) and Document Receipt (attributes 492describing the final disposition of the Document) are also stored here. 493

The IPP Subscription object contains event notifications for one or more conditions that are 494being monitored. The Subscription Ticket (attribute supplied when creating the Subscription) 495is also stored here and determines whether notifications are pushed (email, instant 496messaging, etc.) or pulled (Get-Notifications operation). 497

498

Page 18: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page18of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

499

Figure1-GeneralizedIPPModel(RFC8011)500

501

IPP Client

IPP Server

Print Service

Output Device(s)

Print Driver

Spooler

Application

File

GUIBrowser

End-Users

IPP Printer

S E C U R I T YD I R E C T O

R YN O

T I F I C A T I O N

Transport

Page 19: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page19of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

4.1 3DPrintService502

3D printing uses a variation of the traditional Print service that maintains state and capability 503information specific to 3D printing. The 3D Print service supports all of the same operations 504of the Print service described in [STD92] except for the Print-Job and Print-URI operations 505which are compound requests that are not used in newer IPP services. Similarly, the 3D 506Print service uses a superset of the Print service attributes except where such attributes are 507not applicable, for example the "media" attributes for a 3D printer that does not use media 508sheets. Attributes specific to the 3D Print Service are defined in section 8. 509

4.2 3DPrinterSubunits510

Table 1 lists the subunits of 3D printers for different technologies. Not all subunits are 511exposed by Printers due to hardware or implementation limitations. 512

Table1-3DPrinterSubunits513

2DSubunit 3DSubunit(s) Technology ReferenceFinishingDevices Trimmers All RFC3806InputTrays/Rolls InputTrays/Rolls SDL RFC3805MarkerSupplies Filament,

Granules,Liquids,Powders,Reservoirs

All RFC3805

Markers Extruders,Lamps,Lasers,Projectors

All RFC3805

MediaPath BuildPlatforms,Chambers

Many RFC3805

4.2.1 FinishingDevices514

Finishing Devices include Trimmers that are used to trim support material on printed objects 515and/or remove regions of media that are not part of the final printed object. 516

4.2.2 InputTrays/Rolls517

Input Trays/Rolls provide sheet or roll media for printing. 518

4.2.3 MarkerSupplies519

Marker Supplies include Filament, Granules, Liquids, Powders, and Reservoirs that are used 520to supply the Marker(s) with material for printing. 521

Page 20: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page20of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

4.2.4 Markers522

Markers can print an image on sheets of paper (SDL), melt and extrude material onto the 523Build Platform or previous layer, project an inverse image on the surface of a liquid material 524(DLP), or perform any other action to print an object. 525

Markers include fans, lasers, lamps, motors, and other components that are sometimes 526manually controlled by Printer-specific software but are not exposed by the IPP model. 527

4.2.5 MediaPaths528

Media Paths include traditional Media Sheet paths (SDL) as well as Build Platforms and 529Chambers. Build Platforms hold the printed object. The platform typically moves up or down 530during printing as layers are applied, although in some cases it moves along all three axis. 531

Chambers are the volumes containing the objects being printed. Chambers are sometimes 532temperature controlled and/or have doors that provide access to the printed objects. 533

4.3 3DPrinterCoordinateSystem534

3D printers operate in three dimensions and thus have three axis of movement. For the 535purposes of IPP, the build volume is defined as a rectangular prism (Figure 2) with the X 536axis representing the width, the Y axis representing the depth, and the Z axis representing 537the height. The origin is implementation-specific. 538

539

Figure2-3DBuildVolume540

The Printer's coordinate system is often different than the coordinate system used in the 541ODL file to describe the object(s) being printed. The ODL interpreter on the Printer is 542responsible for performing any transformations needed to prepare the geometry for slicing 543in the Printer's coordinate system. 544

X

Y Z

Page 21: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page21of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

4.4 OutputIntentandJobProcessing545

As with 2D printing, the focus of 3D printing using IPP is specification of output intent and 546not for process or device control. Clients can specify general material selections (“red PLA”, 547“brown wood PLA”, “clear ABS”, etc.), print preferences and quality, and whether supports 548and rafts should be printed. Printers then use the implementation specific device control and 549(ordered) processes to satisfy the Client-supplied output intent when processing the Job. 550

Also as with 2D printing, 3D Printers process Jobs using one or more interpreters. 2D printing 551typically involves rasterization of the Document data while 3D printing involves geometric 552transformations, addition of support geometry, and slicing (layering) of the object(s) in the 553Document data so that they can be printed. 554

4.5 JobSpooling555

Because common ODL formats are not designed to be incrementally processed as a stream 556of data, 3D printers will likely only support spooled (stored) processing of Jobs and 557Documents. 558

4.6 MultipleDocumentJobs559

Printers that support Jobs with multiple Documents SHOULD be capable of printing the 560objects defined in those Documents side-by-side. For example, if a Client submits two 561Documents, of a cat and a dog respectively, the Printer SHOULD be able to print the cat 562and dog at the same time as long as they fit within the build volume. 563

The "multiple-object-handling" (section 8.1.4) Job Template attribute controls whether the 564Printer performs this optimization. 565

4.7 Cloud-BasedPrinting566

Cloud-based printing is supported by the existing IPP Shared Infrastructure Extensions 567(INFRA) [PWG5100.18]. Infrastructure Printers might require additional configuration or 568selection of drivers for the printer being configured, however that is outside the scope of this 569specification and can be considered a part of provisioning the Cloud Service. 570

Snapshots of camera video are uploaded as JPEG image resources using HTTP PUT 571requests from the Proxy to the Infrastructure Printer. Such resources MUST be updated in 572an atomic fashion to allow Clients to safely poll for updates to the camera video. 573 574

Page 22: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page22of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

5. DiscoveryProtocols575

Clients and Printers MUST support DNS-SD based Discovery. Clients and Printers MAY 576support other Discovery protocols such as LDAP. 577

5.1 DNSServiceDiscovery(DNS-SD)578

DNS Service Discovery [RFC6762] uses service (SRV) records and traditional unicast and 579multicast DNS (mDNS) [RFC6763] queries. Printers MUST support mDNS and MAY support 580dynamic DNS updates via Dynamic Updates in the Domain Name System (DNS UPDATE) 581[RFC2136] and other mechanisms. 582

5.1.1 ServiceInstanceName583

Printers MUST NOT use a service instance name containing a unique identifier by default. 584A unique identifier MAY be added to the instance if there is a name collision. 585

The domain portion of the service instance name MUST BE "local." for mDNS. 586

5.1.2 ServiceType587

Printers MUST advertise the "_ipps-3d._tcp" (IPPS 3D Print) service over DNS-SD. 588

5.1.3 TXTRecord589

Table 2 lists the TXT record key/value pairs for IPPS 3D Print services. The TXT record 590associated with the service MUST include the "adminurl" and "UUID" keys and MUST 591include the "note" and "rp" keys when they are not the default values. 592

Table2-IPPS3DPrintServiceTXTRecordKeys593

Key Description DefaultValueadminurl The'https'URLforthePrinter'sembeddedweb

server.None

note Thevalueofthe"printer-location"PrinterDescriptionattribute.

""

pdl Thevaluesofthe"document-formats-supported"PrinterDescriptionattribute.

"model/3mf"

rp Theresourcepathforthisserviceinstancewithouttheleading"/".

"ipp/print3d"

ty Thevalueofthe"printer-make-and-model"PrinterDescriptionattribute.

""

UUID Thevalueofthe"printer-uuid"PrinterStatusattributewithouttheleading'urn:uuid:'.

None

Page 23: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page23of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

5.2 LDAPDiscovery594

LDAP Discover uses Lightweight Directory Access Protocol v3 [RFC4510]. A single class 595for 3D Print services is used. The schema defined in this document is based on the LDAP 596Schema for Print Services [RFC7612] used for 2D Printer services. 597

5.2.1 printerIPPS3DClass598

This auxiliary class defines 3D Printer information. It is used to extend the existing 599"printerService" structural class with 3D-specific Printer information. 600

( 1.3.18.0.2.24.46.2.1 601 NAME 'printerIPPS3D' 602 DESC 'Internet Printing Protocol (IPP) 3D Print Service information.' 603 AUXILIARY 604 SUP top 605 MAY ( printer-ipp-versions-supported $ 606 printer-ipp-features-supported $ 607 printer-multiple-document-jobs-supported ) 608 ) 609

610

Page 24: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page24of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

6. ProtocolBinding611

Printers and Clients MUST support IPP/2.0 as defined in IPP 2.0, 2.1, and 2.2 612[PWG5100.12]. While this specification defines an IPP binding, the same set of Semantic 613Elements can be applied to any protocol that conforms to the PWG Semantic Model. 614

6.1 TransportandResourcePath615

Printers MUST support and use the IPP over HTTPS Transport Binding and 'ipps' URI 616Scheme [RFC7472] for network-connected Clients and/or the The IPP URL Scheme 617[RFC3510] and IPP-USB [IPP-USB] for USB-connected Clients. Printers MUST NOT 618support the "ipp" URI scheme for network-connected Clients since it does not satisfy the 619security requirements defined in section 12. 620

Printers MUST use a URI resource path of "/ipp/print3d" or "/ipp/print3d/NAME" where 621"NAME" identifies a specific instance of a 3D Print service. 622

6.2 HTTPFeatures623

In additional to the IPP over HTTP conformance requirements defined in section 7.3 of IPP 6242.0, 2.1, and 2.2 [PWG5100.12], Printers MUST support the following additional HTTP 625headers and status codes defined in Hypertext Transfer Protocol -- HTTP/1.1 [RFC7230]. 626

6.2.1 Host627

Printers MUST validate the Host request header and SHOULD use the Host value in 628generated URIs. 629

6.2.2 If-Modified-Since,Last-Modified,and304NotModified630

Printers MUST support the If-Modified-Since request header (section 3.3 [RFC7232]), the 631corresponding response status ("304 Not Modified", section 4.1 [RFC7232]), and the Last-632Modified response header (section 2.2 [RFC7232]). 633

The If-Modified-Since request header allows a Client to efficiently determine whether a 634particular resource file (icon, camera image, localization file, etc.) has been updated since 635the last time the Client requested it. 636

6.2.3 Cache-Control637

Printers and Clients MUST conform to the caching semantics defined in section 5.2 638[RFC7234]. Typically, most resource files provided by a Printer in a GET response will be 639cacheable but IPP responses in a POST response are not. Therefore, Printers MAY provide 640a Cache-Control header in GET responses with an appropriate "max-age" value and MUST 641provide a Cache-Control header in IPP POST responses with the value "no-cache". 642

Page 25: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page25of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

6.3 IPPOperations643

Table 3 lists the REQUIRED operations for a Printer. The Create-Job and Send-Document 644operations are required in order to support reliable Job management (e.g., cancellation) 645during print Job submission, but Printers are not required to support multiple document Jobs. 646

Table3-IPP3DREQUIREDOperations647

Code OperationName Reference0x0004 Validate-Job RFC80110x0005 Create-Job RFC80110x0006 Send-Document RFC80110x0008 Cancel-Job RFC80110x0009 Get-Job-Attributes RFC80110x000A Get-Jobs RFC80110x000B Get-Printer-Attributes RFC80110x0039 Cancel-My-Jobs PWG5100.110x003B Close-Job PWG5100.110x003C Identify-Printer PWG5100.13

6.4 IPPOperationAttributes648

Table 4 lists the REQUIRED operation attributes for a Printer. 649

Table4-IPP3DREQUIREDOperationAttributes650

Attribute Referencecompression RFC8011document-format RFC8011document-name RFC8011,PWG5100.5first-index PWG5100.13identify-actions PWG5100.13ipp-attribute-fidelity RFC8011job-ids PWG5100.11job-mandatory-attributes PWG5100.7job-name RFC8011last-document RFC8011limit RFC8011requesting-user-name RFC8011requesting-user-uri PWG5100.13which-jobs RFC8011,PWG5100.11

6.5 IPPPrinterDescriptionAttributes651

Table 5 lists the REQUIRED Printer Description attributes for a Printer. 652

Page 26: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page26of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Table5-IPP3DREQUIREDPrinterDescriptionAttributes653

Attribute Referenceaccuracy-units-supported Section8.3.1charset-configured RFC8011charset-supported RFC8011color-supported RFC8011compression-supported RFC8011document-format-default RFC8011document-format-supported RFC8011generated-natural-language-supported RFC8011identify-actions-default PWG5100.13identify-actions-supported PWG5100.13ipp-features-supported PWG5100.13ipp-versions-supported RFC8011job-creation-attributes-supported PWG5100.11job-ids-supported PWG5100.11material-diameter-supported(note2) Section8.3.7material-purpose-supported Section8.3.9material-rate-supported Section8.3.10material-rate-units-supported Section8.3.11material-shell-thickness-supported Section8.3.12material-temperature-supported(note3) Section8.3.12material-type-supported Section8.3.14materials-col-default Section8.3.16materials-col-ready Section8.3.17materials-col-supported Section8.3.18max-materials-col-supported Section8.3.19multiple-document-jobs-supported RFC8011multiple-object-handling-default Section8.3.20multiple-object-handling-supported Section8.3.21multiple-operation-timeout RFC8011multiple-operation-timeout-action PWG5100.13natural-language-configured RFC8011operations-supported RFC8011platform-temperature-default(note4) Section8.3.24platform-temperature-supported(note4) Section8.3.25print-accuracy-default Section8.3.26print-accuracy-supported Section8.3.27print-base-default Section8.3.28print-base-supported Section8.3.29print-objects-supported Section8.3.30print-quality-default RFC8011print-quality-supported RFC8011print-supports-default Section8.3.31

Page 27: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page27of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

print-supports-supported Section8.3.32printer-geo-location PWG5100.13printer-get-attributes-supported PWG5100.13printer-icons(note1) PWG5100.13printer-info RFC8011printer-location RFC8011printer-make-and-model RFC8011printer-more-info RFC8011printer-name RFC8011printer-organization PWG5100.13printer-organizational-unit PWG5100.13printer-volume-supported Section8.3.33printer-xri-supported(note1) RFC3380which-jobs-supported PWG5100.11

Note1:URIsSHOULDuseHostvaluefromHTTPheader(section6.2.1)andMUSTNOT654uselink-localaddresses(section8.4of[PWG5100.14]).655

Note2:REQUIREDforPrintersthatusefilament-basedmaterials.656

Note3:REQUIREDforPrintersthatcontrolthematerialtemperatureduringprinting.657

Note4:REQUIREDforPrintersthathaveatemperature-controlledBuildPlatform.658 659

Page 28: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page28of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

6.6 IPPPrinterStatusAttributes660

Table 6 lists the REQUIRED Printer Status attributes for a Printer. 661

Table6-IPP3DREQUIREDPrinterStatusAttributes662

Attribute Referenceprinter-camera-image-uri(notes1,2) Section8.4.1printer-config-change-date-time PWG5100.13printer-config-change-time PWG5100.13printer-is-accepting-jobs RFC8011printer-state RFC8011printer-state-change-date-time RFC3995printer-state-change-time RFC3995printer-state-message RFC8011printer-state-reasons RFC8011printer-up-time RFC8011printer-uri-supported(note1) RFC8011printer-uuid PWG5100.13queued-job-count RFC8011uri-authentication-supported RFC8011uri-security-supported RFC8011xri-authentication-supported RFC3380xri-security-supported RFC3380xri-uri-scheme-supported RFC3380

Note1:URIsSHOULDuseHostvaluefromHTTPheader(section6.2.1)andMUSTNOT663uselink-localaddresses(section8.4of[PWG5100.14]).664

Note2:REQUIREDforPrintersthathaveoneormorecameras.665 666

Page 29: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page29of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

6.7 IPPJobTemplateAttributes667

Table 7 lists the REQUIRED Job Template attributes for a Printer. 668

Table7-IPP3DREQUIREDJobTemplateAttributes669

Attribute Referencematerials-col Section8.1.1multiple-document-handling RFC8011multiple-object-handling(note1) Section8.1.4platform-temperature(note2) Section8.1.5print-accuracy Section8.1.6print-base Section8.1.7print-objects(note1) Section8.1.8print-quality RFC8011print-supports Section8.1.9

Note1:REQUIREDforPrintersthatsupportthe'application/pdf'documentformat.670

Note2:REQUIREDforPrintersthathaveatemperature-controlledBuildPlatform.671

6.8 IPPJobDescriptionAttributes672

Table 8 lists the REQUIRED Job Description attributes for a Printer. 673

Table8-IPP3DREQUIREDJobDescriptionAttributes674

Attribute Sourcejob-name RFC8011

6.9 IPPJobStatusAttributes675

Table 8 lists the REQUIRED Job Status attributes for a Printer. 676

Table9-IPP3DREQUIREDJobStatusAttributes677

Attribute Sourcecompression-supplied PWG5100.7date-time-at-completed RFC8011date-time-at-creation RFC8011date-time-at-processing RFC8011document-format-supplied PWG5100.7document-name-supplied PWG5100.7job-id RFC8011job-originating-user-name RFC8011job-printer-up-time RFC8011job-printer-uri RFC8011

Page 30: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page30of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Attribute Sourcejob-state RFC8011job-state-message RFC8011job-state-reasons RFC8011job-uri RFC8011job-uuid PWG5100.13materials-col-actual Section8.2.3multiple-object-handling-actual(note1) Section8.2.4platform-temperature-actual(note2) Section8.2.6print-accuracy-actual Section8.2.7print-base-actual Section8.2.8print-objects-actual(note1) Section8.2.9print-supports-actual Section8.2.10time-at-completed RFC8011time-at-creation RFC8011time-at-processing RFC8011

Note1:REQUIREDforPrintersthatsupportthe'application/pdf'documentformat.678

Note2:REQUIREDforPrintersthathaveatemperature-controlledBuildPlatform.679

6.9.1 job-id(integer)680

The REQUIRED "job-id" Job Description attribute contains the ID of the Job. In order to 681support reliable job submission and management, Printers MUST NOT reuse "job-id" values 682since the last power cycle of the Printer and SHOULD NOT reuse "job-id" values for the life 683of the Printer as described in section 3.1.2.3.9 of the Internet Printing Protocol/1.1: 684Implementer's Guide [RFC3196]. 685

6.9.2 job-uri(uri)686

The REQUIRED "job-uri" Job Description attribute contains the URI of the Job. In order to 687support reliable job submission and management, Printers MUST NOT reuse "job-uri" 688values since the Printer was last powered up and SHOULD NOT reuse "job-uri" values for 689the life of the Printer as described in section 3.1.2.3.9 of the Internet Printing Protocol/1.1: 690Implementer's Guide [RFC3196]. In addition, the "job-uri" value SHOULD be derived from 691the "job-id" value as described in the IPP URL Scheme [RFC3510]. 692

7. DocumentFormats693

Printers that support Slicing MUST support Documents conforming to the 3MF [3MF] 694("model/3mf") format and SHOULD support Documents conforming to the PDF [ISO32000] 695("application/pdf") format containing U3D [U3D] or PRC [PRC] content. Printers that do not 696support Slicing SHOULD support Documents conforming to a layered format such as PWG 697Safe G-Code [PWGGCODE] and/or the 3MF Slice Extension [3MF-SLICE]. 698

Page 31: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page31of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8. NewAttributes699

8.1 JobTemplateAttributes700

Table 10 lists the Job Template attributes and their corresponding “–default” and “-701supported” attributes. 702

Table10-IPP3DJobTemplateAttributes703

JobTemplate Printer:Default Printer:Supportedchamber-humidity(integer|no-value)

chamber-humidity-default(integer|no-value)

chamber-humidity-supported(boolean)

chamber-temperature(integer|no-value)

chamber-temperature-default(integer|no-value)

chamber-temperature-supported(1setOf(integer|rangeOfInteger)|no-value)

materials-col(collection) materials-col-default(1setOfcollection)

materials-col-database(1setOfcollection)materials-col-ready(1setOfcollection)materials-col-supported(1setOftype2keyword)

multiple-object-handling(type2keyword)

multiple-object-handling-default(type2keyword)

multiple-object-handling-supported(1setOftype2keyword)

platform-temperature(integer|no-value)

platform-temperature-default(integer|no-value)

platform-temperature-supported(1setOf(integer|rangeOfInteger)|no-value)

print-accuracy(collection) print-accuracy-default(collection)

accuracy-units-supported(1setOftype2keyword)print-accuracy-supported(collection)

print-base(type2keyword) print-base-default(type2keyword)

print-base-supported(1setOftype2keyword)

print-objects(1setOfcollection)

N/A print-objects-supported(boolean)

print-supports(type2keyword)

print-supports-default(type2keyword)

print-supports-supported(1setOftype2keyword)

8.1.1 chamber-humidity(integer(0:100)|no-value)704

This Job Template attribute specifies the desired relative humidity of the build chamber as a 705percentage. Printers that support humidity control SHOULD support this attribute. 706

Page 32: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page32of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.2 chamber-temperature(integer(-273:MAX)|no-value)707

This Job Template attribute specifies the desired temperature of the build chamber in 708degrees Celsius. Printers that support a temperature-controlled build chamber SHOULD 709support this attribute. 710

8.1.3 materials-col(1setOfcollection)711

This REQUIRED Job Template attribute defines the materials to be used for the Job. When 712specified, the Printer validates the requested materials both when the Job is created and 713when it enters the 'processing' state. If the requested materials are not loaded, the 'material-714needed' keyword is added to the Printer's "printer-state-reasons" values and the Job is 715placed in the 'processing-stopped' state. 716

The Printer advertises which "materials-col" member attributes are supported in the 717"materials-col-supported" (section 8.3.18) Printer Description attribute. The Printer lists only 718those member attributes that are applicable to the technology being used for printing. 719

The Client typically supplies "materials-col" values matching those returned in the "materials-720col-database" (section 8.3.1) or "materials-col-ready" (section 8.3.17) Printer Description 721attributes, although specifying the "material-name" or "material-key" member attribute from 722either of these Printer Description attributes is enough to specify the default values for the 723named material. Table 11 lists the member attributes. 724

Table11-"materials-col"MemberAttributes725

MemberAttribute Printer:SupportedValuesmaterial-amount N/Amaterial-amount-units material-amount-units-supportedmaterial-color N/Amaterial-diameter material-diameter-supportedmaterial-diameter-tolerance N/Amaterial-fill-density N/Amaterial-key materials-col-database

materials-col-readymaterial-name materials-col-database

materials-col-readymaterial-nozzle-diameter material-nozzle-diameter-supportedmaterial-purpose material-purpose-supportedmaterial-rate material-rate-supportedmaterial-rate-units material-rate-units-supportedmaterial-retraction materials-col-supportedmaterial-shell-thickness material-shell-thickness-supportedmaterial-temperate material-temperature-supportedmaterial-type material-type-supported

Page 33: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page33of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.3.1 material-amount(integer(0:MAX)|unknown)726

This RECOMMENDED member attribute provides the estimated amount of material that is 727available ("materials-col-database" and "materials-col-ready" values), the estimated amount 728of material that is required ("materials-col" values), or the actual amount of material that has 729been used ("materials-col-actual" values). 730

8.1.3.2 material-amount-units(type2keyword)731

This RECOMMENDED member attribute provides the units for the "material-amount" value. 732Values include: 733

'g':Valueismassingrams.734

'kg':Valueismassinkilograms.735

'l':Valueisvolumeinliters.736

'm':Valueislengthinmeters.737

'ml':Valueisvolumeinmilliliters.738

'mm':Valueislengthinmillimeters.739

8.1.3.3 material-color(type2keyword)740

This RECOMMENDED member attribute provides a PWG media color [PWG5101.1] value 741representing the color of the material. 742

8.1.3.4 material-diameter(integer(0:MAX))743

This CONDITIONALLY REQUIRED member attribute provides the diameter of the filament 744in nanometers, with the value 0 being used for diameters less than 0.000001mm. Printers 745that use filament materials MUST support this member attribute. 746

8.1.3.5 material-diameter-tolerance(integer(0:MAX))747

This member attribute provides a tolerance for the "material-diameter" value in nanometers, 748with the value 0 being used for tolerances less than 0.000001mm. 749

8.1.3.6 material-fill-density(integer(0:100))750

This REQUIRED member attribute specifies the desired density of filled interior regions in 751percent. 752

Page 34: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page34of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.3.7 material-key(keyword)753

This REQUIRED member attribute provides an unlocalized name of the material that can be 754localized using the strings file referenced by the "printer-strings-uri" Printer attribute. 755

8.1.3.8 material-name(name(MAX))756

This REQUIRED member attribute provides a localized name of the material. 757

8.1.3.9 material-nozzle-diameter(integer(0:MAX))758

This member attribute provides the diameter of the extruder nozzle in nanometers, with the 759value 0 being used for diameters less than 0.000001mm. Printers that use filament materials 760SHOULD support this member attribute. 761

8.1.3.10 material-purpose(1setOftype2keyword)762

This REQUIRED member attribute specifies what the material will be used for. Values 763include: 764

'all':Thematerialwillbeusedforallpartsoftheprintedobject.765

‘base’:Thematerialwillbeusedtoprintabrim,raft,orskirtunder/aroundtheprinted766object.767

‘in-fill’:Thematerialwillbeusedtofilltheinterioroftheprintedobject.768

‘shell’:Thematerialwillbeusedforthesurfaceoftheprintedobject.769

‘support’:Thematerialwillbeusedtosupporttheprintedobject.770

8.1.3.11 material-rate(integer(1:MAX))771

This member attribute provides the flow rate of the material per second. The units are 772defined by the "material-rate-units" member attribute. 773

8.1.3.12 material-rate-units(type2keyword)774

This member attribute provides the units for the "material-rate" member attribute. Values 775include: 776

'mg_sec':Valueismilligramspersecond.777

'ml_sec':Valueismilliliterspersecond.778

'mm_sec':Valueismillimeterspersecond.779

Page 35: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page35of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.3.13 material-retraction(boolean)780

This member attribute specifies whether filament retraction is used for this material. Printers 781that use filament materials SHOULD support this member attribute. 782

8.1.3.14 material-shell-thickness(integer(0:MAX))783

This REQUIRED member attribute specifies the thickness of exterior walls in nanometers, 784with 0 representing the thinnest possible wall. 785

8.1.3.15 material-temperature(integer(-273:MAX)|rangeOfInteger(-273:MAX))786

This CONDITIONALLY REQUIRED member attribute specifies the printing temperature (or 787range of temperatures) for the material in degrees Celsius. Printers that control the 788temperature of materials MUST support this attribute. 789

8.1.3.16 material-type(type2keyword|name(MAX))790

This REQUIRED member attribute specifies the type of material. Keyword values are 791general names for materials (sometimes qualified) and are localized using the message 792catalog specified by the "printer-strings-uri" Printer Description attribute [PWG5100.13]. 793Name values are vendor or site specific human readable (already localized) strings. 794Keyword values include: 795

'abs':AcrylonitrileButadieneStyrene(ABS).796

‘abs-carbon-fiber’:ABSreinforcedwithcarbonfibers.797

‘abs-carbon-nanotube’:ABSreinforcedwithcarbonnanotubes.798

'chocolate':Chocolate.799

'gold':Gold(metal).800

‘nylon’:Nylon.801

‘pet’:Polyethyleneterephthalate(PET).802

'photopolymer':Photopolymer(liquid)resin.803

'pla':PolylacticAcid(PLA).804

'pla-conductive':ConductivePLA.805

‘pla-dissolvable’:DissolvablePLA.806

'pla-flexible':FlexiblePLA.807

Page 36: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page36of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

‘pla-magnetic’:PLAwithembeddedironparticles.808

‘pla-steel’:PLAwithembeddedsteelparticles.809

‘pla-stone’:PLAwithembeddedstonechips.810

‘pla-wood’:PLAwithembeddedwoodfibers.811

‘polycarbonate’:Polycarbonate.812

'silver':Silver(metal).813

‘titanium’:Titanium(metal).814

'wax':Wax.815

Keyword values for materials that are defined by other standards organizations use a format 816consisting of the organization abbreviation, the standard number, a hyphen ("-"), and the 817material identifier. In order to conform to the syntax for keyword values (section 5.1.4 of 818[STD92]), all letters are converted to lowercase (with any diacritical marks removed), ASCII 819digits, hyphens ("-"), underscores ("_") and periods (".") are preserved, spaces are replaced 820with the hyphen ("-"), and slashes ("/") are replaced with the underscore ("_"). Any other 821characters are removed. For example, "7050 Aluminum" as defined in ASTM B247M would 822have a keyword value of 'astmb247m-a97050'. 823

8.1.4 multiple-object-handling(type2keyword)824

This CONDITIONALLY REQUIRED Job Template attribute specifies how multiple objects 825are printed, including those within a single Document, across multiple Documents, and/or 826copies that are produced. Printers that support the 'application/pdf' Document format MUST 827support this attribute. Values include: 828

'auto':AutomaticallydeterminethebestwaytoprintmultipleobjectsinaJob.829

'best-fit':Fitasmanyobjectsaspossiblewithinthebuildvolume.830

'best-quality':Optimizethenumberofobjectsforprintquality.831

'best-speed':Optimizethenumberofobjectsforprintspeed.832

'one-at-a-time':Printoneobjectatatime.833

8.1.5 platform-temperature(integer(-273:MAX))834

This CONDITIONALLY REQUIRED Job Template attribute specifies the desired 835temperature of the Build Platform in degrees Celsius. Printers that have a temperature-836controlled Build Platform MUST support this attribute. 837

Page 37: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page37of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.6 print-accuracy(collection)838

This REQUIRED Job Template attribute specifies the requested general positioning and 839feature accuracy for the Job. Table 12 lists the REQUIRED member attributes. 840

When enforcing attribute fidelity ("ipp-attribute-fidelity" with a value of 'true'), Printers only 841reject "print-accuracy" values that are smaller than the "print-accuracy-supported" (section 8428.3.27) value. 843

Table12-REQUIRED"print-accuracy"MemberAttributes844

MemberAttribute Printer:SupportedValuesaccuracy-units(type2keyword) accuracy-units-supported(1setOftype2

keyword)x-accuracy(integer(0:MAX)) N/Ay-accuracy(integer(0:MAX)) N/Az-accuracy(integer(0:MAX)) N/A

8.1.6.1 accuracy-units(type2keyword)845

This member attribute specifies the units for the "x-accuracy", "y-accuracy", and "z-846accuracy" member attribute values. Keyword values include: 847

'mm':Accuracynumbersareinmillimeters.848

'um':Accuracynumbersareinmicrometers.849

'nm':Accuracynumbersareinnanometers.850

8.1.6.2 x-accuracy(integer(0:MAX))851

This REQUIRED member attribute specifies the X axis accuracy in the units specified by the 852"accuracy-units" member attribute. The value 0 specifies an accuracy better (smaller) than 8531 unit. 854

8.1.6.3 y-accuracy(integer(0:MAX))855

This REQUIRED member attribute specifies the Y axis accuracy in the units specified by the 856"accuracy-units" member attribute. The value 0 specifies an accuracy better (smaller) than 8571 unit. 858

8.1.6.4 z-accuracy(integer(0:MAX))859

This REQUIRED member attribute specifies the Z axis accuracy in the units specified by the 860"accuracy-units" member attribute. The value 0 specifies an accuracy better (smaller) than 8611 unit. 862

Page 38: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page38of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.1.7 print-base(type2keyword)863

This REQUIRED Job Template attribute specifies whether to print brims, rafts, or skirts under 864the object. Values include: 865

'none':Donotprintbrims,rafts,orskirts.866

‘brim':Printbrimsusingthe‘raft’materialspecifiedfortheJob.867

‘raft':Printraftsusingthe‘raft’materialspecifiedfortheJob.868

‘skirt':Printskirtsusingthe‘raft’materialspecifiedfortheJob.869

'standard':Printbrims,rafts,and/orskirtsusingimplementation-defineddefault870parameters.871

8.1.8 print-objects(1setOfcollection)872

This CONDITIONALLY REQUIRED Job Template attribute specifies the objects to be 873printed within the Documents. Printers that support the 'application/pdf' Document format 874MUST support this attribute. Table 13 lists the REQUIRED member attributes. 875

If not specified in a Job Creation request, the Printer MUST print all objects in each 876Document. There is no "print-objects-default" Printer Description attribute. 877

Table13-REQUIRED"print-objects"MemberAttributes878

MemberAttribute Sub-MemberAttributesdocument-number(integer(1:MAX)) N/Aobject-offset(collection) x-offset(integer(0:MAX))

y-offset(integer(0:MAX))z-offset(integer(0:MAX))

object-size(collection) x-dimension(integer(1:MAX))y-dimension(integer(1:MAX))z-dimension(integer(1:MAX))

object-uuid(uri) N/A879

8.1.8.1 document-number(integer(1:MAX))880

This member attribute specifies the numbered document containing the object. The first 881document is number 1, the second document is 2, etc. 882

8.1.8.2 object-offset(collection)883

This member attribute specifies the offset to apply to the object. The "x-offset 884(integer(0:MAX))", "y-offset (integer(0:MAX))", and "z-offset (integer(0:MAX))" member 885

Page 39: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page39of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

attributes specify the offsets from the left, front, and Build Platform respectively in hundredths 886of millimeters (1/2540th of an inch). 887

8.1.8.3 object-size(collection)888

This member attribute specifies the dimensions of the object. The "x-dimension 889(integer(1:MAX))", "y-dimension (integer(1:MAX))", and "z-dimension (integer(1:MAX))" 890member attributes specify the dimensions in hundredths of millimeters (1/2540th of an inch). 891

8.1.8.4 object-uuid(uri)892

This member attribute specifies the object's unique identifier that MUST be a 45-octet 893"urn:uuid" URI [RFC4122]. 894

8.1.9 print-supports(type2keyword)895

This REQUIRED Job Template attribute specifies whether to print supports under the object. 896Values include: 897

'none':Donotprintsupports.898

'standard':Printsupportsusingimplementation-defineddefaultparameters.899

'material':Printsupportsusingthe‘support’materialspecifiedfortheJob.900 901

Page 40: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page40of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.2 JobStatusAttributes902

Table 14 lists the "-actual" Job Status attributes that provide the receipt of Job Template 903attributes that were used when processing a Job. 904

Table14-IPP3D"-actual"JobStatusAttributes905

JobStatusAttribute Conformancechamber-humidity-actual(1setOfinteger(0:100)) RECOMMENDEDchamber-temperature-actual(1setOfinteger(-273:MAX)) RECOMMENDEDmaterials-col-actual(1setOfcollection) REQUIREDmultiple-object-handling-actual(type2keyword) REQUIRED(note1)platform-temperature-actual(1setOfinteger(-273:MAX)) REQUIRED(note2)print-accuracy-actual(collection) REQUIREDprint-base-actual(1setOftype2keyword) REQUIREDprint-objects-actual(1setOfcollection) REQUIRED(note1)print-supports-actual(1setOftype2keyword) REQUIRED

Note1:REQUIREDforPrintersthatsupportthe'application/pdf'documentformat.906

Note2:REQUIREDforPrintersthatprovideatemperature-controlledBuildPlatform.907

8.2.1 chamber-humidity-actual(1setOfinteger(0:100))908

This Job Status attribute contains the chamber relative humidity value(s) that were used 909throughout the processing of the Job. Printers that support humidity control SHOULD 910support this attribute. 911

8.2.2 chamber-temperature-actual(1setOfinteger(-273:MAX))912

This Job Status attribute contains the chamber temperature(s) in degrees Celsius that were 913used throughout the processing of the Job. Printers that support a temperature-controlled 914build chamber SHOULD support this attribute. 915

8.2.3 materials-col-actual(1setOfcollection)916

This REQUIRED Job Status attribute contains the material(s) that were used when 917processing the Job. 918

8.2.4 multiple-object-handling-actual(type2keyword)919

This CONDITIONALLY REQUIRED Job Status attribute specifies how multiple objects were 920handled in the Job. Printers that support the 'application/pdf' document format MUST support 921this attribute. 922

Page 41: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page41of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.2.5 print-accuracy-actual(collection)923

This REQUIRED Job Status attribute specifies the accuracy of the processed Job. 924

8.2.6 platform-temperature-actual(1setOfinteger(-273:MAX))925

This CONDITIONALLY REQUIRED Job Status attribute specifies the Build Platform 926temperature(s) that were used during the process of the Job. Printers that provide a 927temperature-controlled Build Platform MUST support this attribute. 928

8.2.7 print-accuracy-actual(1setOfcollection)929

This REQUIRED Job Status attribute lists the general positioning and feature accuracies 930that were used during the processing of the Job. 931

8.2.8 print-base-actual(1setOftype2keyword)932

This REQUIRED Job Status attribute specifies whether rafts, brims, or skirts were printed 933during the processing of the Job. 934

8.2.9 print-objects-actual(1setOfcollection)935

This CONDITIONALLY REQUIRED Job Status attribute lists the objects that were 936processed. Printers that support the 'application/pdf' document format MUST support this 937attribute. 938

8.2.10 print-supports-actual(1setOftype2keyword)939

This REQUIRED Job Status attribute specifies whether supports were printed during the 940processing of the Job. 941

8.3 PrinterDescriptionAttributes942

8.3.1 accuracy-units-supported(1setOftype2keyword)943

This REQUIRED Printer Description attribute specifies the supported "accuracy-units" 944member attribute values. 945

8.3.2 chamber-humidity-default(integer(0:100)|no-value)946

This Printer Description attribute specifies the default relative humidity of the build chamber 947as a percentage. Printers that support the "chamber-humidity" Job Template attribute 948(section 8.1.1) MUST support this attribute. 949

Page 42: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page42of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.3 chamber-humidity-supported(boolean)950

This Printer Description attribute specifies whether the "chamber-humidity" Job Template 951attribute (section 8.1.1) is supported. Printers that support the "chamber-humidity" Job 952Template attribute MUST support this attribute. 953

8.3.4 chamber-temperature-default(integer(-273:MAX)|no-value)954

This Printer Description attribute contains the default temperature of the build chamber in 955degrees Celsius, if configured. Printers that support the "chamber-temperature" Job 956Template attribute (section 8.1.2) MUST support this attribute. 957

8.3.5 chamber-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-958273:MAX)))959

This Printer Description attribute lists the supported temperatures (or ranges of 960temperatures) of the build chamber in degrees Celsius. Printers that support the "chamber-961temperature" Job Template attribute (section 8.1.2) MUST support this attribute. 962

8.3.6 material-amount-units-supported(1setOftype2keyword)963

This Printer Description attribute lists the supported "material-amount-units" values for the 964Printer. This attribute MUST be supported if the "material-amount-units" member attribute 965(Section 8.1.3.2) is supported. 966

8.3.7 material-diameter-supported(1setOf(integer|rangeOfInteger))967

This CONDITIONALLY REQUIRED Printer Description attribute lists the supported 968"material-diameter" values for the Printer. This attribute MUST be supported if the "material-969diameter" member attribute (Section 8.1.3.4) is supported. 970

8.3.8 material-nozzle-diameter-supported(1setOf(integer|rangeOfInteger))971

This Printer Description attribute lists the supported "material-nozzle-diameter" values for 972the Printer. This attribute MUST be supported if the "material-nozzle-diameter" member 973attribute (Section 8.1.3.9) is supported. 974

8.3.9 material-purpose-supported(1setOftype2keyword)975

This REQUIRED Printer Description attribute lists the supported “material-purpose” values 976for the Printer. 977

8.3.10 material-rate-supported(1setOf(integer|rangeOfInteger)978

This Printer Description attribute lists the supported "material-rate" values for the Printer. 979This attribute MUST be supported if the "material-rate" member attribute (Section 8.1.3.11) 980is supported. 981

Page 43: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page43of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.11 material-rate-units-supported(1setOftype2keyword)982

This Printer Description attribute lists the supported "material-rate-units" values for the 983Printer. This attribute MUST be supported if the "material-rate-units" member attribute 984(Section 8.1.3.12) is supported. 985

8.3.12 material-shell-thickness-supported(1setOf(integer(1:MAX)|986rangeOfInteger(1:MAX)))987

This REQUIRED Printer Description attribute specifies the supported "material-shell-988thickness" values (or ranges of values) in nanometers. 989

8.3.13 material-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-990273:MAX)))991

This CONDITIONALLY REQUIRED Printer Description attribute specifies the supported 992"material-temperature" values (or ranges of values) in degrees Celsius. This attribute MUST 993be supported if the "material-temperature" member attribute (Section 8.1.3.15) is supported. 994

8.3.14 material-type-supported(1setOftype2keyword)995

This REQUIRED Printer Description attribute lists the supported “material-type” values for 996the Printer. 997

8.3.15 materials-col-database(1setOfcollection)998

This RECOMMENDED Printer Description attribute lists the pre-configured materials for the 999Printer. Each value contains the corresponding "materials-col" member attributes and will 1000typically reflect vendor and site ("third party") materials that are supported by the Printer. 1001

In order to optimize the total size of this attribute, Printers MAY omit member attributes that 1002allow the full range of supported values in a particular collection. For example, a Printer that 1003supports generic PLA filament can report a single collection value: 1004

materials-col-database = 1005 { material-name="Generic PLA Filament" material-key="generic-pla" 1006material-diameter=285 material-temperature=215-235 } 1007

Such "wildcard" values can be combined with more precise collections that identify a specific 1008product, for example: 1009

materials-col-database = 1010 { material-name="Generic PLA Filament" material-key="generic-pla" 1011material-diameter=285 material-temperature=215-235 }, 1012 { material-name="Example Corp Flexible Midnight Blue PLA" material-1013key="com.example.flexible-midnight-blue" material-1014color="com.example.midnight-blue_000027" material-diameter=285 material-1015temperature=210-225 } 1016

Page 44: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page44of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.16 materials-col-default(1setOfcollection)1017

This REQUIRED Printer Description attribute lists the default materials that will be used if 1018the "materials-col" Job Template attribute (Section 8.1.1) is not specified. 1019

8.3.17 materials-col-ready(1setOfcollection)1020

This REQUIRED Printer Description attribute lists the materials that have been loaded into 1021the Printer. Each value contains the corresponding "materials-col" member attributes. 1022

8.3.18 materials-col-supported(1setOftype2keyword)1023

This REQUIRED Printer Description attribute lists the "materials-col" member attributes that 1024are supported by the Printer. Printers MUST include the following values: 'material-fill-1025density', 'material-key', 'material-name', 'material-purpose', 'material-shell-thickness', and 1026'material-type'. 1027

8.3.19 max-materials-col-supported(integer(1:MAX))1028

This REQUIRED Printer Description attribute specifies the maximum number of values that 1029can be provided with the "materials-col" Job Template attribute (section 8.1.1). 1030

8.3.20 multiple-object-handling-default(type2keyword)1031

This CONDITIONALLY REQUIRED Printer Description attribute specifies the default 1032"multiple-object-handling" value. Printers that support the 'application/pdf' Document format 1033MUST support this attribute. 1034

8.3.21 multiple-object-handling-supported(1setOftype2keyword)1035

This CONDITIONALLY REQUIRED Printer Description attribute lists the supported 1036"multiple-object-handling" values. Printers that support the 'application/pdf' Document format 1037MUST support this attribute. 1038

8.3.22 pdf-features-supported(1setOftype2keyword)1039

This CONDITIONALLY REQUIRED Printer Description attribute lists the PDF features that 1040are supported by the Printer. Printers that support the 'application/pdf' Document format 1041MUST support this attribute. 1042

Values include: 1043

'prc':ThePrintersupports3DobjectsintheProductRepresentationCompact(PRC)1044format[ISO14739-1].1045

'u3d':ThePrintersupports3DobjectsintheUniversal3D(U3D)format[ECMA363].1046

Page 45: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page45of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.23 platform-shape(type2keyword)1047

This RECOMMENDED Printer Description attribute describes the overall shape of the build 1048platform. Values include: 1049

'ellipse':Thebuildplatformiselliptical,formingacylindricalbuildvolume.1050

'rectangle':Thebuildplatformisrectangular,formingacubicbuildvolume.1051

8.3.24 platform-temperature-default(integer(-273:MAX))1052

This CONDITIONALLY REQUIRED Printer Description attribute specifies the default 1053"platform-temperature" value. Printers that control the temperature of the Build Platform 1054MUST support this attribute. 1055

8.3.25 platform-temperature-supported(1setOf(integer(-273:MAX)|rangeOfInteger(-1056273:MAX)))1057

This CONDITIONALLY REQUIRED Printer Description attribute lists the supported 1058"platform-temperature" values and/or ranges. Printers that control the temperature of the 1059Build Platform MUST support this attribute. 1060

8.3.26 print-accuracy-default(collection)1061

This REQUIRED Printer Description attribute specifies the default "print-accuracy" value. 1062

8.3.27 print-accuracy-supported(collection)1063

This REQUIRED Printer Description attribute specifies the best "print-accuracy" value that 1064is supported by the Printer. 1065

8.3.28 print-base-default(type2keyword)1066

This REQUIRED Printer Description attribute specifies the default "print-base" value. 1067

8.3.29 print-base-supported(1setOftype2keyword)1068

This REQUIRED Printer Description attribute lists the supported "print-base" values. 1069

8.3.30 print-objects-supported(1setOftype2keyword)1070

This CONDITIONALLY REQUIRED Printer Description attribute specifies which "print-1071objects" member attributes are supported. Printers that support the 'application/pdf' 1072Document format MUST support this attribute. 1073

8.3.31 print-supports-default(type2keyword)1074

This REQUIRED Printer Description attribute specifies the default "print-supports" value. 1075

Page 46: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page46of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.3.32 print-supports-supported(1setOftype2keyword)1076

This REQUIRED Printer Description attribute lists the supported "print-supports" values. 1077

8.3.33 printer-volume-supported(collection)1078

This REQUIRED Printer Description attribute specifies the maximum build volume supported 1079by the Printer. Table 15 lists the REQUIRED member attributes. 1080

Table15-REQUIRED"printer-volume-supported"MemberAttributes1081

MemberAttributex-dimension(integer(1:MAX))y-dimension(integer(1:MAX))z-dimension(integer(1:MAX))

8.3.33.1 x-dimension(integer(1:MAX))1082

This member attributes specifies the width of the build volume in hundredths of millimeters 1083(1/2540th of an inch). 1084

8.3.33.2 y-dimension(integer(1:MAX))1085

This member attributes specifies the depth of the build volume in hundredths of millimeters 1086(1/2540th of an inch). 1087

8.3.33.3 z-dimension(integer(1:MAX))1088

This member attributes specifies the height of the build volume in hundredths of millimeters 1089(1/2540th of an inch). 1090

8.4 PrinterStatusAttributes1091

8.4.1 chamber-humidity-current(integer(0:100)|unknown)1092

This Printer Status attribute reports the current relative humidity of the build chamber as a 1093percentage. Printers that support the "chamber-humidity" Job Template attribute (section 10948.1.1) MUST support this attribute. 1095

8.4.2 chamber-temperature-current(integer(-273:MAX)|unknown)1096

This Printer Status attribute reports the current temperature of the build chamber in degrees 1097Celsius, if known. Printers that support the "chamber-temperature" Job Template attribute 1098(section 8.1.2) MUST support this attribute. 1099

Page 47: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page47of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

8.4.3 printer-camera-image-uri(1setOfuri)1100

This Printer Status attribute lists the URIs for one or more resident camera snapshots. Each 1101URI corresponds to a separate resident camera. The images referenced by each URI can 1102change at any time so it is up to the Client to periodically poll for changes and for the Printer 1103to atomically update the images so that Clients can safely do so. The referenced images 1104MUST be PNG [RFC2083] or JPEG [JFIF] format. 1105

9. NewValuesforExistingAttributes1106

9.1 ipp-features-supported(1setOftype2keyword)1107

This specification registers the new REQUIRED value 'ipp-3d' for the "ipp-features-1108supported" Printer Description attribute. 1109

9.2 printer-state-reasons(1setOftype2keyword)1110

This specification registers the following new values for the "printer-state-reasons" Printer 1111Status attribute: 1112

'camera-failure':Acameraisnolongerworking.1113

'chamber-cooling':Achamberisbeingcooled.1114

'chamber-failure':Achamberhasfailedandrequiresmaintenanceorreplacement.1115

'chamber-heating':Achamberisbeingheated.1116

'chamber-temperature-high':Thetemperatureofachamberishigh.1117

'chamber-temperature-low':Thetemperatureofachamberislow.1118

'extruder-cooling':Anextruderisbeingcooled.1119

'extruder-failure':Anextruderhasfailedandrequiresmaintenanceorreplacement.1120

'extruder-heating':Anextruderisbeingheated.1121

'extruder-jam':Anextruderisjammedorclogged.1122

'extruder-temperature-high':Thetemperatureofanextruderistoohigh.1123

'extruder-temperature-low':Thetemperatureofanextruderistoolow.1124

'fan-failure':Afanhasfailed.1125

Page 48: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page48of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

'lamp-at-eol':Alamphasreacheditsend-of-lifeandwillneedtobereplacedsoon.1126

'lamp-failure':Alamphasfailed.1127

'lamp-near-eol':Alampisnearitsend-of-lifeandmayneedtobereplacedsoon.1128

'laser-at-eol':Alaserhasreacheditsend-of-lifeandwillneedtobereplacedsoon.1129

'laser-failure':Alaserhasfailed.1130

'laser-near-eol':Alaserisnearitsend-of-lifeandmayneedtobereplacedsoon.1131

'material-empty':Oneormorebuildmaterialshavebeenexhausted.1132

'material-low':Oneormorebuildmaterialsmayneedreplenishmentsoon.1133

'material-needed':OneormorebuildmaterialsneedtobeloadedforaprocessingJob.1134

'motor-failure':Amotorhasfailed.1135

'platform-cooling':ABuildPlatformisbeingcooled.1136

'platform-failure':ABuildPlatformhasfailedandrequiresmaintenanceor1137replacement.1138

'platform-heating':ABuildPlatformisbeingheated.1139

'platform-temperature-high':ThetemperatureofaBuildPlatformistoohigh.1140

'platform-temperature-low':ThetemperatureofaBuildPlatformistoolow.1141 1142

Page 49: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page49of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

10. ConformanceRequirements1143

10.1 PrinterConformanceRequirements1144

In order for a Printer to claim conformance to this specification, a Printer MUST support: 1145

1. Therequireddiscoveryprotocolsinsection5;11462. Therequiredtransportsandresourcepathsinsection6.1;11473. TherequiredHTTPfeaturesinsection6.2;11484. TherequiredIPPoperationsinsection6.3;11495. TherequiredIPPattributesinsections6.4through6.9;11506. Therequireddocumentformatsinsection7;11517. Theadditionalvaluesdefinedinsection9;11528. Theinternationalizationconsiderationsinsection11;and11539. Thesecurityconsiderationsinsection12.1154

10.2 ClientConformanceRequirements1155

In order for a Client to claim conformance to this specification, a Client MUST support: 1156

1. Therequireddiscoveryprotocolsinsection5;11572. Therequiredtransportsandresourcepathsinsection6.1;11583. TherequiredHTTPfeaturesinsection6.2;11594. TherequiredIPPoperationsinsection6.3;11605. TherequiredIPPattributesinsections6.4through6.9;11616. Therequireddocumentformatsinsection7;11627. Theadditionalvaluesdefinedinsection9;11638. Theinternationalizationconsiderationsinsection11;and11649. Thesecurityconsiderationsinsection12.1165

1166

Page 50: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page50of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

11. InternationalizationConsiderations1167

For interoperability and basic support for multiple languages, conforming implementations 1168MUST support: 1169

1. TheUniversalCharacterSet(UCS)TransformationFormat--8bit(UTF-8)[STD63]1170encodingofUnicode[UNICODE][ISO10646];and1171

2. TheUnicodeFormatforNetworkInterchange[RFC5198]whichrequires1172transmissionofwell-formedUTF-8stringsandrecommendstransmissionof1173normalizedUTF-8stringsinNormalizationFormC(NFC)[UAX15].1174

Unicode NFC is defined as the result of performing Canonical Decomposition (into base 1175characters and combining marks) followed by Canonical Composition (into canonical 1176composed characters wherever Unicode has assigned them). 1177

WARNING – Performing normalization on UTF-8 strings received from IPP Clients and 1178subsequently storing the results (e.g., in IPP Job objects) could cause false negatives in IPP 1179Client searches and failed access (e.g., to IPP Printers with percent-encoded UTF-8 URIs 1180now 'hidden'). 1181

Implementations of this specification SHOULD conform to the following standards on 1182processing of human-readable Unicode text strings, see: 1183

UnicodeBidirectionalAlgorithm[UAX9]–left-to-right,right-to-left,andvertical1184

UnicodeLineBreakingAlgorithm[UAX14]–characterclassesandwrapping1185

UnicodeNormalizationForms[UAX15]–especiallyNFCfor[RFC5198]1186

UnicodeTextSegmentation[UAX29]–graphemeclusters,words,sentences1187

UnicodeIdentifierandPatternSyntax[UAX31]–identifieruseandnormalization1188

UnicodeCharacterEncodingModel[UTR17]–multi-layercharactermodel1189

UnicodeCharacterPropertyModel[UTR23]–characterproperties1190

UnicodeConformanceModel[UTR33]–Unicodeconformancebasis+1191

UnicodeCollationAlgorithm[UTS10]–sorting1192

UnicodeLocaleDataMarkupLanguage[UTS35]–localedatabases1193

12. SecurityConsiderations1194

In addition to the security considerations described in the IPP/1.1: Model and Semantics 1195[STD92], the following sub-sections describe issues that are unique to 3D printing. 1196

Page 51: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page51of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

Implementations of this specification SHOULD conform to the following standards on 1197processing of human-readable Unicode text strings, see: 1198

UnicodeSecurityMechanisms[UTS39]–detectingandavoidingsecurityattacks1199

UnicodeSecurityFAQ[UNISECFAQ]–commonUnicodesecurityissues1200

12.1 Confidentiality1201

Clients and Printers MUST provide confidentiality of data in transit using either an interface 1202providing physical security such as USB or using TLS encryption [RFC5246] over 1203unsecured/network connections, 1204

12.2 AccessControl1205

Because of the potential for abuse and misuse, Printers SHOULD provide access control 1206mechanisms including lists of allowed Clients, authentication, and authorization to site 1207defined policies. 1208

12.3 PhysicalSafety1209

Printers MUST NOT allow Clients to disable physical safety features of the hardware, such 1210as protective gates, covers, or interlocks. 1211

12.4 MaterialSafety1212

Printers MUST restrict usage and combination of materials to those that can be safely 1213printed. Access controls (section 12.2) MAY be used to allow authorized End Users to 1214experiment with untested materials or combinations, but only when such materials or 1215combinations can reasonably be expected to not pose a safety risk. 1216

12.5 TemperatureControl1217

Printers MUST validate values provided by Clients and limit material, extruder, Build 1218Platform, and print chamber temperatures within designed limits to prevent unsafe operating 1219conditions, damage to the hardware, hazardous emissions, explosions, and/or fires. 1220 1221

Page 52: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page52of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

13. IANAandPWGConsiderations1222

13.1 AttributeRegistrations1223

The attributes defined in this specification will be published by IANA according to the 1224procedures in IPP/1.1 Model and Semantics [STD92] section 7.2 in the following file: 1225

http://www.iana.org/assignments/ipp-registrations1226

The registry entries will contain the following information: 1227

Document Status attributes: Reference 1228-------------------------- --------- 1229chamber-humidity-actual (1setOf integer(0:100)) [PWG5100.21] 1230chamber-temperature-actual (1setOf integer(-273:MAX)) [PWG5100.21] 1231materials-col-actual (1setOf collection) [PWG5100.21] 1232 < member attributes are the same as materials-col > [PWG5100.21] 1233multiple-object-handling-actual (type2 keyword) [PWG5100.21] 1234platform-temperature-actual (1setOf integer(-273:MAX)) [PWG5100.21] 1235print-accuracy-actual (collection) [PWG5100.21] 1236 < member attributes are the same as print-accuracy > [PWG5100.21] 1237print-base-actual (1setOf type2 keyword) [PWG5100.21] 1238print-objects-actual (1setOf collection) [PWG5100.21] 1239 < member attributes are the same as print-objects > [PWG5100.21] 1240print-supports-actual (1setOf type2 keyword) [PWG5100.21] 1241 1242Document Template attributes: Reference 1243-------------------------- --------- 1244chamber-humidity (integer(0:100)) [PWG5100.21] 1245chamber-temperature (integer(-273:MAX)) [PWG5100.21] 1246materials-col (1setOf collection) [PWG5100.21] 1247 material-amount (integer(0:MAX)) [PWG5100.21] 1248 material-amount-units (type2 keyword) [PWG5100.21] 1249 material-color (type2 keyword) [PWG5100.21] 1250 material-diameter (integer(0:MAX)) [PWG5100.21] 1251 material-diameter-tolerance (integer(0:MAX)) [PWG5100.21] 1252 material-fill-density (integer(0:100)) [PWG5100.21] 1253 material-key (keyword) [PWG5100.21] 1254 material-name (name(MAX)) [PWG5100.21] 1255 material-nozzle-diameter (integer(0:MAX)) [PWG5100.21] 1256 material-purpose (1setOf type2 keyword) [PWG5100.21] 1257 material-rate (integer(1:MAX)) [PWG5100.21] 1258 material-rate-units (type2 keyword) [PWG5100.21] 1259 material-retraction (boolean) [PWG5100.21] 1260 material-shell-thickness (integer(0:MAX)) [PWG5100.21] 1261 material-temperature (integer(-273:MAX) | rangeOfInteger(-273:MAX))1262 [PWG5100.21] 1263 material-type (type2 keyword | name(MAX)) [PWG5100.21] 1264multiple-object-handling (type2 keyword) [PWG5100.21] 1265platform-temperature (integer(-273:MAX) [PWG5100.21] 1266print-accuracy (collection) [PWG5100.21] 1267 accuracy-units (type2 keyword) [PWG5100.21] 1268 x-accuracy (integer(0:MAX)) [PWG5100.21] 1269

Page 53: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page53of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

y-accuracy (integer(0:MAX)) [PWG5100.21] 1270 z-accuracy (integer(0:MAX)) [PWG5100.21] 1271print-base (type2 keyword) [PWG5100.21] 1272print-objects (1setOf collection) [PWG5100.21] 1273 document-number (integer(1:MAX)) [PWG5100.21] 1274 object-offset (collection) [PWG5100.21] 1275 x-offset (integer(0:MAX)) [PWG5100.21] 1276 y-offset (integer(0:MAX)) [PWG5100.21] 1277 z-offset (integer(0:MAX)) [PWG5100.21] 1278 object-size (collection) [PWG5100.21] 1279 x-dimension (integer(1:MAX)) [PWG5100.21] 1280 y-dimension (integer(1:MAX)) [PWG5100.21] 1281 z-dimension (integer(1:MAX)) [PWG5100.21] 1282 object-uuid (uri) [PWG5100.21] 1283print-supports (type2 keyword) [PWG5100.21] 1284 1285Job Status attributes: Reference 1286-------------------------- --------- 1287chamber-humidity-actual (1setOf integer(0:100)) [PWG5100.21] 1288chamber-temperature-actual (1setOf integer(-273:MAX)) [PWG5100.21] 1289materials-col-actual (1setOf collection) [PWG5100.21] 1290 < member attributes are the same as materials-col > [PWG5100.21] 1291multiple-object-handling-actual (type2 keyword) [PWG5100.21] 1292platform-temperature-actual (1setOf integer(-273:MAX)) [PWG5100.21] 1293print-accuracy-actual (collection) [PWG5100.21] 1294 < member attributes are the same as print-accuracy > [PWG5100.21] 1295print-base-actual (1setOf type2 keyword) [PWG5100.21] 1296print-objects-actual (1setOf collection) [PWG5100.21] 1297 < member attributes are the same as print-objects > [PWG5100.21] 1298print-supports-actual (1setOf type2 keyword) [PWG5100.21] 1299 1300Job Template attributes: Reference 1301-------------------------- --------- 1302chamber-humidity (integer(0:100)) [PWG5100.21] 1303chamber-temperature (integer(-273:MAX)) [PWG5100.21] 1304materials-col (1setOf collection) [PWG5100.21] 1305 material-amount (integer(0:MAX)) [PWG5100.21] 1306 material-amount-units (type2 keyword) [PWG5100.21] 1307 material-color (type2 keyword) [PWG5100.21] 1308 material-diameter (integer(0:MAX)) [PWG5100.21] 1309 material-diameter-tolerance (integer(0:MAX)) [PWG5100.21] 1310 material-fill-density (integer(0:100)) [PWG5100.21] 1311 material-key (keyword) [PWG5100.21] 1312 material-name (name(MAX)) [PWG5100.21] 1313 material-nozzle-diameter (integer(0:MAX)) [PWG5100.21] 1314 material-purpose (1setOf type2 keyword) [PWG5100.21] 1315 material-rate (integer(1:MAX)) [PWG5100.21] 1316 material-rate-units (type2 keyword) [PWG5100.21] 1317 material-retraction (boolean) [PWG5100.21] 1318 material-shell-thickness (integer(0:MAX)) [PWG5100.21] 1319 material-temperature (integer(-273:MAX) | rangeOfInteger(-273:MAX))1320 [PWG5100.21] 1321 material-type (type2 keyword | name(MAX)) [PWG5100.21] 1322multiple-object-handling (type2 keyword) [PWG5100.21] 1323platform-temperature (integer(-273:MAX) [PWG5100.21] 1324print-accuracy (collection) [PWG5100.21] 1325

Page 54: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page54of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

accuracy-units (type2 keyword) [PWG5100.21] 1326 x-accuracy (integer(0:MAX)) [PWG5100.21] 1327 y-accuracy (integer(0:MAX)) [PWG5100.21] 1328 z-accuracy (integer(0:MAX)) [PWG5100.21] 1329print-base (type2 keyword) [PWG5100.21] 1330print-objects (1setOf collection) [PWG5100.21] 1331 document-number (integer(1:MAX)) [PWG5100.21] 1332 object-offset (collection) [PWG5100.21] 1333 x-offset (integer(0:MAX)) [PWG5100.21] 1334 y-offset (integer(0:MAX)) [PWG5100.21] 1335 z-offset (integer(0:MAX)) [PWG5100.21] 1336 object-size (collection) [PWG5100.21] 1337 x-dimension (integer(1:MAX)) [PWG5100.21] 1338 y-dimension (integer(1:MAX)) [PWG5100.21] 1339 z-dimension (integer(1:MAX)) [PWG5100.21] 1340 object-uuid (uri) [PWG5100.21] 1341print-supports (type2 keyword) [PWG5100.21] 1342 1343Printer Description attributes: Reference 1344------------------------------ --------- 1345accuracy-units-supported (1setOf type2 keyword) [PWG5100.21] 1346chamber-humidity-default (integer(0:100) | no-value) [PWG5100.21] 1347chamber-humidity-supported (boolean) [PWG5100.21] 1348chamber-temperature-default (integer(-273:MAX) | no-value) 1349 [PWG5100.21] 1350chamber-temperature-supported (1setOf (integer(-273:MAX) | 1351rangeOfInteger(-273:MAX)) [PWG5100.21] 1352material-amount-units-supported (1setOf type2 keyword) [PWG5100.21] 1353material-diameter-supported (1setOf (integer(0:MAX) | 1354rangeOfInteger(0:MAX))) [PWG5100.21] 1355material-nozzle-diameter-supported (1setOf (integer(0:MAX) | 1356rangeOfInteger(0:MAX))) [PWG5100.21] 1357material-purpose-supported (1setOf type2 keyword) [PWG5100.21] 1358material-rate-supported (1setOf (integer(1:MAX) | rangeOfInteger(1:MAX)))1359 [PWG5100.21] 1360material-rate-units-supported (1setOf type2 keyword) [PWG5100.21] 1361material-shell-thickness-supported (1setOf (integer(0:MAX) | 1362rangeOfInteger(0:MAX))) [PWG5100.21] 1363material-temperature-supported (1setOf (integer(-273:MAX) | 1364rangeOfInteger(-273:MAX))) [PWG5100.21] 1365material-type-supported (1setOf type2 keyword) [PWG5100.21] 1366materials-col-database (1setOf collection) [PWG5100.21] 1367 < member attributes are the same as materials-col > [PWG5100.21] 1368materials-col-default (1setOf collection) [PWG5100.21] 1369 < member attributes are the same as materials-col > [PWG5100.21] 1370materials-col-ready (1setOf collection) [PWG5100.21] 1371 < member attributes are the same as materials-col > [PWG5100.21] 1372materials-col-supported (1setOf type2 keyword) [PWG5100.21] 1373max-materials-col-supported (integer(1:MAX)) [PWG5100.21] 1374multiple-object-handling-default (type2 keyword) [PWG5100.21] 1375multiple-object-handling-supported (1setOf type2 keyword)[PWG5100.21] 1376pdf-features-supported (1setOf type2 keyword) [PWG5100.21] 1377platform-shape (type2 keyword) [PWG5100.21] 1378platform-temperature-default (integer(-273:MAX)) [PWG5100.21] 1379platform-temperature-supported (1setOf (integer(-273:MAX) | 1380rangeOfInteger(-273:MAX))) [PWG5100.21] 1381

Page 55: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page55of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

print-accuracy-supported (collection) [PWG5100.21] 1382 < member attributes are the same as print-accuracy > [PWG5100.21] 1383print-base-default (type2 keyword) [PWG5100.21] 1384print-base-supported (1setOf type2 keyword) [PWG5100.21] 1385print-objects-supported (1setOf type2 keyword) [PWG5100.21] 1386print-supports-default (type2 keyword) [PWG5100.21] 1387print-supports-supported (1setOf type2 keyword) [PWG5100.21] 1388printer-volume-supported (collection) [PWG5100.21] 1389 x-dimension (integer(1:MAX)) [PWG5100.21] 1390 y-dimension (integer(1:MAX)) [PWG5100.21] 1391 z-dimension (integer(1:MAX)) [PWG5100.21] 1392 1393Printer Status attributes: Reference 1394------------------------------ --------- 1395chamber-humidity-current (integer(0:100) | unknown) [PWG5100.21] 1396chamber-temperature-current (integer(-273:MAX) | unknown)[PWG5100.21] 1397printer-camera-image-uri (1setOf uri) [PWG5100.21] 1398

13.2 AttributeValueRegistrations1399

The attributes defined in this specification will be published by IANA according to the 1400procedures in IPP/1.1 Model and Semantics [STD92] section 7.1 in the following file: 1401

http://www.iana.org/assignments/ipp-registrations1402

The registry entries will contain the following information: 1403

Attributes (attribute syntax) 1404 Keyword Attribute Value Reference 1405 ----------------------- --------- 1406accuracy-units (type2 keyword) [PWG5100.21] 1407 mm [PWG5100.21] 1408 nm [PWG5100.21] 1409 um [PWG5100.21] 1410accuracy-units-supported (1setOf type2 keyword) [PWG5100.21] 1411 < any accuracy-units values > [PWG5100.21] 1412ipp-features-supported (1setOf type2 keyword) [PWG5100.13] 1413 ipp-3d [PWG5100.21] 1414material-amount-units (type2 keyword) [PWG5100.21] 1415 g [PWG5100.21] 1416 kg [PWG5100.21] 1417 l [PWG5100.21] 1418 m [PWG5100.21] 1419 ml [PWG5100.21] 1420 mm [PWG5100.21] 1421material-color (type2 keyword) [PWG5100.21] 1422 < any "media" color name > [PWG5100.21] 1423material-purpose (1setOf type2 keyword) [PWG5100.21] 1424 all [PWG5100.21] 1425 base [PWG5100.21] 1426 in-fill [PWG5100.21] 1427 shell [PWG5100.21] 1428 support [PWG5100.21] 1429material-rate-units (type2 keyword) [PWG5100.21] 1430

Page 56: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page56of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

mg_second [PWG5100.21] 1431 ml_second [PWG5100.21] 1432 mm_second [PWG5100.21] 1433material-type (type2 keyword) [PWG5100.21] 1434 abs [PWG5100.21] 1435 abs-carbon-fiber [PWG5100.21] 1436 abs-carbon-nanotube [PWG5100.21] 1437 chocolate [PWG5100.21] 1438 gold [PWG5100.21] 1439 nylon [PWG5100.21] 1440 pet [PWG5100.21] 1441 photopolymer [PWG5100.21] 1442 pla [PWG5100.21] 1443 pla-conductive [PWG5100.21] 1444 pla-dissolvable [PWG5100.21] 1445 pla-flexible [PWG5100.21] 1446 pla-magnetic [PWG5100.21] 1447 pla-steel [PWG5100.21] 1448 pla-stone [PWG5100.21] 1449 pla-wood [PWG5100.21] 1450 polycarbonate [PWG5100.21] 1451 silver [PWG5100.21] 1452 titanium [PWG5100.21] 1453 wax [PWG5100.21] 1454materials-col-supported (1setOf type2 keyword) [PWG5100.21] 1455 < any materials-col member attribute name > [PWG5100.21] 1456multiple-object-handling (type2 keyword) [PWG5100.21] 1457 auto [PWG5100.21] 1458 best-fit [PWG5100.21] 1459 best-quality [PWG5100.21] 1460 best-speed [PWG5100.21] 1461 one-at-a-time [PWG5100.21] 1462multiple-object-handling-actual (1setOf type2 keyword) [PWG5100.21] 1463 < any multiple-object-handling Job Template attribute value >1464 [PWG5100.21] 1465multiple-object-handling-default (type2 keyword) [PWG5100.21] 1466 < any multiple-object-handling Job Template attribute value >1467 [PWG5100.21] 1468multiple-object-handling-supported (1setOf type2 keyword) [PWG5100.21] 1469 < any multiple-object-handling Job Template attribute value >1470 [PWG5100.21] 1471pdf-features-supported (1setOf type2 keyword) [PWG5100.21] 1472 prc [PWG5100.21] 1473 u3d [PWG5100.21] 1474platform-shape (type2 keyword) [PWG5100.21] 1475 ellipse [PWG5100.21] 1476 rectangle [PWG5100.21] 1477print-base (type2 keyword) [PWG5100.21] 1478 brim [PWG5100.21] 1479 none [PWG5100.21] 1480 raft [PWG5100.21] 1481 skirt [PWG5100.21] 1482 standard [PWG5100.21] 1483print-base-actual (1setOf type2 keyword) [PWG5100.21] 1484 < any print-base Job Template attribute value > [PWG5100.21] 1485print-base-default (type2 keyword) [PWG5100.21] 1486

Page 57: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page57of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

< any print-base Job Template attribute value > [PWG5100.21] 1487print-base-supported (1setOf type2 keyword) [PWG5100.21] 1488 < any print-base Job Template attribute value > [PWG5100.21] 1489print-objects-supported (1setOf type2 keyword) [PWG5100.21] 1490 < any print-objects member attribute name > [PWG5100.21] 1491print-supports (type2 keyword) [PWG5100.21] 1492 material [PWG5100.21] 1493 none [PWG5100.21] 1494 standard [PWG5100.21] 1495print-supports-actual (1setOf type2 keyword) [PWG5100.21] 1496 < any print-supports Job Template attribute value > [PWG5100.21] 1497print-supports-default (type2 keyword) [PWG5100.21] 1498 < any print-supports Job Template attribute value > [PWG5100.21] 1499print-supports-supported (1setOf type2 keyword) [PWG5100.21] 1500 < any print-supports Job Template attribute value > [PWG5100.21] 1501printer-state-reasons (1setOf type2 keyword) [RFC8011] 1502 camera-failure [PWG5100.21] 1503 chamber-cooling [PWG5100.21] 1504 chamber-failure [PWG5100.21] 1505 chamber-heating [PWG5100.21] 1506 chamber-temperature-high [PWG5100.21] 1507 chamber-temperature-low [PWG5100.21] 1508 extruder-cooling [PWG5100.21] 1509 extruder-failure [PWG5100.21] 1510 extruder-heating [PWG5100.21] 1511 extruder-jam [PWG5100.21] 1512 extruder-temperature-high [PWG5100.21] 1513 extruder-temperature-low [PWG5100.21] 1514 fan-failure [PWG5100.21] 1515 lamp-at-eol [PWG5100.21] 1516 lamp-failure [PWG5100.21] 1517 lamp-near-eol [PWG5100.21] 1518 laser-at-eol [PWG5100.21] 1519 laser-failure [PWG5100.21] 1520 laser-near-eol [PWG5100.21] 1521 material-empty [PWG5100.21] 1522 material-low [PWG5100.21] 1523 material-needed [PWG5100.21] 1524 motor-failure [PWG5100.21] 1525 platform-cooling [PWG5100.21] 1526 platform-failure [PWG5100.21] 1527 platform-heating [PWG5100.21] 1528 platform-temperature-high [PWG5100.21] 1529 platform-temperature-low [PWG5100.21] 1530

13.3 ServiceTypeRegistration1531

The DNS-SD service type defined in this specification will be published by IANA according 1532to the procedures in Internet Assigned Numbers Authority (IANA) Procedures for the 1533Management of the Service Name and Transport Protocol Port Number Registry [BCP165]. 1534

The registration template is as follows: 1535

Service Name: ipps-3d 1536

Page 58: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page58of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

1537Transport Protocol(s): tcp 1538 1539Assignee/Contact: Michael Sweet, [email protected] 1540 1541Description: 3D Print services (3D printers) using the Internet Printing 1542Protocol over HTTPS. 1543 1544Reference: http://ftp.pwg.org/pub/pwg/candidates/cs-ipp3d10-20170210-15455100.21.pdf 1546 1547Port Number: 1548 1549Service Code: 1550 1551Known Unauthorized Uses: 1552 1553Assignment Notes: Change controller is The Printer Working Group, c/o The 1554IEEE Industry Standards and Technology Organization, 445 Hoes Lane, 1555Piscataway, NJ 08854, USA 1556

14. References1557

14.1 NormativeReferences1558

[3MF] "3D Manufacturing Format Core Specification & Reference Guide 1559v1.2.1", August 2017, https://3mf.io/specification/ 1560

[3MF-SLICE] "3MF Slice Extension Specification and Reference Guide", August 15612016, https://3mf.io/specification/ 1562

[BCP14] S. Bradner, "Key words for use in RFCs to Indicate Requirement 1563Levels", RFC 2119/BCP 14, March 1997, 1564https://tools.ietf.org/html/rfc2119 1565

[BONJOUR] Apple Inc., "Bonjour Printing Specification Version 1.2.1", February 15662015, https://developer.apple.com/bonjour/printing-specification 1567

[ECMA363] "Universal 3D File Format", ECMA-363 1568

[IPP-USB] "IPP USB Specification", 1569https://www.usb.org/developers/devclass_docs 1570

[ISO10646] "Information technology -- Universal Coded Character Set (UCS)", 1571ISO/IEC 10646:2011 1572

[ISO14739] "Document management -- 3D use of Product Representation 1573Compact (PRC) format -- Part 1: PRC 10001", ISO 14739-1:2014 1574

Page 59: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page59of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

[ISO32000] "Document management — Portable document format — Part 1: PDF 15751.7", ISO 32000-1:2008 1576

[JFIF] E. Hamilton, "JPEG File Interchange Format Version 1.02", 1577September 1992, https://www.w3.org/Graphics/JPEG/jfif3.pdf 1578

[PWG5100.5] D. Carney, T. Hastings, P. Zehler, "IPP: Document Object", PWG 15795100.5-2003, October 2003, 1580https://ftp.pwg.org/pub/pwg/candidates/cs-ippdocobject10-20031031-15815100.5.pdf 1582

[PWG5100.11] T. Hastings, D. Fullman, "IPP Job and Printer Extensions - Set 2 1583(JPS2)", PWG 5100.11-2010, October 2010, 1584https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext10-158520101030-5100.11.pdf 1586

[PWG5100.12] M. Sweet, I. McDonald, "IPP Version 2.0, 2.1, and 2.2", PWG 15875100.12-2015, October 2015, 1588https://ftp.pwg.org/pub/pwg/standards/std-ipp20-20151030-15895100.12.pdf 1590

[PWG5100.13] M. Sweet, I. McDonald, "IPP Job and Printer Extensions - Set 3 1591(JPS3)", PWG 5100.13-2012, July 2012, 1592https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext3v10-159320120727-5100.13.pdf 1594

[PWG5100.14] M. Sweet, I. McDonald, A. Mitchell, J. Hutchings, "IPP Everywhere", 1595PWG 5100.14-2013, January 2013, 1596https://ftp.pwg.org/pub/pwg/candidates/cs-ippeve10-20130128-15975100.14.pdf 1598

[PWG5100.18] M. Sweet, I. McDonald, “IPP Shared Infrastructure Extensions 1599(INFRA)”, PWG 5100.18-2015, June 2015, 1600https://ftp.pwg.org/pub/pwg/candidates/cs-ippinfra10-20150619-16015100.18.pdf 1602

[PWGGCODE] M. Sweet, "PWG Safe G-Code Subset for 3D Printing", January 2019, 1603https://ftp.pwg.org/pub/pwg/ipp/wd/wd-pwgsafegcode10-20190114.pdf 1604

[RFC2083] T. Boutell, "PNG (Portable Network Graphics) Specification Version 16051.0", RFC 2083, March 1997, https://tools.ietf.org/html/rfc2083 1606

[RFC2136] P. Vixie, S. Thomson, Y. Rekhter, J. Bound, "Dynamic Updates in the 1607Domain Name System (DNS UPDATE)", RFC 2136, April 1997, 1608https://tools.ietf.org/html/rfc2136 1609

Page 60: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page60of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

[RFC3510] R. Herriot, I. McDonald, "Internet Printing Protocol/1.1: IPP URL 1610Scheme", RFC 3510, April 2003, https://tools.ietf.org/html/rfc3510 1611

[RFC3805] R. Bergman, H. Lewis, I. McDonald, "Printer MIB v2", RFC 3805, June 16122004, https://tools.ietf.org/html/rfc3805 1613

[RFC3806] R. Bergman, H. Lewis, I. McDonald, "Printer Finishing MIB", RFC 16143806, June 2004, https://tools.ietf.org/html/rfc3806 1615

[RFC4122] P. Leach, M. Mealling, R. Salz, "A Universally Unique IDentifier 1616(UUID) URN Namespace", RFC 4122, July 2005, 1617https://tools.ietf.org/html/rfc4122 1618

[RFC4510] Zeilenga, K., Ed., "Lightweight Directory Access Protocol (LDAP): 1619Technical Specification Road Map", RFC 4510, June 2006, 1620https://tools.ietf.org/html/rfc4510 1621

[RFC5198] J. Klensin, M. Padlipsky, "Unicode Format for Network Interchange", 1622RFC 5198, March 2008, https://tools.ietf.org/html/rfc5198 1623

[RFC5246] T.Dierks, E. Rescorla, "Transport Layer Security 1.2", RFC 5246, 1624August 2008, https://tools.ietf.org/html/rfc5246 1625

[RFC6762] S. Cheshire, M. Krochmal, "Multicast DNS", RFC 6762, February 16262013, https://tools.ietf.org/html/rfc6762 1627

[RFC6763] S. Cheshire, M. Krochmal, "DNS-Based Service Discovery", RFC 16286763, February 2013, https://tools.ietf.org/html/rfc6763 1629

[RFC7230] R. Fielding, J. Reschke, "Hypertext Transfer Protocol (HTTP/1.1): 1630Message Syntax and Routing", RFC 7230, June 2014, 1631https://tools.ietf.org/html/rfc7230 1632

[RFC7232] R. Fielding, J. Reschke, "Hypertext Transfer Protocol (HTTP/1.1): 1633Conditional Requests", RFC 7232, June 2014, 1634https://tools.ietf.org/html/rfc7232 1635

[RFC7234] R. Fielding, M. Nottingham, J. Reschke, "Hypertext Transfer Protocol 1636(HTTP/1.1): Caching", RFC 7234, June 2014, 1637https://tools.ietf.org/html/rfc7234 1638

[RFC7472] I. McDonald, M. Sweet, "IPP over HTTPS Transport Binding and 'ipps' 1639URI Scheme", RFC 7472, March 2015, 1640https://tools.ietf.org/html/rfc7472 1641

[RFC7612] P. Flemming, I. McDonald, "Lightweight Directory Access Protocol 1642(LDAP): Schema for Printer Services", RFC 7612, June 2015, 1643https://tools.ietf.org/html/rfc7612 1644

Page 61: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page61of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

[STD63] F. Yergeau, "UTF-8, a transformation format of ISO 10646", RFC 16453629/STD 63, November 2003, https://tools.ietf.org/html/rfc3629 1646

[STD92] M. Sweet, I. McDonald, "Internet Printing Protocol/1.1", STD 92 / RFC 16478011, January 2017, https://tools.ietf.org/html/std92 1648

[UAX9] Unicode Consortium, “Unicode Bidirectional Algorithm”, UAX#9, 1649https://www.unicode.org/reports/tr9 1650

[UAX14] Unicode Consortium, “Unicode Line Breaking Algorithm”, UAX#14, 1651https://www.unicode.org/reports/tr14 1652

[UAX15] Unicode Consortium, “Normalization Forms”, UAX#15, 1653https://www.unicode.org/reports/tr15 1654

[UAX29] Unicode Consortium, “Unicode Text Segmentation”, UAX#29, 1655http://www.unicode.org/reports/tr29 1656

[UAX31] Unicode Consortium, “Unicode Identifier and Pattern Syntax”, 1657UAX#31, http://www.unicode.org/reports/tr31 1658

[UNICODE] Unicode Consortium, "Unicode Standard", Version 11.0.0, June 2018, 1659https://www.unicode.org/versions/Unicode11.0.0/ 1660

[UTS10] Unicode Consortium, “Unicode Collation Algorithm”, UTS#10, 1661https://www.unicode.org/reports/tr10 1662

[UTS35] Unicode Consortium, “Unicode Locale Data Markup Language”, 1663UTS#35, https://www.unicode.org/reports/tr35 1664

[UTS39] Unicode Consortium, “Unicode Security Mechanisms”, UTS#39, 1665https://www.unicode.org/reports/tr39 1666

14.2 InformativeReferences1667

[BCP13] N. Freed,J. Klensin, T. Hansen, "Media Type Specifications and 1668Registration Procedures", BCP 13, RFC 6838, 1669https://tools.ietf.org/html/rfc6838 1670

[BCP165] M. Cotton, L. Eggert, J. Touch, M. Westerlund, S. Cheshire, "Internet 1671Assigned Numbers Authority (IANA) Procedures for the Management 1672of the Service Name and Transport Protocol Port Number Registry", 1673BCP 165, RFC 6335, https://tools.ietf.org/html/rfc6335 1674

[IPPSAMPLE] "ISTO-PWG IPP Sample Code Repository", 1675https://github.com/istopwg/ippsample 1676

Deleted: June 2014,1677

Deleted: June 2014,1678

Deleted: June 2014, 1679

Deleted: June 2014, ↵1680

Deleted: June 2014,↵1681

Deleted: June 2014,↵1682

Deleted: September 2014,↵1683

Deleted: September 2014,↵1684

Page 62: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page62of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

[ISO52915] "Specification for Additive Manufacturing File Format (AMF) Version 16851.2", ISO/ASTM 52915:2016 1686

[RFC3196] T. Hastings, C. Manros, P. Zehler, C. Kugler, H. Holst, "Internet 1687Printing Protocol/1.1: Implementer's Guide", RFC 3196, November 16882001, https://tools.ietf.org/html/rfc3196 1689

[STLFORMAT] 3D Systems, Inc., "SLC File Specification", 1994 1690

[UNISECFAQ] Unicode Consortium “Unicode Security FAQ”, November 2013, 1691https://www.unicode.org/faq/security.html 1692

[UTR17] Unicode Consortium “Unicode Character Encoding Model”, UTR#17, 1693https://www.unicode.org/reports/tr17 1694

[UTR23] Unicode Consortium “Unicode Character Property Model”, UTR#23, 1695https://www.unicode.org/reports/tr23 1696

[UTR33] Unicode Consortium “Unicode Conformance Model”, UTR#33, 1697https://www.unicode.org/reports/tr33 1698

15. Author'sAddress1699

Primary author: 1700

MichaelSweet1701AppleInc.1702OneAppleParkWay1703MS111-HOMC1704Cupertino,[email protected]

The authors would also like to thank the following individuals for their contributions to this 1707standard: 1708

OlliverSchinagl,UltimakerB.V.1709MichaelScrutton,AdobeSystems1710EmmetLalish,MicrosoftCorporation1711

1712

Deleted: November 2008,1713

Deleted: November 2008,↵1714

Deleted: November 2008,↵1715

Page 63: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page63of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

16. ObjectDefinitionLanguages(ODLs)1716

This section provides information on several commonly used ODLs with either existing 1717(registered) or suggested MIME media types. 1718

16.1 3DManufacturingFormat(3MF)1719

3MF [3MF] is a freely-available format based on the Open Packaging Conventions that 1720provides geometry, material, and texture information necessary to support a wide variety of 17213D printers. Materials can be named and composed within the geometry, facilitating multiple 1722material support in coordination with a Job Ticket. 1723

The registered MIME media type for the original Microsoft published specification is 1724"application/vnd.ms-3mfdocument". The MIME media type for the 3MF Consortium's 1725published specification is "model/3mf". 1726

16.2 AdditiveManufacturingFormat(AMF)1727

AMF [ISO52915] is a relatively new format that was designed as a replacement for the 1728Standard Tessellation Language (STL). Its use has been hampered by the lack of a freely-1729available specification, but has several advantages over STL including: 1730

1. Sharedverticeswhicheliminatesholesandotherbreaksinthesurfacegeometryof1731objects,1732

2. Specificationofmultiplematerialsinasinglefile,17333. Curvedsurfacescanbespecified,and17344. Coordinatesuseexplicitunitsforproperoutputdimensions.1735

The suggested (but not registered) MIME media type is 'model/amf'. 1736

16.3 PortableDocumentFormat(PDF)1737

PDF [ISO32000] is widely supported for 2D printing and has two 3D formats that are used 1738to embed 3D objects - PRC [ISO14739-1] and U3D [ECMA363]. The registered MIME media 1739type for PDF is "application/pdf". 1740

[For discussion: define a "model/pdf" MIME media type for PDFs containing 3D content?] 1741

16.4 StandardTessellationLanguage(STL)1742

STL [STLFORMAT] is widely supported by existing client software. The registered MIME 1743media type is 'application/sla'. 1744 1745

Page 64: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page64of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

17. DesignChoices1746

This section documents some of the design choices that were made during the development 1747of this specification. 1748

17.1 UnitsforLengthValues1749

The default unit for most length values is hundredths of millimeters (1/2540th of an inch), 1750matching the units for 2D printing and providing a range of 0.01mm to 21.47km. This was 1751determined to be sufficient for the class of printers this specification targets. 1752

17.2 UnitsforThicknessValues1753

The default unit for most thickness values is nanometers, which provides a range of 17540.000001mm to 2.147m. This was determined to be sufficient for the class of printers this 1755specification targets. 1756

17.3 UseofCelsiusforTemperatures1757

The various integer attributes for temperature use degrees Celsius. This was done because 1758most existing printers and materials are specified using degrees Celsius. There is no 1759advantage to using degrees Fahrenheit or Kelvin, and forcing Clients and Printers to perform 1760additional unit conversions could cause safety issues. All temperature attributes use a range 1761of -273 (absolute zero) to MAX (2147483647 - significantly hotter than our sun) to allow 1762flexibility. 1763

17.4 ExplicitUnitsforOtherValues1764

Some attributes have a companion "xxx-units" attribute that specifies an explicit unit for the 1765given measurement(s). The initial list of unit values for each attribute has been limited to 1766those necessary for current printers and technologies at the time of writing of this 1767specification in order to minimize interoperability issues. 1768

17.5 Intentvs.Process1769

The IPP Model [RFC8011], and more generally the PWG Semantic Model [PWG5108.1], 1770have long focused on Job Tickets specifying "what" is wanted for the printed output vs. "how" 1771that output is produced. This focus has served IPP well and allowed it to be used with wildly 1772different printing technologies. 1773

During the development of this specification, attributes that define a specific process or 1774technological parameter have been introduced and later replaced by intent-based 1775alternatives that allow an implementation to select suitable process-based parameters at 1776

Page 65: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page65of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

print time, preserving the intrinsic value of such parameters without burdening the Client or 1777End User with such things. 1778

At the same time, some process parameters are needed for things like material specification. 1779For example, a particular brand of PLA may require a higher melting temperature - this 1780information might only be known to the End User, so the "materials-col" collection contains 1781an member attribute to convey this process-specific parameter. The Printer advertises 1782whether temperature is a valid material property in the "materials-col-supported" Printer 1783Description attribute. 1784

Finally, IPP does not prohibit the definition or use of process-based Job Template attributes 1785for specific implementations. Such extension attributes can be listed in the "job-creation-1786attributes-supported" Printer Description attribute to notify Clients of their existence. 1787

17.6 ChoosingaRequiredDocumentFormat1788

One of the design consideration of this specification is to choose an open, freely available 1789file format for use as required document format. Having a required document format makes 1790interoperability significantly easier, and using an open and freely available format allows 1791developers of "consumer" printers to support IPP 3D. Several formats were considered, 1792including STL, AMF, PDF, and 3MF. 1793

While STL is a widely-implemented, open, and freely available file format, it lacks support 1794for multiple materials and colors/textures, and has technical issues that cause "holes" in 1795generated models. 1796

While AMF supports multiple materials and does not have the "holes" issue, it is not freely 1797available nor widely-implemented. 1798

PDF is the most capable 3D format but is not freely available and has the interoperability 1799problem of two separate and incompatible 3D object encodings: U3D and PRC. The "pdf-1800features-supported" Printer Description attribute (section 8.3.22) allows Clients to determine 1801whether a 3D PDF file can be printed by the Printer. 1802

3MF is open and freely available, supports multiple materials and color/textures, does not 1803have the "holes" issue of STL, and has a freely available open source implementation that 1804supports both creation and consumption of 3MF files. 1805 1806

Page 66: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page66of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

18. OverviewofChanges1807

18.1 IPP3DPrintingExtensionsv1.11808

The following changes were made since v1.0 of this document: 1809

1. Made3MFCONDITIONALLYREQUIREDforPrintersthatdoSlicing,RECOMMEND1810supportforastandardlayeredformatotherwise.1811

2. AddedtheCONDITIONALLYREQUIRED"material-nozzle-diameter"and"material-1812retraction"memberattributesforthe"materials-col"JobTemplateattribute.1813

3. AddedtheRECOMMENDED"platform-shape"PrinterDescriptionattribute18144. AddedtheCONDITIONALLYREQUIRED"chamber-humidity"and"chamber-1815

temperature"JobTemplateattributes.18165. Definedanamingconventionforstandard"material-type"values.1817 1818

Page 67: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page67of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

19. ChangeHistory1819

19.1 February1,20191820

• Really change status to stable. 1821

• Removed dates from UTR references since we are not referring to an explicit version 1822of those recommendations. 1823

19.2 January14,20191824

• Status: Stable 1825

• Section 14.1: Updated link for STD92, updated all Unicode links, use HTTPS 1826whenever possible, dropped PWG Semantic Model links since we don't deal with that 1827here. 1828

• Section 14.2: Updated all Unicode links, use HTTPS whenever possible, dropped 1829UTR20 (XML). 1830

19.3 July4,20181831

• Status: Prototype 1832

• RFC 8011 is now STD 92. 1833

• Added missing chamber-humidity-actual and chamber-temperature-actual attributes. 1834

• Updated IANA registrations. 1835

19.4 June5,20181836

• Renamed"printer-volume-xxx"to"chamber-xxx".1837

• Added"chamber-humidity"toTable10.1838

• AllnewattributesthatwereCONDITIONALLYREQUIREDarenowRECOMMENDED.1839

• Addeddefinitionofmaterial-typekeywordformatforstandardmaterials.1840

• UpdateUnicodereferencenowthatv11hasbeenpublished.1841

Page 68: The Printer Working Group · 1/02/2019  · such as 3D printers. This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: ... Working Draft – IPP 3D

WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019

Page68of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.

19.5 April26,20181842

Initial revision. 1843


Recommended