The Printer Working Group · 1/02/2019 · such as 3D printers. This document is a PWG Working...
Transcript of The Printer Working Group · 1/02/2019 · such as 3D printers. This document is a PWG Working...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
WorkingDraft–IPP3DPrintingExtensionsv1.1(3D) February1,2019
Page68of68 Copyright©2015-2019ThePrinterWorkingGroup.Allrightsreserved.
19.5 April26,20181842
Initial revision. 1843