d3yii2/d3btl

此包最新版本(dev-master)没有可用的许可信息。

处理 .btl 文件库

dev-master 2022-03-08 11:30 UTC

This package is auto-updated.

Last update: 2024-09-08 16:42:03 UTC


README

什么是 BTL

  • BTL 是一个免费标准,可以被任何设计软件和机器使用。
  • BTL 包含了格式和所有处理的完整描述。
  • BTL 使用机器无关的几何格式描述部件。
  • 可以使用我们的免费 BTL 查看器查看和检查 BTL 文件。

特性

Yii2 模块。读取由设计2机器接口创建的 BTL 文件并将其保存到数据库中。

实现了解释

  • 原始部件
  • 部件
  • 工艺
    • 倒角尺寸和开放侧面

BTL 格式文档 https://design2machine.com/btl/btl_v106.pdf

安装

通过 composer 安装此扩展是首选方式。

运行以下命令:

$ composer require d3yii2/d3btl "*"

"d3yii2/d3btl": "*"

将以下内容添加到您的 composer.json 文件的 require 部分:

添加到迁移路径

'class' => 'yii\console\controllers\MigrateController',
'migrationPath' => [
                    '@d3yii2/d3btl/migrations',
]

添加到模块

  'modules' => [
        'btl' => [
            'class' => 'd3yii2\d3btl\Module'
        ],
  ]        

用法

命令 add,读取文件并将它们的数据库保存数据

php btl/process-file/add path/to/file

通过代码添加文件

        $model = new BtlFileData();
        $model->load(['file_data' => $fileText, 'file_name' => $filename], '');
        $model->saveWithParts();

获取数据

$btl = BtlFileData::findOne($btlId);
$btlPartRaw = $btl->getBtlParts()->andWhere(['type' => BtlPart::TYPE_RAWPART])->all();
$btlPartOut = $btl->getBtlParts()->andWhere(['type' => BtlPart::TYPE_PART])->all();

foreach($btlPartRaw as $pr) {
   echo $pr->getHeight() . ' ' . $pr->getWidth() . ' ' . $pr->getLength();
}

 foreach ($btlPartOut as $po) {
   foreach ($po->btlProcesses as $process) {
     if (!$lap = $process->getLap()) {
           continue;
       }

       /** bottom is open */
       if (!$lap->isP04bit5()) {
           continue;
       }

       /** top is open */
       if (!$lap->isP04bit6()) {
           continue;
       }

       $m3 = ($lap->P12/100)/1000
           * ($lap->P14/100)/1000
           * $height/1000;
       echo $m3;    
    }       
}

数据库

data structure