Partager via


Guide de démarrage - Pilote standard Microsoft pour imprimantes 3D

Le pilote standard Microsoft pour les imprimantes 3D permet aux développeurs de rendre facilement leur imprimante compatible avec Windows 10. Toute imprimante qui utilise les descripteurs du système d'exploitation de Microsoft peut être reconnue comme une imprimante 3D compatible. À l'aide d'un exemple concret, cet article montre comment créer un microprogramme qui permet à un appareil d'être reconnu comme une imprimante 3D par Windows 10 et de communiquer ses capacités d'impression.

Introduction

Le pilote standard de Microsoft allège le fardeau que représente l'écriture de leur propre pilote pour les fournisseurs de matériel indépendants (IHV) qui souhaitent que leurs imprimantes 3D soient compatibles avec Windows 10. Les versions de Windows qui connaissent les descripteurs du système d'exploitation de Microsoft utilisent des requêtes de contrôle pour récupérer les informations et les utiliser pour installer et configurer l'appareil sans nécessiter d'interaction de la part de l'utilisateur.

Le processus général pour faire fonctionner une imprimante 3D sous Windows 10 comprend les étapes suivantes :

  1. ID compatible. Le fournisseur de matériel indépendant (ID) doit inclure l'ID compatible « 3D Print » dans le microprogramme de l'imprimante. Cela permet à l'appareil d'être reconnu comme une imprimante 3D.

  2. Pilote standard. Une fois l'appareil branché, Windows Update télécharge le pilote standard d'impression 3D et détecte l'appareil actuel comme une imprimante 3D utilisant une configuration par défaut.

  3. Descripteur de propriétés étendu. Plusieurs configurations de base pour les imprimantes 3D sont mises à disposition dans le cadre du pilote standard. Un développeur peut donc choisir une configuration de base qui correspond à son imprimante 3D. En plus de choisir une configuration de base, un développeur peut remplacer certaines des propriétés pour mieux correspondre à son imprimante 3D et les inclure dans le nouveau microprogramme.

  4. Prêt à l'emploi. Une fois le microprogramme gravé dans la mémoire flash de l'imprimante 3D, chaque fois qu'un utilisateur la branche sur une machine Windows 10, le pilote standard est automatiquement téléchargé et utilise les capacités d'impression personnalisées que le développeur a choisies.

Dans les sections suivantes, nous illustrerons chacune de ces étapes à l'aide d'un exemple concret.

Pour plus d'informations, consultez la section Descripteurs du système d'exploitation de Microsoft.

ID compatible

Pour indiquer au système d'exploitation Windows que nous utilisons actuellement une imprimante 3D, nous devons utiliser le bon ID compatible. La liste des ID compatibles de Microsoft est disponible sur Microsoft OS Descriptors.

L'ID compatible pour une imprimante 3D est indiqué dans le tableau suivant :

ID compatible ID sous-compatible Description
« 3DPRINT » (0x33 0x44 0x50 0x52 0x49 0x4E 0x54 0x00) Variable Imprimante MS3DPRINT G-Code

Dans le fichier en-tête qui est inclus dans le microprogramme de l'imprimante 3D, l'IHV doit spécifier l'ID compatible comme indiqué ici :

#define MS3DPRINT_CONFIG_SIZE 232

#define MS3DPRINT_OSP_SIZE (4+4+2+0x20+4+MS3DPRINT_CONFIG_SIZE)

#define MS3DPRINT_XPROP_SIZE (4+2+2+2+MS3DPRINT_OSP_SIZE)

#define SIZE_TO_DW(__size)                \
        ((uint32_t)__size) & 0xFF,        \
        (((uint32_t)__size)>>8) & 0xFF,   \
        (((uint32_t)__size)>>16) & 0xFF,  \
        (((uint32_t)__size)>>24) & 0xFF

// CompatibleID and SubCompatibleID
static const uint8_t PROGMEM ms3dprint_descriptor[40] = {
    0x28, 0x00, 0x00, 0x00,                          // dwLength
    0x00, 0x01,                                      // bcdVersion
    0x04, 0x00,                                      // wIndex
    0x01,                                            // bCount
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,        // RESERVED
    0x00,                                            // bFirstInterfaceNumber
    0x01,                                            // RESERVED
    '3', 'D', 'P', 'R', 'I', 'N', 'T', 0x00,         // compatibleID ("3DPRINT")
                                                 // subCompatibleID
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /*        */  
,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00               // RESERVED
};

Cette ligne du code ci-dessus correspond à l'ID compatible d'une imprimante 3D :

'3', 'D', 'P', 'R', 'I', 'N', 'T', 0x00, // compatibleID ("3DPRINT")

Avec cette configuration spécifique, les IHV peuvent compiler leur microprogramme et flasher l'appareil. Ensuite, lorsque l'appareil est branché, le pilote standard d'impression 3D est automatiquement téléchargé à partir de Windows Update.

À ce stade, l'imprimante utilise la configuration par défaut du pilote standard, les paramètres utilisés par la configuration par défaut sont accessibles dans le dossier %SYSTEMROOT%\System32\MS3DPrint dans le fichier StandardGCode.xml. En outre, un développeur peut choisir d'utiliser une configuration de base différente, une liste de configurations de base est disponible dans le même dossier %SYSTEMROOT%\System32\MS3DPrint. Cette liste est régulièrement complétée par de nouvelles configurations au fur et à mesure de l'apparition de nouvelles imprimantes 3D sur le marché.

Descripteur de fonctionnalité du système d'exploitation des propriétés étendues

Comme indiqué dans la section précédente, les IHV ont accès à plusieurs configurations de base. Cela présente l'avantage de minimiser la quantité d'informations à stocker dans la mémoire flash de l'imprimante. Les développeurs peuvent examiner les configurations de base disponibles et choisir celle qui est la plus proche de leurs imprimantes. Dans cet exemple, nous allons choisir la configuration de base de la carte SD et remplacer certaines des propriétés par les paramètres ci-dessous :

Paramètres Valeur
Job3DOutputAreaWidth 250 000
Job3DOutputAreaDepth 260000
Job3DOutputAreaHeight 270000
Diamètre du filament 2 850

Pour plus d'informations sur ces paramètres, consultez le document MS3DPrint Standard G-Code Driver.docx dans la documentation 3D Printing SDK (téléchargement MSI).

Pour spécifier la configuration de base à utiliser et les paramètres à remplacer, le développeur doit le faire par l'intermédiaire du descripteur de fonctionnalité du système d'exploitation Extended Properties, comme indiqué ici :

// Modifiers to the base configuration
static const uint8_t PROGMEM ms3dprint_properties_descriptor[] = {
    SIZE_TO_DW(MS3DPRINT_XPROP_SIZE),                   // dwLength
    0x00, 0x01,                                         // bcdVersion
    0x05, 0x00,                                         // wIndex
    0x01, 0x00,                                         // wCount

    SIZE_TO_DW(MS3DPRINT_OSP_SIZE),                     // dwSize
    0x07, 0x00, 0x00, 0x00,                             // dwPropertyDataType  (1=REG_SZ, 4=REG_DWORD, 7=REG_MULTI_SZ)

    0x20, 0x00,                                         // wPropertyNameLength
    'M', 0x0, 'S', 0x0, '3', 0x0, 'D', 0x0,             // bPropertyName
    'P', 0x0, 'r', 0x0, 'i', 0x0, 'n', 0x0,
    't', 0x0, 'C', 0x0, 'o', 0x0, 'n', 0x0,
    'f', 0x0, 'i', 0x0, 'g', 0x0, 0x0, 0x0,

    SIZE_TO_DW(MS3DPRINT_CONFIG_SIZE),                  // dwPropertyDataLength

    // Data
    0x42, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x3D, 0x00, 0x53, 0x00, 0x44, 0x00, 0x00, 0x00,  /* Base=SD  */  
    0x4A, 0x00, 0x6F, 0x00, 0x62, 0x00, 0x33, 0x00, 0x44, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00,  /* Job3DOut */  
    0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x41, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x57, 0x00,  /* putAreaW */  
    0x69, 0x00, 0x64, 0x00, 0x74, 0x00, 0x68, 0x00, 0x3D, 0x00, 0x32, 0x00, 0x35, 0x00, 0x30, 0x00,  /* idth=250 */  
    0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x6F, 0x00, 0x62, 0x00, 0x33, 0x00,  /* 000 Job3 */  
    0x44, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x41, 0x00,  /* DOutputA */  
    0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x44, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x68, 0x00,  /* reaDepth */  
    0x3D, 0x00, 0x32, 0x00, 0x36, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,  /* =260000  */  
    0x4A, 0x00, 0x6F, 0x00, 0x62, 0x00, 0x33, 0x00, 0x44, 0x00, 0x4F, 0x00, 0x75, 0x00, 0x74, 0x00,  /* Job3DOut */  
    0x70, 0x00, 0x75, 0x00, 0x74, 0x00, 0x41, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x48, 0x00,  /* putAreaH */  
    0x65, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x3D, 0x00, 0x32, 0x00, 0x37, 0x00,  /* eight=27 */  
    0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x69, 0x00, 0x6C, 0x00,  /* 0000 fil */  
    0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x64, 0x00, 0x69, 0x00, 0x61, 0x00,  /* amentdia */  
    0x6D, 0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x3D, 0x00, 0x32, 0x00, 0x38, 0x00,  /* meter=28 */  
    0x35, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00                                                   /* 50       */  
};

Les informations concernant le descripteur de fonctionnalité du système d'exploitation pour les propriétés étendues se trouvent dans le fichier OS_Desc_Ext_Prop.doc. Pour plus d'informations, consultez la section Descripteurs du système d'exploitation de Microsoft.

Vérification des capacités d'impression

Une fois que l'appareil a le microprogramme gravé dans la mémoire flash, l'appareil sera automatiquement détecté par Windows 10 et les capacités d'impression sont stockées dans le registre.

installation d'une imprimante 3d compatible .

Il est important que l'IHV modifie le VID/PID de l'appareil pour le remplacer par le sien. Vous ne devez jamais utiliser l'ID du fournisseur (VID) ou l'ID du produit (PID) d'un autre appareil existant, car le système d'exploitation ne pourra pas détecter correctement l'appareil, le VID et le PID étant prioritaires sur le descripteur du système d'exploitation.

Si l'appareil a été correctement installé, il devrait être répertorié dans la section Périphériques et imprimantes.

appareils et imprimantes.

Dans le Gestionnaire de périphériques, l'ID de l'appareil et l'ID compatible peuvent être vérifiés.

Gestionnaire d'appareils.

onglet détails du gestionnaire d'appareils - ID de l'appareil correspondant.

onglet détails du gestionnaire d'appareils - ID compatibles.

Les propriétés du pilote USB peuvent être obtenues en consultant le registre à l'adresse HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB.

modifiez la valeur de la multichaîne dans le registre usb.

Les propriétés du pilote d'impression 3D peuvent être obtenues en visitant le registre à l'adresse HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers.

afficher les propriétés du pilote d'impression 3d dans le registre.

Ressources

Pour plus d'informations, consultez les documents et ressources suivants :

3D Printing SDK (téléchargement MSI)

Descripteurs du système d'exploitation de Microsoft

Spécification USB 2.0

Vous pouvez également contacter l'équipe Microsoft 3D Printing à l'adresse suivante : ask3dprint@microsoft.com