|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Результаты опроса: Пользутесь ли вы AIA | |||
Да |
![]() ![]() ![]() |
4 | 23.53% |
Нет |
![]() ![]() ![]() |
4 | 23.53% |
Не люблю когда много слоев |
![]() ![]() ![]() |
0 | 0% |
А чё такое AIA |
![]() ![]() ![]() |
9 | 52.94% |
Голосовавшие: 17. Вы ещё не голосовали в этом опросе |
![]() |
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Написать функцию для чтения INI на LISP несложно, она пригодится еще много раз. Поясню, как реализован классификатор слоев в ruCAD. Использовалось множество вариантов, последний уже кажется оптимальным. "Стандарт" слоев хранится в файловой системе. В некотором корневом каталоге, например, %RuCadRootDir%\All Users\Layers\ru\ (именуемом в дальнейшем %RuCADLayerRootDir%) создается специальная система подкаталогов, возможно на сервере; Имя каждого подкаталога является частью имени слоя; В любом подкаталоге могут находиться файлы с расширением LAY, в которых, в INI-формате, может храниться любая информация по слою; Базовое имя LAY-файла является последним "подсловом" в имени слоя; Имя каждого слоя формируется автоматически путем замены в полном имени LAY-файла символов-разделителей каталогов на заданный разделитель "подслов" с исключением имени корневого каталога классификатора. Таким образом, файлу %RuCADLayerRootDir%\РП\План\1эт\Размеры\Ас.lay будет соответствовать слой РП_План_1эт_Размеры_Ас. Рядом с файлом Ас.lay могут располагаться файлы ОВ.lay, ВК.lay и др. В результате в классификаторе будут присутствовать слои РП_План_1эт_Размеры_ОВ и РП_План_1эт_Размеры_ВК. Кроме того, может существовать и файл %RuCADLayerRootDir%\РП\План\1эт\Размеры.lay и соответствующий ему слой РП_План_1эт_Размеры для каких-то общих размеров этажа, а также файл %RuCADLayerRootDir%\РП\План\Размеры.lay и соответствующий ему слой РП_План_Размеры для общих размеров здания. При необходимости можно скопировать наборы LAY-файлов, созданных в одном каталоге, в другие подкаталоги, например из подкаталога 1эт в подкаталоги 2эт—16эт. Система каталогов и их имен может быть любой, удобной для проектной организации. К именам слоев может автоматически добавляться фирменный префикс или суффикс. В LAY-файлах в виде переменных описываются основные параметры слоя — альтернативное имя (на другом языке или в виде короткого кода), комментарий к слою, цвет слоя на экране, цвет слоя на бумаге, тип линии, вес линии и другие параметры по умолчанию. Для слоя может быть задан метод создания объектов. Обычно это загрузка и выполнение конкретной программы, но может быть и загрузка фрагмента XML-меню с соответствующими программами. Например, для слоя координационных осей здания это может быть программа рисования осей, а для слоя трубопроводов — загрузка XML-меню программ рисования трубопроводов. Можно просто создавать требуемые каталоги и получить любую структуру слоев. Описание слоя выглядит примерно так Код:
Это просто пример одной из множества возможных реализаций поддержки стандарта. [ATTACH]1143000202.gif[/ATTACH] |
|||
![]() |