Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Standard Driver for 3D Printers позволяет разработчикам легко сделать принтер совместимым с Windows 10. Любой принтер, использующий дескрипторы ОС Майкрософт, можно распознать как совместимый трехмерный принтер. В этом примере показано, как создать встроенное ПО, которое позволяет устройству распознаваться как трехмерный принтер Windows 10 и обмениваться возможностями печати.
Введение
Драйвер Microsoft Standard освобождает бремя написания собственного драйвера от независимых поставщиков оборудования (IHV), которые хотят, чтобы их трехмерные принтеры были совместимы с Windows 10. Версии Windows, которые знают о дескрипторах ОС Майкрософт, используют запросы управления для получения информации и его использования для установки и настройки устройства, не требуя взаимодействия с пользователем.
Общий процесс для получения трехмерного принтера, работающего в Windows 10, включает следующие действия.
Совместимый идентификатор . Независимый поставщик оборудования (IHV) должен включать совместимый идентификатор 3D Print в встроенное ПО принтера. Это позволяет устройству распознаваться как трехмерный принтер.
стандартный драйвер. После подключения устройства Центр обновления Windows скачивает стандартный 3D-драйвер печати и обнаруживает текущее устройство как трехмерный принтер, использующий конфигурацию по умолчанию.
дескриптор расширенных свойств. В рамках стандартного драйвера доступны несколько базовых конфигураций для трехмерных принтеров. Поэтому разработчик может выбрать базовую конфигурацию, соответствующую трехмерной принтеру. Помимо выбора базовой конфигурации, разработчик может переопределить некоторые свойства, чтобы лучше соответствовать их 3D-принтеру и включить их в новую прошивку.
Подключение и использование. После записи встроенного ПО во флэш-память 3D-принтера, каждый раз, когда пользователь подключает его к компьютеру с Windows 10, стандартный драйвер будет автоматически скачан и будет использовать пользовательские функции печати, выбранные разработчиком.
В следующих разделах мы проиллюстрируем каждый из этих шагов, используя конкретный пример.
Дополнительные сведения см. в дескрипторах ОС Майкрософт.
Совместимый идентификатор
Чтобы указать операционной системе Windows, что мы в данный момент используем трехмерный принтер, необходимо использовать правильный совместимый идентификатор. Список совместимых с Майкрософт идентификаторов доступен на дескрипторов ОС Майкрософт.
Совместимый идентификатор для трехмерного принтера показан в следующей таблице:
Совместимый идентификатор | Частично совместимый идентификатор | Описание |
---|---|---|
"3DPRINT" (0x33 0x44 0x50 0x52 0x49 0x4E 0x54 0x00) | Меняется | Принтер MS3DPRINT G-Code |
В файле заголовка, включенном в встроенное ПО 3D-принтера, IHV должен указать совместимый идентификатор, как показано здесь:
#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
};
Эта строка в приведенном выше коде является совместимым идентификатором трехмерного принтера:
'3', 'D', 'P', 'R', 'I', 'N', 'T', 0x00, // compatibleID ("3DPRINT")
С помощью этой конкретной конфигурации поставщики аппаратного обеспечения могут компилировать своё встроенное ПО и прошивать устройство. Затем при подключении устройства драйвер 3D Print Standard автоматически загружается из Центра обновления Windows.
На этом этапе принтер использует стандартную конфигурацию драйвера по умолчанию, параметры, используемые конфигурацией по умолчанию, доступны в папке %SYSTEMROOT%\System32\MS3DPrint in the file StandardGCode.xml. Кроме того, разработчик может использовать другую базовую конфигурацию, список базовых конфигураций доступен в той же папке %SYSTEMROOT%\System32\MS3DPrint. Этот список регулярно заполняется новой конфигурацией, так как новые трехмерные принтеры появляются на рынке.
Дескриптор функций расширенных свойств ОС
Как указано в приведенном выше разделе, IHV имеют доступ к нескольким базовым конфигурациям. Это позволяет свести к минимуму объем информации, которая должна храниться в памяти флэш-памяти принтера. Разработчики могут проверить базовые конфигурации, доступные и выбрать наиболее близкий к их принтерам. В этом примере мы собираемся выбрать базовую конфигурацию SD-карты и переопределить некоторые свойства следующими параметрами:
Параметры | Ценность |
---|---|
ШиринаОбластиВывода3DЗадачи | 250000 |
ГлубинаОбластиВывода3DЗадачи | 260000 |
ВысотаЗоныВыходаРаботы3D | 270000 |
Диаметр нити | 2850 |
Дополнительные сведения об этих параметрах см. в документе MS3DPrint Standard G-Code Driver.docx в документации пакет SDK для трехмерной печати (скачать MSI).
Чтобы указать базовую конфигурацию, которую следует использовать и какие параметры переопределить, разработчик должен указать ее с помощью дескриптора компонента ОС расширенных свойств, как показано ниже:
// 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 */
};
Сведения о дескрипторе функций расширенных свойств ОС находятся в файле OS_Desc_Ext_Prop.doc. Дополнительные сведения см. в дескрипторах ОС Майкрософт.
Проверка возможностей печати
После того как на устройство записано встроенное ПО во флэш-памяти, оно будет автоматически обнаружено Windows 10, а настройки печати хранятся в реестре.
Важно, чтобы IHV изменил VID/PID устройства на свои собственные. Никогда не следует использовать идентификатор поставщика (VID) или идентификатор продукта (PID) другого существующего устройства, так как операционная система не сможет правильно обнаруживать устройство, так как VID и PID принимают приоритет над дескриптором ОС.
Если устройство установлено правильно, оно должно быть указано в Устройства и принтеры.
В диспетчере устройствможно проверить соответствующий идентификатор устройства и совместимый идентификатор.
вкладка «Сведения» диспетчера устройств
вкладка сведений о диспетчере устройств
Свойства USB-драйвера можно получить, перейдя в реестр по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB.
Свойства драйвера 3D Print можно получить, перейдя в реестр по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers.
Ресурсы
Дополнительные сведения см. в следующих документах и ресурсах:
пакет SDK для трехмерной печати (скачивание MSI)
Вы также можете связаться с командой Microsoft 3D Printing по адресу ask3dprint@microsoft.com.