Дистрибутив ядра C3D для ОС MS Windows представляет собой архивный файл или каталог C3D_Kernel_NNNNNN.zip, в имени которого “NNNNNN” обозначает номер сборки (версии). Распакуйте архивный файл ядра в отдельный каталог. Имя и расположение этого каталога не имеют принципиального значения, и далее этот базовый каталог может обозначаться как <BaseDir> (или совсем не будет упоминаться).
В базовом каталоге ядра имеются следующие элементы:
Сделаем несколько замечаний относительно этих элементов дистрибутива ядра.
В каталоге Kernel располагаются архивы, в каждом из которых содержатся скомпилированные файлы геометрического ядра c3d.dll, c3d.lib и заголовочные файлы ядра на языке программирования С++. Ядро поставляется в нескольких вариантах, рассчитанных на разные версии сред программирования и операционной системы. Некоторая избыточность комплектации связана с тем, что скомпилированное представление программ на Си++ зависит и от аппаратных особенностей процессора, и от особенностей целевой операционной системы, и от среды программирования. Такой подход позволяет повысить эффективность вычислений за счет использования новых возможностей языка Си++ и возможностей новых версий компиляторов.
Для каждой версии Visual Studio C++ имеется несколько архивов, например, для Visual Studio 2017:
Варианты скомпилированного ядра отличаются разрядностью (определяет объем памяти для хранения целых чисел и указателей) и представлением символьных данных (устаревшая однобайтная кодировка или двухбайтная Unicode). Эти отличия закодированы в именах архивов с файлами ядра по следующему шаблону:
<Разрядность программы>_Visual_Studio_<Версия среды>_<Представление символьных данных>
В каждом архиве файлы ядра распределены по трем каталогам: Debug, Release и Include. В каталогах Debug и Release хранятся 2 скомпилированных файла ядра: c3d.dll и c3d.lib. Это динамическая и статическая библиотеки. Динамическая библиотека – собственно геометрическое ядро, поэтому файл c3d.dll должен распространяться вместе с приложением. Статическая библиотека импорта c3d.lib необходима только для разработки приложения, для организации связи между приложением с динамической библиотекой в процессе компиляции и сборки. Каталог Include содержит заголовочные файлы, описывающие типы данных, классы и функции, реализованные в ядре. Количество заголовочных файлов довольно велико – несколько сотен. По общепринятым правилам программирования на Си++, в ядре преобладает подход размещения в одном заголовочном файле описания только одного класса.
Каталог Documentation содержит справочную документацию в 2-хформатах: в виде *.chm-файлови в формате PDF. Содержательно документация тесно связана с текущей версией геометрического ядра, она построена на основе автоматического извлечения комментариев к исходным текстам ядра и поэтому содержит наиболее актуальную информацию о нем. При открытии справки в CHM-формате в ОС Windows 7 может появиться предупреждение системы безопасности операционной системы, и содержимое справки показано не будет. В таком случае, разблокируйте файл справки (вызовите его окно свойств и нажмите кнопку Разблокировать). Актуальная версия документации по последней версии ядра также доступна на сайте разработчика по ссылке.
Для работы со справочной системой на этом сайте рекомендуется использовать браузер Google Chrome.
В архиве Example.zip находятся файлы проекта тестового приложения: его исходный текст, служебные файлы проекта для самостоятельной сборки приложения в среде MS Visual Studio, несколько вариантов скомпилированного исполняемого файла различной разрядности и примеры файлов с геометрическими моделями.
Тестовое приложение test.exe – это оконное приложение для ОС Windows, демонстрирующее способы использования геометрического ядра. В нем реализованы следующие основные возможности:
Приложение test.exe можно рассматривать как инструментальное средство низкого уровня для работы с ядром C3D. Под «низкоуровневостью» здесь подразумевается, что возможности реализованного интерфейса пользователя приближены к программному интерфейсу ядра (не следует их сравнивать с интерфейсом пользователя полномасштабных САПР). Тестовое приложение позволяет изменять параметры вызова функций ядра без перекомпиляции приложения, а также выполнять отладку пользовательских функций для работы с ядром (для этого требуется перекомпиляция).
Для сборки приложения test.exe необходимо сформировать проект для используемой версии среды Microsoft Visual Studio. В комплект поставки C3D входят проекты для нескольких версий среды программирования.
Если проект для вашей версии среды программирования имеется, то выполните следующие действия (если нет, то перейдите к п. “Формирование проекта для сборки тестового приложения”):
Если для вашей версии среды разработки не имеется готового проекта, то его можно сформировать самостоятельно с помощью свободно доступного приложения – утилиты CMake. Она позволяет сформировать файлы проекта для конкретной версии среды программирования на базе текстового описания проекта на языке этой утилиты. Обычно это текстовое описание проекта хранится в файле CMakeLists.txt. Откройте этот файл Example\Source\CMakeLists.txt и ознакомьтесь с его содержимым – вы увидите текст на типичном командном языке с использованием макросов, среди которых заметно перечисление исходных файлов приложения и используемых библиотек.
Для формирования проекта и сборки тестового приложения выполните перечисленные ниже действия.
В строке Where is the source code укажите каталог с исходными файлами проекта TestApp\Source.
В строке Where to build the binaries укажите каталог, где будут сформированы файлы проекта TestApp\Build (введите имя каталога вручную, поскольку пока он отсутствует). Нажмите кнопку Configure для конфигурирования проекта. На запрос Create Directory подтвердите создание каталога TestApp\Build. В появившемся диалоговом окне Specify the generator for this project укажите требуемую конфигурацию среды разработки (например, Visual Studio 15 2017 Win64). Нажмите кнопку Generate для генерации файлов проекта.
Обратите внимание: если после выполнения генерации проекта в CMake в окне будет отмечена переменная-флаг MathTest_USING_UNICODE (как показано на рис. 3), то при копировании библиотек следует использовать версии для символьной кодировки Unicode.
В тестовом приложении в меню Помощь имеется вложенное меню Создание новых команд, в котором предусмотрены 10 команд для вызова функций пользователя. Заготовки этих функций содержатся в исходном файле проекта TestApp – в файле TestApp\Source\Create\test_user.cpp. В Visual Studio откройте этот файл, пользуясь окном Solution Explorer. Найдите в нем функции с именами MakeUserCommand0() – MakeUserCommand 9(). Это обработчики команд меню, в которые можно добавлять собственный программный текст. Пожалуй, это наиболее простой способ попробовать работу с геометрическим ядром – в приложении test.exe уже имеется готовый механизм отображения создаваемых геометрических моделей. В работе с кодом поможет руководство разработчика.
Вы можете также ознакомиться с видеоуроком на нашем канале: