3DE 知识工程 —— 使用 EKL 批量布置设备

目录

1、简介

2、操作步骤

2.1  获取设备库信息

2.2  获取舱室位置信息

2.3  处理设备布置信息

2.4  布置设备


1、简介

前面我们讲过使用 EKL 创建产品节点树(3DE 知识工程 —— 使用 EKL 创建产品节点树),今天我们来介绍如何使用 EKL 批量布置设备,这在某些场景下可能会非常有用,例如在产品设计初期,使用 EKL 批量布置设备的占位模型,待设计成熟后,再批量将占位模型替换为实际的设备模型,设计人员仅需对实际设备模型稍作调整即可,从而可以节省大量的设备布置时间。具体操作步骤如下:

2、操作步骤

2.1  获取设备库信息

布置设备当然要有设备库模型,假设项目中已经创建好占位模型库(图 1),布置时需根据占位模型的属性信息( ID、Version )来加载相应的模型进行布置,可以使用 EKL 来获取所有占位模型的属性信息并输出到表格。

图 1  设备模型库

获取占位模型属性信息的示例代码如下:

iReference :  VPMReference 
--------------------------

let referenceList(List)
let reference(VPMReference)
let plmID(String)
let revision(String)

referenceList = iReference->Query("VPMReference", "")

for reference inside referenceList
{
	plmID = reference->GetAttributeString("PLM_ExternalID")
	revision = reference->GetAttributeString("revision")
	
    ... // 输出设备属性信息到表格

}

2.2  获取舱室位置信息

舱室位置信息的获取方式很多,如果项目中已经创建了舱室空间模型(图 2),也可以使用 EKL 来直接获取所有舱室的位置信息(中心点坐标)。

图 2  舱室空间模型

从舱室空间模型获取舱室位置信息的示例代码如下:

iReference :  VPMReference 
--------------------------

let referenceList(List)
let reference(VPMReference)
let spaceVolume(VolumeGeo)
let x(LENGTH)
let y(LENGTH)
let z(LENGTH)

referenceList = iReference->Query("VPMReference", "")

for reference inside referenceList
{
	if reference->IsASortOf("SSM_DesignSpaceRef")
	{
		set spaceVolume = reference->Find("VolumeGeo", "x.Name like \"*空间克隆*\"", TRUE)
		spaceVolume->centerofgravity(x,y,z)

        ... // 输出并记录舱室位置信息

	}
}

2.3  处理设备布置信息

各舱室的设备布置信息是必须的输入信息,假设设备布置信息为电子表格清单,在使用 EKL 进行布置前,还需要将占位模型信息和舱室位置信息补充到表格中(表 1),以下是表格示例:

表 1 - 设备布置信息表
序号舱室占位模型IDVersionXYZ
1A001占位模型-1prd-xxx-00000003A2000mm2000mm1000mm
2A001占位模型-2prd-xxx-00000005A2000mm2000mm1000mm
3B002占位模型-3prd-xxx-00000007A4000mm5000mm1000mm
........................

2.4  布置设备

做完上面的准备步骤,就可以进行设备布置了。

布置的主要思路:使用 EKL 读取设备信息表中的信息,首先根据舱室名称检索是否存在相应舱室节点,如果不存在则创建;然后根据占位模型信息加载相应的占位模型(加载的速度很慢,应考虑同一设备只加载一次);最后根据舱室的位置信息,将设备布置到舱室中心点位置(为避免设备重叠,应考虑同一舱室的设备适当调整位置)。

以下是加载占位模型并布置到舱室中的关键代码:

iParent :  VPMReference 
--------------------------
... // 读取设备布置信息

// 从模型库读取并加载设备
let currentQuery(PLMQuery)
currentQuery = CreatePLMQuery("VPMReference")

currentQuery->AddCriterion("PLM_ExternalID", "prd-xxx-00005979")
currentQuery->AddCriterion("revision", "A")

let resultList(List)
resultList = currentQuery->RunQuery()

let currentResult(PLMQueryResult)
set currentResult = resultList->GetItem(1)

let currentReference(VPMReference)
set currentReference = currentResult->LoadResult()

// 布置设备并调整位置
let currentInstance(VPMInstance)
set currentInstance = new("VPMInstance", currentReference.Name, iParent, currentReference)

let currentInstancePosition(Matrix)
currentInstancePosition = currentInstance.PositionMatrix

currentInstancePosition->Set(1, 4, x)
currentInstancePosition->Set(2, 4, y)
currentInstancePosition->Set(3, 4, z)
currentInstance.PositionMatrix = currentInstancePosition

currentInstance->Update()

通过上述步骤可以使用 EKL 实现批量布置设备,下面是本例的布置视频:

图 3  批量布置设备

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker中安装Elasticsearch、Kibana和Logstash(EKL)堆栈,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker和Docker Compose。您可以根据您的操作系统找到适合您的安装方法。 2. 创建一个新的目录来存放您的EKL配置文件和数据。例如,您可以创建一个名为`ekl`的目录。 3. 在`ekl`目录中创建一个名为`docker-compose.yml`的文件,并使用以下内容填充它: ```yaml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0 container_name: elasticsearch environment: - discovery.type=single-node ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data kibana: image: docker.elastic.co/kibana/kibana:7.15.0 container_name: kibana ports: - 5601:5601 environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 logstash: image: docker.elastic.co/logstash/logstash:7.15.0 container_name: logstash volumes: - ./logstash/config/:/usr/share/logstash/pipeline/ ports: - 5044:5044 volumes: esdata: ``` 4. 在`ekl`目录中创建一个名为`logstash`的子目录,并在其中创建一个名为`config`的子目录。 5. 在`config`目录中创建一个名为`logstash.conf`的文件,并使用以下内容填充它: ``` input { beats { port => 5044 } } output { elasticsearch { hosts => "elasticsearch:9200" index => "logs-%{+YYYY.MM.dd}" } } ``` 6. 确保您在`ekl`目录中打开一个终端或命令提示符窗口,并运行以下命令来启动EKL堆栈: ``` docker-compose up ``` 这将下载所需的Docker镜像并启动Elasticsearch、Kibana和Logstash容器。 7. 在浏览器中访问`http://localhost:5601`以打开Kibana控制台。您可以使用Kibana来管理和可视化您的日志数据。 请注意,以上步骤提供了一个基本的配置,并且默认情况下没有进行任何安全性配置。在生产环境中,您应该根据需要进行进一步的配置和安全性硬化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值