PHPackages                             altec-icex/simple-models - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. altec-icex/simple-models

ActiveLibrary[Templating &amp; Views](/categories/templating)

altec-icex/simple-models
========================

Window model constructor

v1.3(1y ago)017MITPHPPHP &gt;=7.2

Since Oct 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/altec-icex/simple-models)[ Packagist](https://packagist.org/packages/altec-icex/simple-models)[ Docs](https://altec.ru)[ RSS](/packages/altec-icex-simple-models/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)DependenciesVersions (5)Used By (0)

simple-models
=============

[](#simple-models)

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

Установка
---------

[](#установка)

Установка осуществляется стандартно через менеджер пакетов.

```
composer require altec-icex/simple-models

```

Описание модели окна/двери
--------------------------

[](#описание-модели-окнадвери)

Модель описывает прямоугольную раму окна или двери с габаритными размерами.

### Рама изделия

[](#рама-изделия)

Рама имеет тип (окно или дверь), системы профиля, основу, покрытия и фурнитуру, задаваемые кодами, а также признак наличия порога.

Рама содержит первый проём изделия.

### Проём

[](#проём)

Проём образуется контуром из балок, в него может быть установлена "вставка" и только одна.

Типы вставок:

- заполнение: стеклопакет или сэндвич;
- створка;
- импост;
- штульп.

### Стеклопакет

[](#стеклопакет)

Заполнение с артикулом стеклопакета

### Сэндвич

[](#сэндвич)

Заполнение с артикулом сэндвича и необязательными покрытиями (собственными или унаследованными от окна).

### Створка

[](#створка)

Створка характеризуется типом открывания.

Допустимы следующие распашные типы открывания:

- поворотная влево;
- поворотно-откидная влево;
- поворотная вправо;
- поворотно-откидная вправо;
- откидная;
- верхнеподвесная.

Нижняя балка створки может быть заменена на цоколь.

Контур балок створки образует проём, в который можно вставить заполнение или импост.

К створке может быть добавлена москитная сетка.

### Импост

[](#импост)

Импост является разделителем проёма и образует два дочерних проёма.

Балка импоста имеет ориентацию - вертикальная или горизонтальная, устанавливается в заданное местоположение - координата по оси X для вертикального импоста и по оси Y для горизонтального. Началом системы координат является верхний левый угол рамы, ось X направлена вправо, а ось Y направлена вниз.

Два проёма импоста обозначаются как "левый-верхний" и "правый-нижний".

### Штульп

[](#штульп)

Штульп образует группу из двух поворотных створок, рабочая створка штульпа может быть поворотно-откидной.

Штульп может быть левым или правым, что указывает на штульповую створку.

К штульпу может быть добавлена москитная сетка на весь проём или только на рабочую створку.

Створки, образованные штульпом не имеют собственных типов открывания и москитных сеток.

### Москитная сетка

[](#москитная-сетка)

Москитная сетка имеет систему, базовый цвет, тип полотна и покрытие рамки, задаваемые кодами, а также сторону петель.

Есть возможность наследования внешнего покрытия окна для покрытия рамки.

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

### Примечания к распаковке в программе altAwin

[](#примечания-к-распаковке-в-программе-altawin)

- все элементы модели будут снабжены всеми допустимыми пользовательскими параметрами со значениями по умолчанию;
- все балки будут иметь "авто" артикул профиля и армирования;
- все типы соединения контурных балок будут подобраны автоматически;
- тип ручки у рабочих створок будет выбран на основе типа изделия и типа открывания;
- ручки будут установлены в положение "авто";
- заполнения будут обрамлены штапиком;
- для москитных сеток будет назначен автоматический режим расстановки поперечин.

Пример использования
--------------------

[](#пример-использования)

```
use SimpleModels\WindowModel;
use SimpleModels\WindowModelPacker;
use SimpleModels\SashFrameInterface;

// Создаём модель изделия размером 1400x1400
$model = new WindowModel(1400, 1400);

// Берём раму
$frame = $model->getFrame();

// Устанавливаем тип изделия с кодом "window"
$frame->setItemTypeCode('window');

// Устанавливаем систему профиля с кодом "veka"
$frame->setProfileSystemCode('veka');

// Устанавливаем систему фурнитуры с кодом "roto"
$frame->setHardwareSystemCode('roto');

// Устанавливаем внутреннее покрытие с кодом цвета "RAL8023"
$frame->setInnerCoatingCode('RAL8023');

// Устанавливаем внешнее покрытие с кодом цвета "RAL7045"
$frame->setOuterCoatingCode('RAL7045');

// Устанавливаем покрытие фальца с кодом цвета "RAL8023"
$frame->setFoldCoatingCode('RAL8023');

// Устанавливаем пользовательский параметр изделия
$frame->setUserParameterValue('sealing_color', 'gray');

// Берём проём рамы
$aperture = $frame->getAperture();

// Вставляем в проём вертикальный импост в положение 700
$impost = $aperture->insertImpost(false, 700);

// Берём левый проём импоста
$aperture = $impost->getLeftTopAperture();

// Вставляем в проём створку с типом открывания "поворотное влево"
$sash = $aperture->insertSash(SashFrameInterface::LeftTurn);

// Берём проём створки
$sashAperture = $sash->getAperture();

// Вставляем в проём стеклопакет с артикулом 4_16_4
$glass = $sashAperture->insertGlass('4_16_4');

// Устанавливаем пользовательский параметр створки
$sash->setUserParameterValue('micro_airing', true);

// Добавляем к створке москитную сетку
$mosquito = $sash->addMosquito();

// Устанавливаем систему москитной сетки с кодом "plunger"
$mosquito->setSystemCode('plunger');

// Устанавливаем базовый цвет москитной сетки с кодом "white"
$mosquito->setBaseColorCode('white');

// Устанавливаем тип полотна москитной сетки с кодом "antifly"
$mosquito->setСlothTypeCode('antifly');

// Сбрасываем наследование покрытия окна для рамки москитной сетки
$mosquito->setAutoFrameCoating(false);

// Устанавливаем покрытие рамки москитной сетки с кодом цвета "RAL7045"
$mosquito->setFrameCoatingCode('RAL7045');

// Устанавливаем пользовательский параметр москитной сетки
$mosquito->setUserParameterValue('crossbar', 1);

// Берём правый проём импоста
$aperture = $impost->getRightBottomAperture();

// Вставляем в проём сэндвич с артикулом "pvc24"
$sandwich = $aperture->insertSandwich('pvc24');

// Отключаем наследование покрытий изделия
$sandwich->setAutoCoatings(false);

// Устанавливаем внутреннее покрытие сэндвича с кодом цвета "RAL8023"
$sandwich->setInnerCoatingCode('RAL8023');

// Устанавливаем внешнее покрытие сэндвича с кодом цвета "RAL7045"
$sandwich->setOuterCoatingCode('RAL7045');

// Создаём упаковщика модели окна
$packer = new WindowModelPacker();

// Запаковываем модель для api
$pack = $packer->pack($model);

// Вывод результата
echo '' . json_encode($pack) . '';
```

Описание модели стеклопакета
----------------------------

[](#описание-модели-стеклопакета)

Модель описывает прямоугольный стеклопакет с габаритными размерами.

### Стеклопакет

[](#стеклопакет-1)

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

### Примечания к распаковке в программе altAwin

[](#примечания-к-распаковке-в-программе-altawin-1)

- все незаданные допустимые пользовательские параметры будут иметь значение по умолчанию.

Пример использования
--------------------

[](#пример-использования-1)

```
use SimpleModels\GlassModel;
use SimpleModels\GlassModelPacker;

// Создаём модель стеклопакета размером 1000x1000
$model = new GlassModel(1000, 1000);

// Берём стеклопакет
$glass = $model->getGlass();

// Устанавливаем артикул
$glass->setMarking('4_16_4');

// Устанавливаем пользовательский параметр
$glass->setUserParameterValue('facet', 1);

// Создаём упаковщика модели стеклопакета
$packer = new GlassModelPacker();

// Запаковываем модель для api
$pack = $packer->pack($model);

// Вывод результата
echo '' . json_encode($pack) . '';
```

Описание модели сэндвича
------------------------

[](#описание-модели-сэндвича)

Модель описывает прямоугольный сэндвич с габаритными размерами.

### Сэндвич

[](#сэндвич-1)

У сэндвича обязательно должен быть задан артикул. Сэндвич может обладать покрытиями заданными кодами цветов. Также возможно задание значений пользовательским параметрам.

### Примечания к распаковке в программе altAwin

[](#примечания-к-распаковке-в-программе-altawin-2)

- все незаданные допустимые пользовательские параметры будут иметь значение по умолчанию.

Пример использования
--------------------

[](#пример-использования-2)

```
use SimpleModels\SandwichModel;
use SimpleModels\SandwichModelPacker;

// Создаём модель сэндвича размером 1000x1000
$model = new SandwichModel(1000, 1000);

// Берём сэндвич
$sandwich = $model->getSandwich();

// Устанавливаем артикул
$sandwich->setMarking('pvc24');

// Устанавливаем внутреннее покрытие сэндвича с кодом цвета "RAL8023"
$sandwich->setInnerCoatingCode('RAL8023');

// Устанавливаем внешнее покрытие сэндвича с кодом цвета "RAL7045"
$sandwich->setOuterCoatingCode('RAL7045');

// Устанавливаем пользовательский параметр
$sandwich->setUserParameterValue('sealing', true);

// Создаём упаковщика модели сэндвича
$packer = new SandwichModelPacker();

// Запаковываем модель для api
$pack = $packer->pack($model);

// Вывод результата
echo '' . json_encode($pack) . '';
```

Описание модели москитной сетки
-------------------------------

[](#описание-модели-москитной-сетки)

Модель описывает прямоугольную москитную сетку с габаритными размерами.

### Москитная сетка

[](#москитная-сетка-1)

У москитной сетки обязательно должна быть задана система и опционально тип полотна и покрытие рамки с помощью кодов. Также возможно задание значений пользовательским параметрам.

### Примечания к распаковке в программе altAwin

[](#примечания-к-распаковке-в-программе-altawin-3)

- будет назначен автоматический режим расстановки поперечин;
- все незаданные допустимые пользовательские параметры будут иметь значение по умолчанию.

Пример использования
--------------------

[](#пример-использования-3)

```
use SimpleModels\MosquitoModel;
use SimpleModels\MosquitoModelPacker;

// Создаём модель москитной сетки размером 800x1400
$model = new MosquitoModel(800, 1400);

// Берём москитную сетку
$mosquito = $model->getMosquito();

// Устанавливаем систему с кодом "plunger"
$mosquito->setSystemCode('plunger');

// Устанавливаем базовый цвет с кодом "white"
$mosquito->setBaseColorCode('white');

// Устанавливаем тип полотна с кодом "antifly"
$mosquito->setСlothTypeCode('antifly');

// Устанавливаем покрытие рамки с кодом цвета "RAL7045"
$mosquito->setFrameCoatingCode('RAL7045');

// Устанавливаем левую сторону для петель
$mosquito->setHingeSide(1);

// Устанавливаем пользовательский параметр
$mosquito->setUserParameterValue('crossbar', 1);

// Создаём упаковщика модели москитной сетки
$packer = new MosquitoModelPacker();

// Запаковываем модель для api
$pack = $packer->pack($model);

// Вывод результата
echo '' . json_encode($pack) . '';
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance46

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~296 days

Total

4

Last Release

408d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/da11a9b25666f9c59d17a0cb64287fe806170ea949dc33d1e6233cb398967bb7?d=identicon)[icexdev](/maintainers/icexdev)

---

Tags

modeltemplatewindowsdoorsglass unitssandwich panelsmosquito nets

### Embed Badge

![Health badge](/badges/altec-icex-simple-models/health.svg)

```
[![Health](https://phpackages.com/badges/altec-icex-simple-models/health.svg)](https://phpackages.com/packages/altec-icex-simple-models)
```

###  Alternatives

[phpoffice/phpword

PHPWord - A pure PHP library for reading and writing word processing documents (OOXML, ODF, RTF, HTML, PDF)

7.5k34.7M183](/packages/phpoffice-phpword)[rize/uri-template

PHP URI Template (RFC 6570) supports both expansion &amp; extraction

420137.3M46](/packages/rize-uri-template)[larablocks/pigeon

A more flexible email message builder for Laravel 5 including chained methods, reusable message configurations, and message layout and template view management.

143.7k](/packages/larablocks-pigeon)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
