altec-icex/simple-models

窗口模型构建器

v1.1 2023-05-23 03:11 UTC

This package is not auto-updated.

Last update: 2024-09-24 09:43:42 UTC


README

用于创建和打包简单窗口、中空玻璃、断桥铝和纱窗的类集。

安装

通过包管理器进行标准安装。

composer require altec-icex/simple-models

窗口/门模型描述

模型描述了一个具有尺寸的矩形窗口或门框架。

产品框架

框架具有类型(窗口或门)、系统型材、基础、覆盖层和配件,由代码指定,以及是否有门槛的标志。

框架包含第一个产品开口。

开口

开口由梁的轮廓形成,可以安装“插板”,但只能安装一个。

插板类型

  • 填充:中空玻璃或断桥铝;
  • 窗扇;
  • 立柱;
  • 侧板。

中空玻璃

带有中空玻璃型号的填充

断桥铝

带有断桥铝型号和可选覆盖层(自有的或从窗口继承的)的填充

窗扇

窗扇以开启方式为特征。

允许以下开启类型

  • 向左旋转;
  • 向左旋转和滑动;
  • 向右旋转;
  • 向右旋转和滑动;
  • 滑动;
  • 上悬。

窗扇的下梁可以替换为底座。

窗扇梁的轮廓形成开口,可以插入填充或立柱。

可以给窗扇添加纱窗。

立柱

立柱是开口的分隔符,形成两个子开口。

立柱梁的方向为-垂直或水平,安装在指定位置-垂直立柱的X轴坐标和水平立柱的Y轴坐标。坐标系的原点是框架的左上角,X轴向右,Y轴向下。

立柱的两个开口分别表示为“左上”和“右上”。

侧板

侧板形成由两个旋转窗扇组成的组,侧板窗可以旋转和滑动。

侧板可以是左边的或右边的,这表示侧板窗。

可以向侧板添加全开口或仅对工作窗扇的纱窗。

由侧板形成的窗扇没有自己的开启类型和纱窗。

纱窗

纱窗具有系统、类型和框架覆盖层,由代码指定。

可以继承窗口的外部覆盖层作为框架覆盖层。

框架、窗扇、中空玻璃、断桥铝和纱窗可以添加用户参数的值。

关于在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');

// Устанавливаем тип полотна москитной сетки с кодом "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 '<pre>' . json_encode($pack) . '</pre><hr/>';

中空玻璃模型描述

模型描述了一个具有尺寸的矩形中空玻璃。

中空玻璃

中空玻璃必须指定型号。也可以指定用户参数的值。

关于在altAwin程序中解包的说明

  • 未指定的所有可用的用户参数将具有默认值。

示例使用

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 '<pre>' . json_encode($pack) . '</pre><hr/>';

断桥铝模型描述

模型描述了一个具有尺寸的矩形断桥铝。

断桥铝

断桥铝必须指定型号。断桥铝可以具有由代码指定的颜色覆盖层。也可以指定用户参数的值。

关于在altAwin程序中解包的说明

  • 未指定的所有可用的用户参数将具有默认值。

示例使用

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 '<pre>' . json_encode($pack) . '</pre><hr/>';

纱窗模型描述

该模型描述了一个具有尺寸规格的矩形蚊帐网。

纱窗

蚊帐网必须指定系统,并可选项地指定网布类型和框架涂层代码。还可以设置用户参数值。

关于在altAwin程序中解包的说明

  • 将自动设置横梁的布置模式。
  • 未指定的所有可用的用户参数将具有默认值。

示例使用

use SimpleModels\MosquitoModel;
use SimpleModels\MosquitoModelPacker;

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

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

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

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

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

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

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

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

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