altec-icex / simple-models
窗口模型构建器
Requires
- php: >=7.2
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/>';