Серый Хомячок

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Создание простой печатной платы с помощью Altium Designer в картинках.

E-mail Печать

00

Эта статья – попытка написать краткое руководство для начинающих осваивать Altium designer (AD). Я не претендую на профессионализм, как в описании функций пакета, так и его использовании. Тем не менее, я попытался описать работу с практической точки зрения, для несложного проекта и создать задел для дальнейшего самостоятельно изучения пакета. Хочу обратить внимание на уже существующие уроки по Protel DXP Ю.Потапова. Они безусловно обстоятельнее, но уже несколько устарели и некоторые моменты практической работы с пакетом там не освещены.


Все, что здесь описано, я проделал непосредственно во время описания. Результирующий проект доступен для ознакомления.

Для начала я привел руководство по созданию несложной печатной платы мультивибратора (так же как и в уроках Ю. Потапова), основные шаги. Работу с библиотеками, подготовку к производству и подготовку документации я планирую осветить в последующих статьях.

Начать предлагаю с некоторых соглашений, дабы избежать разночтений:

1. В региональных настройках операционной системы заменен разделитель целой и дробной части с запятой на точку. Необходимость такой замены обусловлена проблемами в преобразованиях чисел в пакете. Часть ошибок к настоящему времени исправлена, но некоторые еще присутствуют.

2. Используется версия 6.6.7903 пакета и библиотеки входящие в его состав. Должен заметить, что функции использованные мной при создании проекта, практически не изменились, начиная с версии 2002 (Protel DXP). Но хотелось бы избежать проблем связанных с мелкими различиями между версиями пакета. Так же отмечу, что практически к каждому обновлению пакета разработчики выпускают и обновление встроенных библиотек.

3. Перед началом работы, настройки рабочего пространства приведены к начальному состоянию. Отключены все библиотеки. К этому пункту я вернусь непосредственно в начале работы.(*)


 

Очень краткое описание интерфейса.

01

На рисунке приведено рабочее окно программы с открытым, уже подготовленным проектом:

  1. главное меню
  2. боковая панель (Отмечу, что на рисунке отображена панель управления проектами или дерево проектов)
  3. закладки боковых панелей
  4. панель инструментов
  5. панель документов
  6. закладки слоев документа
  7. кнопки отображения открытых боковых панелей
  8. настройки отображения элементов в документе
  9. кнопки быстрого вызова боковых панелей

Как и во многих программах по Windows, в AD кнопки на панели инструментов дублируют пункты главного меню (или просто меню) и имеют одинаковые иконки. Однако кнопки дублируют не все пункты меню и прямо не подписаны (только всплывающая подсказка), поэтому, при написании я пользовался главным меню.

Все документы открываются внутри одного окна. Одновременно можно открыть несколько документов разного типа и из разных проектов, что очень удобно.


 

Подготовка к работе.

Структура и состав панелей меняются в зависимости от типа открытого документа и могут отличаться от приведенного. Ко всему прочему они настраиваются, что может еще усугубить различие и усложнить работу с данным руководством. Поэтому перед началом работы приведем панели общему виду. Главное меню View>Desktop Layouts>Default. Это все что нужно для начала.


 

Создание проекта.

Thumbnail image

На рисунке приведено окно программы после запуска. Для начала создадим новый проект. Для этого можно воспользоваться ссылками на заглавной странице (навигация как в Интернет обозревателе) или воспользоваться проверенным способом – Главное меню>File Project>PCB Project. Появится панель с деревом проектов.

Thumbnail image

В дереве проектов создается заготовка проекта со стандартным, для новых проектов, именем. Отмечу, что проект как таковой еще не создан, в дереве проектов только намерение (собственно, как и в большинстве программ для Windows). Сам проект создается после сохранения. Что мы и проделаем. Жмем правой кнопкой на названии проекта и выбираем Save Project As…

04

Откроется стандартное окно сохранения файла. Выбираем имя и папку для сохранения проекта и жмем кнопку Save. Здесь поясню подробнее. Проект AD, это файл с описанием наличия документов и связей между ними. Все телодвижения по созданию документов, отчетов происходят относительно этого файла и пути в нем прописаны относительные. Соответственно новые файлы по умолчанию располагаются в папке в которой сохранен сам проект. Поэтому я рекомендую для каждого проекта создавать свою папку с уникальным названием. Её впоследствии, безболезненно, можно перенести на другой компьютер, открыть проект и получить доступ ко всем его документам. Для примера, я создал папку E:\Altium_projects\Outstage и сохранил проект с таким же именем. В дереве проектов обновилось название на - Outstage. Проект, как Вы понимаете – пуст. Исправим досадное недоразумение и добавим в проект лист схемы.

05

Щелкаем правой кнопкой на названии проекта и в контекстном меню выбираем Add New to Project Schematic На следующем рисунке результат этой операции.

Thumbnail image

В окне документов появляется лист схемы (по умолчанию формат А4) и в дереве проектов схема с названием по умолчанию. Сохраняем схему аналогично сохранению проекта, только выбираем схему в дереве проектов.

07

Имя файла выбираем по желанию. Обратите внимание, файлы теперь по умолчанию сохраняются в папку с проектом, но место расположения можно изменить. На следующем рисунке видна схема в составе проекта. Можно начинать рисовать схему.

08


 

Создание схемы.

Начнем с добавления компонента в схему через Главное меню>Place>Part… Появляется окно выбора компонентов.

09

Здесь Placement Type – From Standard Libraries оставляем, будем на первом этапе пользоваться встроенными библиотеками. В окне остались артефакты от моих проектов, но по идее поля должны быть пусты. Жмем кнопку с тремя точками, чтобы выбрать библиотеку, компонентами нужно использовать.

Небольшое отступление. В поставке AD идут две стандартные библиотеки компонентов: Miscellaneous Devices.IntLib и Miscellaneous Connectors.IntLib. Хочу обратить внимание – это интегрированные библиотеки, т.е. содержащие и символы и посадочные места. Если пакет установлен по умолчанию, то они находятся по адресу C:\Programs Files\AltiumLibrary. Фактически в них собраны заготовки "рассыпных" элементов для облегчения освоения пакета и использования как основы для собственных. Плюс к этому, собран вагон библиотек от производителей. На начальном этапе воспользуемся только стандартными библиотеками, но я покажу как подключить внешние библиотеки.

Появилось окно выбора библиотеки компонентов.

Thumbnail image

На данном примере оно пустое, я намеренно удалил все ссылки для имитации самого тяжелого случая. В вашем случае там должны быть прописаны стандартные библиотеки. Т.е. в случае пустого окна или необходимости добавить библиотеку жмем кнопку с тремя точками. Появляется окошко с настройками библиотек.

11

Жмем кнопку Install… Далее в окне выбора файла находим стандартные библиотеки (я специально подсветил тип файла - IntLib).

12

Путь к библиотекам я указывал ранее. Выделяем и жмем Открыть. Повторяем операцию для второй библиотеки. На следующем рисунке приведен вид окна с установленными библиотеками. Жмем Close.

13

Теперь окно выбора библиотеки и компонента приобрело другой вид. Сверху окна видно наименование библиотеки, появился список компонентов и справа символ, и посадочное место.

14

Выбираем подходящий и жмем OK.

15

Возвращаемся в окно выбора компонентов. Здесь уже заполнены все поля и есть возможность изменить некоторые параметры, например позиционное обозначение или тип посадочного места. Знак вопроса в позиционном обозначении – служебный символ, необходим для автоматической нумерации. Вместо него можно сразу поставить номер, но не нужно.

16

Небольшое отступление. На первый взгляд – довольно муторная процедура.Но нужно обратить внимание на то, что устанавливать библиотеки придется достаточно редко, т.е. половину операций сразу исключаем. Многие компоненты можно скопировать на схеме из уже имеющихся. Остаток не доставляет неудобств.

Жмем ОК. После выбора компонента в библиотеке он "прикрепляется" к курсору (в данном случае это транзистор).

17 18

Небольшое отступление. Сейчас можно вызвать окно свойств компонента, нажав кнопку Tab, однако, если мы изменим его свойства, последующие компоненты будут их наследовать до выбора следующего. К этому вопросу я планирую вернуться позднее, сейчас в этом нет необходимости. Хочу отметить, что на данном этапе уже просто необходимо использовать клавиатуру. Клавиатурные сочетания ускоряют работу со схемой в разы и их нужно запомнить.

Установка компонента производится нажатием левой кнопки мыши в нужном месте рабочего поля (установка компонента вне рабочего поля не допускается, хотя и возможна; к этому моменту я постараюсь вернуться в последующих статьях.). После установки компонент по прежнему "прикреплен" к курсору и есть возможность установить еще один такой же. Но в схеме требуется его зеркальная копия, поэтому жмем кнопку X на клавиатуре и устанавливаем компонент.

18

Так как больше транзисторы не нужны, нужно вернуться к выбору компонентов в библиотеке. Жмем правую кнопку мыши и возвращаемся в окно выбора компонентов. Выбираем резистор и устанавливаем горизонтально. Следующий нужно повернуть на 90 градусов, для этого жмем пробел (рис. 19). Повторяем операцию для конденсаторов и разъема, который находится в другой библиотеке.

20

Закрыть окно выбора компонентов можно кнопкой Esc. Передвигать рабочее поле можно "зацепив" его правой кнопкой мыши за свободное от элементов место, но этот режим не работает, если мы выбрали компонент. В этом случае можно подтянуть курсор с прикрепленным к курсору компонентом к нужному краю экрана и рабочее поле плавно передвинется. Масштабируется изображение стандартно – колесиком мыши при нажатой кнопке Ctrl. Компоненты можно передвинуть "зацепив" их левой кнопкой мыши, при этом их можно повернуть и сделать зеркальными. На рисунке приведен пример расстановки компонентов.

21

Приступаем к проводникам. Идем в Главное меню>Place>Wire. Подводим курсор к выводу компонента, где он подсвечивается диагональным красным крестом, что означает возможность сделать соединение.

22 23

Жмем левую кнопку мыши, и тянем проводник до следующего вывода. На примере видно, что проводник тянется не так, как хотелось бы. Поворачиваем его пробелом, так же как и компонент.

24 25

Дальше есть два пути. Можно присоединить проводник к выводу ближайшего резистора, в этом случае проводник "оборвется", но мы останемся в режиме прокладки проводника. Второй путь – тянуть проводник до следующего резистора, а ближайшему резистору, ввиду пересечения с контактом, проводник "зацепится" сам. Сменить угол прокладки проводника с 90º на 45º можно сочетанием клавиш Shift+пробел.

26
27

Теперь хочу отметить нюансы перемещения проводников и присоединенных к ним компонентов. По умолчанию при попытке перемещения проводника, его сегмент (от одного угла или вывода компонента, до другого) "отрывается" от компонентов и, если он изначально рисовался как сегмент, проводника.

28
29

Компонент при перемещении просто "отрывается" от проводников. В общем, это удобно. Но в некоторых случаях желательно чтобы проводник тянулся или компонент тянул за собой проводники. В этом случае просто перед перемещением нажимаем кнопку Ctrl и удерживаем её во время перемещения.

30
31

Хотя, как видно на рисунке могут появиться артефакты. Готовая схема приведена на рисунке ниже. Я по привычке добавил символ земли через Главное меню>Place>Power Port, который автоматически именует присоединенную цепь. Добавить имя для других цепей, можно поставив ярлык через Главное меню>Place>Net Label.

32

Я рассмотрел основные операции при рисовании схемы, остальное я предлагаю опробовать самостоятельно. Не забываем сохраняться.

Небольшое отступление. После каждого нажатия на кнопку Save система создает резервную копию схемы или платы, архивирует ее и складывает папку History папки проекта.

Теперь вернемся к позиционным обозначениям. На этапе добавления компонента в схему я обращал внимание на знак вопроса в позиционном обозначении, он и будет заменяться на цифру или цифро-буквенный код. AD позволяет сделать это автоматически. Идем в Главное меню>Tools>Annotate… Получаем окно расстановки позиционных обозначений.

Thumbnail image

Сначала выбираем порядок расстановки (отмечен стрелкой) – Down Then Across, картинка под списком наглядно показывает процесс. Далее жмем Update Changes List. Всплывающее окно информации показывает, сколько позиционных обозначений обновлено.

34

Теперь в окне справа мы видим изменения в списке – колонка Proposed. Если все устраивает, а оно устраивает – жмем Accept Changes (create ECO). Только сейчас изменения вносятся в схему. Мы получаем окошко со списком изменений, которые должны быть внесены в схему.

Thumbnail image

Жмем кнопку Validate Changes, и система проверяет возможность внесения изменений без ошибок. Смотрим статус – все в порядке.

Thumbnail image

Жмем кнопку Execute Changes. Если все прошло удачно – получаем как рисунке ниже. Все, изменения внесены в схему.

Thumbnail image

Еще несколько моментов. По умолчанию сортировка компонентов производится по полю Comment, и если что-то не устраивает, можно попробовать изменить правило. Еще нужно обратить внимание на количество обновленных позиционных обозначений относительно количества компонентов в схеме. Если у одного или нескольких компонентов уже проставлены позиционные обозначения, то они обновлены не будут. Это позволяет задать некоторые позиционные обозначения вручную. В случае необходимости обновления всех позиционных обозначений, их необходимо предварительно сбросить. Эта операция повторяет аннотацию, только вместо кнопки Update Changes List, жмем Reset All.

Небольшое отступление. Конечно, возникает вопрос, - зачем я уделил столько внимания аннотации схемы? Ответ прост. Это наглядное описание ОСНОВНОГО метода внесения изменений в проект. И метод этот – ECO (Engineering Change Order). В процессе внесения изменений можно отследить достаточно много ошибок, причем ДО производства каких либо действий. Пример я приведу в процессе переноса компонентов на печатную плату. На этом этапе, так же, можно сформировать отчеты для более подробного изучения.

Теперь окошко можно закрыть. На рисунке представлена схема с проставленными позиционными обозначениями.

38

У каждого компонента видны три атрибута: позиционное обозначение, комментарий, номинал. У транзисторов, по понятной причине – номинал отсутствует. Изменить атрибуты можно прямо на схеме. Двойной клик на номинале вызовет окно свойств атрибута. Все атрибуты для компонента можно изменить в окне свойств компонента, дважды кликнув на компоненте. Стрелками я указал основные, это позиционное обозначение и комментарий с флажками видимости, номинал, посадочное место.

Thumbnail image

Изменяем необходимые. Далее, для красоты, можно подвигать атрибуты. Однако нам мешает большой шаг сетки перемещения – 10. Изменим на меньший через Главное меню>View>Grids>Set Snap Grid… В окошке выбора шага сетки меняем значение на 5. Отмечу, что предыдущее значение шага сетки осталось стеке и межу ним и новым значением можно переключаться клавишей G. Текущее значение выводится в строке состояния в левом нижнем углу. Теперь можно более точно установить атрибуты. Просто "цепляем" их мышкой и тянем на нужное место. После этого, можно скрыть комментарии у резисторов и конденсаторов, через окно свойств, и готовую схему сохранить. Безусловно, для больших схем установить атрибуты для каждого компонента – весьма утомительная задача. Нам на помощь, здесь, приходит "конек" AD – инспектор. Это инструмент для правки групп параметров.

Небольшое отступление. AD построен на движке базы данных и практически все операции в нем выполняются с помощью запросов. Инспектор, это, по сути, построитель запросов. Параметры в нем можно задавать вручную, или можно воспользоваться мастером. Отдельно он вызывается клавишей F11.

 

40

Попробуем с помощью инспектора скрыть атрибуты у резисторов и конденсаторов. Выделяем на схеме атрибут, щелкаем на нем правой кнопкой мыши и выбираем Find Similar Objects... и получаем окошко – мастер ввода параметров, в котором выбираем параметры запроса, точнее изменяем по необходимости.

41

В нашем случае меняем параметры совпадения в Object Specific Value и Object Specific Parameter Name с AnySame на . Т.е. получается, что мы выбираем все комментарии с именем Res1. Ставим галочку Select Matching (выбрать все подходящие). Далее нажимаем Apply, на схему будет "наложена" маска, подсвеченными останутся только комментарии для резисторов. Проверяем, чтобы стояла галочка Run Inspector.

42

Смотрим на схему - все ли выделилось. Если все нормально, жмем OK. Запустится SCH inspector. Это собственно говоря и есть средство редактирования.

43

Там ставим галочку Graphical Hide и смотрим на результат.

44

Закрываем инспектор и в правом нижнем углу программы жмем кнопку Clear, чтобы отменить маскирование. Не забываем сохраняться.

В общем, схема готова, и её можно передать на плату. Но остался неосвещенным еще вопрос. Для подготовки схемы мы воспользовались интегрированной библиотекой. Изменение/добавление компонентов библиотеки не допускается, что ограничивает возможности редактирования схемы. Чтобы обойти это ограничение, создадим свои библиотеки.

Нужно отметить, что в схеме содержится полная информация о компоненте и её можно "добыть" из схемы. Эта же особенность позволяет изменять компоненты прямо на схеме. К примеру, назначение и имена выводов, ссылку на посадочное место и другие, но это придется делать для каждого компонента отдельно. Это выручает в случае с простейшей схемой, но увеличивает вероятность что-то забыть в сложных, не считая труда по редактированию каждого компонента. Многие параметры изменить в схеме нельзя, например – графическое изображение.

Воспользуемся схемой, как заготовкой будущей библиотеки. На экране перед нами схема – это важно. Как я упоминал ранее, в оболочке AD может быть открыто несколько документов. Все действия производятся в текущем, в зависимости от этого меняется состав главного меню и панелей. Переключаться между документами можно с помощью панели, под главным меню, работающей как панель задач Windows. Теперь идем в Главное меню>Design>Make Schematic Library. Извлекаются символы из схемы, и создается библиотека (схемная). Появляется боковая панель – SCH Library и открывается первый по списку символ для редактирования. Окошко информации подсказывает, сколько извлечено символов из схемы.

Thumbnail image

Но библиотека, как таковая, еще не прописана в проекте и связи еще не обновлены. Об этом, косвенно, говорит отсутствие вида посадочного места в окошке просмотра.

Thumbnail image

Теперь необходимо вернуться к дереву проектов. Переключение между открытыми панелями осуществляется с помощью закладок. В дереве проекта появилась библиотека символов. Сохраняем библиотеку аналогично сохранению проекта и схемы.

Thumbnail image

Это важный момент! После каждого внесения изменений в библиотеку её нужно сохранить, только после этого изменения вступают в силу. Возвращаемся к панели SCH Library. Заменим компоненты в схеме на только что созданные. Для этого щелкаем правой кнопкой мыши на названии компонента в боковой панели и выбираем в контекстном меню Update Schematic Sheets.

50

Информационное окошко сообщит нам о количестве замененных компонентов, здесь не лишним будет "прикинуть", все ли обновилось и на тех ли схемах.

51

Отмечу, что изменения вносятся в открытые документы. Заменяются компоненты с совпадающими именами. Об этом нужно помнить. В нашем случае все имена совпадают, так как мы сформировали библиотеку из схемы.

Проверить результат можно с помощью инспектора (вызывается клавишей F11). Выделяем компонент и смотрим в инспекторе поле Object Specific>Library, в нем должно быть имя вновь созданной библиотеки. Далее мы передадим информацию на плату.

52

Снова возвращаемся к дереву проектов. Щелкаем правой кнопкой на названии проекта и контекстном меню выбираем Add New To Project>PCB. Откроется заготовка платы, и в дереве проекта появится ссылка с названием по умолчанию. Сохраним плату, щелкнув правой кнопкой мыши на ссылке, выбрав Save As…, и потом - удобоваримое имя.

Thumbnail image

Напомню, сохраняем все в папку проекта. Возвращаемся к схеме через панель документов. Теперь передадим информацию на плату. Идем в Design> Update PCB Document.

Thumbnail image

Вообще-то выражение "передача информации на плату" несколько некорректно. С точки зрения AD, таким образом, мы нивелируем различия между схемой и платой. А так как на плате отсутствуют элементы, присутствующие в схеме, то они добавляются. Напомню так же, что изменения вносятся в открытый документ. Если бы мы создали две заготовки платы и открыли их, то в меню появились бы два пункта Update PCB Document с соответствующими именами. Но лучше придерживаться правила: один проект – одна плата.

Появляется уже знакомое нам окно ECO.

Thumbnail image

Жмем кнопку Validate Changes. Смотрим на результат и видим первый "сюрприз", - отсутствие посадочного места (ситуация была создана искусственно, для примера действий в нештатной ситуации).

Thumbnail image

Закрываем окошко. Переходим в окно библиотеки. Открываем панель SCH Library. Щелкаем дважды по названию элемента. В окне свойств смотрим на окошко предварительного просмотра посадочного места. В нем пусто, что косвенно говорит нам о проблеме с поиском посадочного места. Выделяем имя посадочного места и жмем кнопку Edit… В окне выбора посадочного места, снова смотрим в окно предварительного просмотра.

Thumbnail image

Посадочное место есть, однако в критерии поиска библиотеки указано Use footprint from integrated library. Замечу, что мы заменили в схеме все элементы из интегрированной библиотеки, на элементы из схемной, что подразумевает поиск библиотеке посадочных мест, а таковую мы еще не создали.

Исправим недоразумение. Изменим состояние переключателя PCB Library на Any, тем самым, разрешив поиск подходящего посадочного места во всех подключенных библиотеках. И несмотря на пропавшее изображение посадочного места, закрываем окошко. Повторяем действие для остальных элементов. Сохраняем библиотеку. Обновляем компоненты в схеме. Снова пробуем передать информацию на плату. На этот раз, все в порядке.

Thumbnail image

Жмем кнопку Execute Changes. Изменения успешно внесены.

Thumbnail image

Сейчас мы видим на экране заготовку платы. Однако на ней нет элементов :-). Паниковать не нужно :-). Если в окне ECO, все прошло нормально, значит элементы есть. Просто они за пределами поля видимости. Сдвинем изображение влево, "зацепив" его правой кнопкой мыши (в редакторе печатных плат действую те же приемы, что и в редакторе схем) и увидим искомые компоненты. Не забываем сохраняться.

Thumbnail image

Создадим свою библиотеку посадочных мест. Для этого воспользуемся приемом, использованным при создании библиотеки символов. Идем в Главное меню>Design>Make PCB Library. Сохраняем библиотеку. Процесс аналогичен созданию библиотеки символов, за одним исключением. Библиотека создалась как свободный документ, т.е. не входит в проект.

Thumbnail image

Добавим её в проект, просто "перетащив" мышкой в дереве проекта на папку Libraries.

63

После чего идем в библиотеку символов. Последовательно открываем окно свойств каждого компонента и далее окно выбора посадочного места. Убеждаемся, что обновились ссылки на посадочные места;

64

На всякий пожарный случай, обновляем компоненты на схеме. Для этого, в боковой панели SCH Library, в списке компонентов, щелкаем на названии компонента правой кнопкой мыши и выбираем пункт Update Schematic Sheets. Информационное окошко любезно подскажет нам, все ли компоненты обновились. Эту операцию мы уже выполняли, но в контексте замены библиотечных компонентов.

Теперь обновляем плату. Для этого переключаемся на схему и выполняем Главное меню>Design>Update PCB Document Outstage.PcbDoc. Если на этапе обновления библиотек, мы не затронули непосредственно компоненты и схему, то информационное окошко подскажет нам, что схема и плата соответствуют друг другу. Это можно считать еще одной стадией проверки. Если же компоненты или схема были изменены, то появится окно ECO. Здесь мы можем обновить компоненты на плате или вернуться к схеме и поискать, что же мы изменяли.

Небольшое отступление. На этом можно считать, что подготовка к работе завершена. Остается осветить еще один момент. Созданные нами библиотеки можно использовать и в последующих проектах (как я собственно и поступаю). Делается это просто. Создаем новый проект и перетаскиваем библиотеку из уже созданного. Создается ссылка на библиотеку, файловых операций не происходит. Правда в этом случае придется помнить, где физически находятся библиотеки. Выход напрашивается сам собой. Изначально сохранить библиотеки в отдельную папку.

Кратко горячие клавиши:

  • Space – поворот компонента или угла;
  • Shift+Space – смена угла прокладки трассы или цепи;
  • X – зеркальное отображение компонента;
  • G – переключение между сетками перемещения;
  • F11 – вызов инспектора;
  • Ctrl+Mouse Wheel – масштабирование изображения
  • Нажатая клавиша Shift – позволяет выделить несколько компонентов;
  • Нажатая клавиша Ctrl - позволяет переместить компонент без отрыва от цепи или трассы;
  • Клавиша Tab при установке компонента или прокладке проводника вызывает окно свойств.

За помощь в работе над статьей, благодарю Сергея Правдивцева, Konkere. Продолжение следует.

© Юрий Худин.


back_to_top02

Обновлено 24.02.2010 15:25  

Баннер
Баннер
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
Сейчас 77 гостей и 1 пользователь онлайн
Просмотры материалов : 1319853
Разработано "Marine Standard" SIA © 2009