- запрос контекстного меню данного библиотечного элемента-теплообменника.
В интерфейсе "Пользовательский параметр", в виде которого надо оформить ссылку на динамический массив, происходит получение очередной записи из динамического набора, с которым связана запись resRecord. Значения полей очередной записи возвращаются в массив, ссылка на который передается в параметре iParm.
Формирование условия для динамического набора на выборку происходит в записи для заданного диаметра (для этого при описании resRecord первому полю было присвоено имя d).
Модуль uDialog – осуществляет вывод на экран диалоговой формы теплообменника.
Здесь происходит формирование строки со значением диаметра d (целое или вещественное число с одним знаком после запятой). Запоминание вида детали, выбранного с помощью кнопок зависимой фиксации.
В конструкторе выполняется заполнение выпадающего списка значений диаметров теплообненника значениями из базы данных. Задание параметров теплообменника из объекта dataBuf выполняется синхронизация состояния элементов управления окна с новыми значениями параметров теплообменника.
Существует вспомогательный метод для изменения вида детали на чертеже. Для этого запоминается выбранный вид gp и выполняется перерисовка слайда. Для вида с разрезом разрешается редактирование параметров штриховки.
Чтобы получить выбранное значение диаметра из выпадающего списка следует выполнить преобразование в вещественное число, для чего глобальная библиотечная символьная переменная-десятичный разделитель задается равной '.'
Для извлечения параметров теплообменника с диаметром d из базы данных и запоминанием их в объекте parms, следует учитывать свойства, указанные пользователем ранее с помощью элементов управления, например, мелкий/крупный шаг (эти свойства были запомнены в виде флагов в поле parms.flags).
Нажатием кнопки "Помощь" открывается файл справки или выдается сообщение об ошибке, если этот файл отсутствует.
Модуль uConst.pas – осуществляет определение кодов констант прикладной библиотеки (для включения в модули проекта).
В данном модуле содержатся идентификаторы библиотеки:
- Идентификаторы слайдов;
- Идентификаторы команд для командного окна, выводимого в процессе размещения теплообменника на чертеже;
- Идентификаторы меню, команды которых выводятся в командном окне в процессе размещения теплообменника на чертеже;
- Идентификаторы курсоров для работы с характерными точками.
Модуль Obmen.RC – файл ресурсов прикладной библиотеки. Является модулем обрисовки теплообменника в программе КОМПАС.
Модуль Obmen.dpr – главный модуль проекта RTW – библиотеки для рисования детали теплообменник.(см. Приложение А)
В функции каркаса RTW-библиотеки происходит возврат идентификатора библиотеки и осуществляется процедура точки входа в RTW-библиотеку.
В качестве главного окна приложения на время выполнения команд библиотеки, задается главное окно КОМПАС, это обеспечивает принадлежность диалоговых окон прикладной библиотеки.
Вывод диалогового окна, в данном случае, для настройки параметров оси и в случае успешного задания параметров рисование чертежа теплообменника осуществляется в текущем графическом документе.
Процедура каркаса RTW-библиотеки: возврат интерфейса типа idType, при idType =1 функция должна вернуть указатель на объект, реализующий интерфейс характерных точек ILibHPObject применительно к элементу чертежа, который был построен посредством команды библиотеки. Обычно этот запрос происходит при выделении элемента на чертеже щелчком мыши.
Хотя объект "Теплообменник с поддержкой характерных точек" объявлен внутри процедуры LibObjInterfaceEntry, благодаря увеличению счетчика ссылок пользователей этого объекта он продолжает существовать и после выхода из процедуры LibObjInterfaceEntry.
Для того чтобы установить библиотеку необходимо в корневом каталоге жёсткого диска компьютера создать папку \Teploobmennik, с которой вы будете работать в процессе предлагаемых работ.
Теперь запустите Delphi, и командой Project → Options вызовите окно параметров проекта и выполните следующие изменения:
- задайте в качестве расширения имени библиотеки RTW, а не DLL. На закладке Application в строке Target file extension введите rtw.
- укажите местоположение заголовочных модулей. На закладке Directories/Conditionals в строку Search path добавьте (не удаляя предыдущее содержимое этой строки) путь к папке Teploobmennik → RTWExamples → AppTools.
- задайте местоположение промежуточных и окончательных результатов компиляции. На закладке Directories/Conditionals в строках Outputdirectory и Unitoutputdirectory введите путь к созданной ранее папке Teploobmennik → RTWExamples → Proekt → DCU. Путь обязательно должен быть абсолютным, иначе в Delphi отладка DLL будет недоступна.
- отключите выравнивание полей записи. На закладке Compiler в блоке Codegeneration отключите флажок Alignedrecordfields.
Теперь запустите КОМПАС 3DLTV8, выберете в нем команду Сервис→ Подключить библиотеку. В появившемся окне вы открываете папку Teploobmennik → RTWExamples → Proekt → DCU. В строке меню выберете Библиотеки и открываете библиотеку «Теплообменники».
При доработке и усовершенствовании библиотеки необходимо:
- написать требуемый модуль;
- подключить его к главному модулю программы;
- дополнить главное меню требуемым пунктом и назначить на этот пункт событие в виде вызова новой процедуры.
Просматривая содержимое папки библиотек, можно заменить вложенные папки LOAD и файлы*.LOA. это текстовые файлы, в которых прикладные библиотеки хранят таблицы параметров стандартных деталей. Это позволяет при необходимости расширить или исправить список параметров деталей, не изменяя самой прикладной библиотеки.
- При разработке технического обеспечения подсистемы: «Библиотека для Компас – 3DV9 «Расчет и построение теплообменников»» следует учитывать тот факт, что она должна являться частью системы КОМПАС-3DV9. Исходя из этого, техническое обеспечение подсистемы должно подчиняться требованиям самой системы КОМПАС-3DV9. Таким образом, обеспечение подсистемы комплексом технических средств должно выполняться автоматически, при обеспечении таковых у всей системы в целом. Поэтому при описании комплекса технических средств (КТС) за основу будет взят КТС необходимый для обеспечения работоспособности системы КОМПАС - 3DV9.
На основании нижеприведенных результатов тестирования, осуществим выбор материнской платы.
Характеристики тестового стенда:
- операционная система Windows XP Professional SP2,
- процессор Intel Pentium 4 Extreme Edition 3,46 ГГц, Socket 775,
- память 2x512 МБ DDR2-533 DDR2 SDRAM DIMM Corsair (CM2X512A-4300C3PRO), 3-3-3-8,
- видеокарта [PCIEx16] ATI Radeon X800 XT 256 Мб,
- жесткий диск Seagate Barracuda 7200.7 (SATA), 7200 об/мин.
Технические характеристики протестированных материнских плат представлены в таблице 7.1.
Таблица 6.1 – Технические характеристики материнских плат [7]
Параметр | ECSPF5 Extreme | Foxconn 945P7AA-8KS2 | ASUS P5AD2-E Premium |
1 | 2 | 3 | 4 |
Чипсет | Intel 945P/ICH7R | Intel 945P/ICH7 | Intel 925XE/ICH6R |
Поддержка процессоров | Socket 775, Intel Pentium 4/Pentium 4 EE/Pentium D/ Celeron D | ||
Разъемы памяти | 4 DDR2 | ||
Слоты расширения | PCIEx16, 2 PCIEx1, 3 PCI | ||
Форм-фактор, размеры, см. | ATX, 30,5×24,5 | ||
USB | 4 USB 2.0 + 2 разъема по 2 USB 2.0 | ||
Порты ввода/вывода | 1 FDD, 1 LPT на планке, 1 COM, 2 PS/2, разъем IrDA | 1 FDD, 1 LPT, 1 COM + разъем COM, 2 PS/2, разъем IrDA | 1 FDD, 1 LPT, 1 COM (на планке), 2 PS/2 |
Интегрированный в чипсет ATA-контроллер | на 2 устройства ATA100 + 4 SATA300 RAID (0, 1, 10, 5, Matrix RAID) | на 2 устройства ATA100 + 4 SATA300 | 1 FireWire + 2 разъема на 2 порта GigaWire на планке (TI TSB82AA2 + TSB81BA3) |
Внешний ATA-контроллер | Silicon Image SiI3132CNU (интерфейс PCIEx1, 2 SATA300 RAID 0, 1) | ITE IT8212F (4 ATA133 RAID 0, 1 и 0+1) | 2 ATA100 + 4 SATA RAID (0, 1, Matrix RAID) |
Звук | HDA-кодек Realtek ALC880, Toslink S/PDIF-In/Out | HDA-кодек Realtek ALC880, Coaxial S/PDIF-Out | HDA-кодек C-Media CMI9880, Coaxial и Toslink S/PDIF-Out, разъемдля S/PDIF-In |
Сетевой контроллер | Marvell 88E8053-NNC (PCIEx1 Gigabit Ethernet) + Realtek RTL8100С (Fast Ethernet) | Broadcom Broadcom BCM5789KFB (PCIEx1 Gigabit Ethernet) | 2xMarvell 88E8053-NNC (PCIEx1 Gigabit Ethernet) + Marvell 88W8310-BAN (WiFi-b/g) |
I/O-контроллер | Winbond W83627THF | ITE IT8712F-A | Winbond W83627EHF-A |
BIOS | AMI BIOS v2.58 | Phoenix AwardBIOS v6.00PG | AMI BIOS v2.51 |
Результаты тестирования материнских плат представлены в таблице 7.2.
Таблица 6.2 – Результаты тестирования материнских плат [7]
Параметр | ECSPF5 Extreme | Foxconn 945P7AA-8KS2 | ASUS P5AD2-E Premium |
Скорость чтения/записи памяти, Мб/с | 3454/1598 | 3907/1992 | 3147/1397 |
Архивирование: WinRAR, мин:сек | 2:38 | 2:24 | 2:58 |
Кодирование DVD-звука в XviD 1.0.2, мин:сек | 5:21 | 5:14 | 5:43 |
Обработка изображений: AdobePhotoshop 8.0, мин:сек | 33:02 | 32:18 | 35:18 |
Игра FarCry (1024x768), fps | 81 | 85 | 80 |
Игра Unreal Nournament 2004 (1024x768), fps | 63,4 | 65,7 | 60,6 |
По результатам тестирования выбираем материнскую плату Foxconn 945P7AA-8KS2.
По результатам тестирования, приведенным ниже, осуществим выбор процессора.
Характеристики тестового стенда:
- Материнская плата: ASUSP5WD2 Premium (LGA775, Intel 955XExpress).
- Память: 2048MB DDR400 SDRAM (Corsair CMX1024-3500LLPRO, 2 x 1024 MB, 2-3-2-10);
- Графическая карта: NVIDIA GeForce 7800 GT 256MB (PCI-E x16).